This covers the following changes:
users/24971: ${(-)var} sorts on signed integers
47704: POSIX export and readonly ignore "-p" when parameter names also appear
47913: implement CASE_PATHS option to make NO_CASE_GLOB more sensible
48073: Add fc -s as POSIX way of rerunning command without starting editor
49307 with doc update: POSIX_TRAPS fix.
49528: allow multiple -D options to compadd
49534, 49539: separate watch/log functionality out into a module
49561: add zformat -F option, similar to -f but ternary expressions check for
existence instead of doing math evaluation
49597: add a helper for completing numbers with unit suffixes and separate out
defaults, ranges and units in completion descriptions
49611 based on 49590 (Martijn Dekker): disable Inf and NaN in math expressions
for sh emulation
49646: allow colors in WATCHFMT with %F/%K
49694 + doc: Allow using empty STTY= to freeze tty for a single command
49853 + 49882/49883: make "${arr[*]:off}" compatible with ksh/bash
Having reviewed 20076, 20084, 21734, and 21735, my understanding is that
the original intention was:
- A 'return' in a function does run always-list
- An 'exit' outside a function does not run always-list
- A 'return' outside a function is treated as an 'exit'
All of which are the case today. The remaining case, of 'exit' used
inside a function, was not specified by the referenced -workers@ posts;
does, as implemented, run the always-list; and furthermore, based in
21734 it's fair to assume that the original documentation was assuming
that 'exit' would be used outside of any function, just like it assumed
'return' would be used inside a function.
Therefore, have the documentation specify only the behaviour of 'exit'
outside any function, and leave the behaviour of 'exit' inside
a function unspecified. Anyone who relied on the documentation of 'exit'
as documented until this commit would have run into the
documentation/implementation discrepancy described in 45075.
Pick number of leading or trailing path components to substitute.
Active in history, brace parameters, glob qualifiers.
Add tests for all three environments.
Move detection of key/value pairs down into prefork().
Detect normal array assignment and [key]=val array assignemnt
separately. Mark key / value pairs with Marker and pass up flag. Deal
with marked triads specially later on.