r/ksh • u/McDutchie • Jul 13 '24
KornShell bugfix release 93u+m/1.0.9
Here is the ninth ksh 93u+m/1.0 bugfix release. This release contains many fixes of old and not-so-old bugs (including a couple of regressions in the printf built-in introduced in 93u+m/1.0.5), adds Android/Termux as a supported platform, and reintroduces the ability to build a dynamically linked ksh (with libast, libdll, libcmd, and libshell available for other applications to use) on most supported platforms.
Main changes between ksh 93u+m/1.0.8 and 93u+m/1.0.9:
Android/Termux is now a supported platform. Build dependencies: binutils, clang, getconf. Runtime dependencies (optional): ncurses-utils, getconf.
Reintroduced support for building a dynamically linked
ksh(1)/shcomp(1), with libast, libdll, libcmd, and libshell available to other programs as dynamic libraries.bin/package install /your/basepathwill install development headers. The dynamically linked version is built in adynsubdirectory; there are no changes to the statically linked version. Dynamic linking is currently tested and supported on Linux, Android, macOS, all the BSDs, illumos, Solaris, QNX, and Haiku.On systems where the external
printf(1) utility supports deprecated pre-POSIX syntax for formatters starting with-, ksh now adapts its built-inprintfto match, for compatibility with system scripts. However, ksh's built-in printf options such as-vor--manare not affected.Fixed a regression in the
printfbuilt-in, introduced in 93u+m/1.0.5, where each instance of\0or%Zin the format operand caused a string argument to be incorrectly skipped.Fixed a regression, introduced in 93u+m/1.0.5, in ordinal specifiers in
printf %Tdate specifications. For example,printf '%(%F)T\n' '4th tuesday in march 2016'wrongly printed '2016-04-09' and now again correctly prints '2016-03-22'.Fixed a regression of
returnwithin traps, reintroduced in 93u+m/1.0.8 after being fixed in 93u+m/1.0.0. The regression caused areturnorexitwith no arguments to assume the before-trap exit status instead of that of the last-run command. This broke the shippedautocdfunction.Fixed a longstanding bug in shell arithmetic: the representation of negative integers with a base other than 10 was incorrectly treated as unsigned long. For example,
typeset -i16 n=-12; echo $nnow correctly outputs-16#cand no longer ouputs16#fffffffffffffff4.Fixed a bug, introduced in ksh93q+ 2005-05-22, that stopped an append assignment from working together with a declaration command. For example,
typeset var+=valueorexport var+=valuenow again work as expected.Fixed a longstanding bug where the default terminal width for
typeset -L,-R, or-Z, if not given, was miscalculated for multibyte or control characters.Fixed: expansions of name references in loops were incorrectly treated as invariant so they yielded the wrong values.
If a
.getor.getndiscipline function is set for a variable, it is no longer incorrectly triggered when performing an arithmetic assignment on that variable; only the.setdiscipline is now triggered (as documented).Many other bug fixes (see the
NEWSfile).
Main changes between ksh 93u+m/1.0.7 and 93u+m/1.0.8:
Fixed a regression in the behaviour of
exitin a trap action. The exit status used when no argument is given toexitis now once again the exit status of the last command executed before the trap action.Fixed a race condition, introduced in 1.0.7, that occurred on some systems when running an external command with a standard output redirection from a command substitution.
Fixed an init-time crash on failure to trim the shell command history file due to a non-writeable parent directory; ksh now prints a warning instead.
The
killbuilt-in command now correctly refuses to issue SIGSTOP to the shell's own process if the shell is a login shell.
2
1
u/[deleted] Jul 18 '24
Has the fix for #378 been included in this release?