ksh 93u+m/1.0.6
Sooner than expected after the fifth, here is the sixth ksh 93u+m/1.0 bugfix release. 93u+m/1.0.5 brought a wide range of bugfixes and robustness enhancements, but also introduced a serious regression in pathname expansion (#660), so that previous release is WITHDRAWN and should not be used.
Main changes between ksh 93u+m/1.0.5 and 93u+m/1.0.6:
- Fixed a serious regression in pathname expansion where quoted wildcard characters were incorrectly expanded if a pattern contains both a brace expansion and a variable expansion.
- Fixed a bug where the command to launch a full-screen editor (
^X^E
in emacs andv
in vi) could cause the wrong command line to be edited if two shell sessions share a.sh_history
file.
Main changes between ksh 93u+m/1.0.4 and 93u+m/1.0.5:
- Fixed various bugs causing crashes.
- Fixed many bugs in the emacs and vi line editors, in command completion, and in file name completion.
- Fixed various bugs in the handling of quotes, backslash escapes and braces when processing shell glob patterns (e.g. in pathname expansion and
case
). - ksh now throws a panic and exits if a read error (such as an I/O error) occurs while trying to read the next command(s) from a running script.
- Fixed many bugs in
printf
andprint -f
built-in commands, including:- Multiple bugs causing incorrect output for relative date specifications, e.g.,
printf %T\\n 'exactly 20 months ago'
now outputs a correct result. - More
printf
bugs with mix and match of%
and%x$
. - A data corruption bug when using
%B
withprintf -v varname
. - A bug causing double evaluation of arithmetic expressions.
- Multiple bugs causing incorrect output for relative date specifications, e.g.,
- Fixed a bug where
unset -f commandname
, executed in a subshell, hides any built-in command by the same name for the duration of that subshell. - Fixed
${var/#/string}
and${var/%/string}
(with anchored empty pattern) to work as on mksh, bash and zsh; these are no longer ineffective. - Fixed incorrect result of array slicing
${array[@]:offset:length}
wherelength
is a nested expansion involving an array. - Command names can now end in
:
as they can on other shells. - Fixed a spurious syntax error in compound assignments upon encountering a pair of repeated opening parentheses
((
. - Fixed spurious syntax error in
${parameter:offset:length}
: the arithmetic expressionsoffset
andlength
may now contain the operators(
)
&
|
. - Fixed a parsing bug in the declaration of .sh.math.* arithmetic functions.
- Fixed nameref self-reference loop detection for more than two namerefs.
- Several improvements to the POSIX compatibility mode.
- Many more minor and/or esoteric bugfixes.
Full Changelog: v1.0.4...v1.0.6