Skip to content

ksh 93u+m/1.0.6

Compare
Choose a tag to compare
@McDutchie McDutchie released this 13 Jun 17:28
· 983 commits to dev since this release

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 and v 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 and print -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 with printf -v varname.
    • A bug causing double evaluation of arithmetic expressions.
  • 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} where length 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 expressions offset and length 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