From d4503c15572dd6b6b2cdd57c61583fbda27571a4 Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Sat, 22 Oct 2022 05:05:14 +0200 Subject: [PATCH] Release 1.0.4 Main changes between 1.0.3 and 1.0.4: - Fixed multiple scoping-related bugs in the += additive assignment operator. - A number of crashing bugs have been fixed. - Various fixes for the Haiku operating system, notably 'ulimit -a' now works. - Fixed the expansion of out-of-range \n back references in the string part of ${parameter//pattern/string}. For example: v=AB; echo "${v/@(A)B/\0:\1:\2}" now yields 'AB:A:' instead of 'AB:A:\2'. - Fixed quoted '!', '^' and '-' within [bracket] expressions in glob patterns; single or double quotes failed to disable their operator behaviour. - Fixed a bug introduced on 2021-04-04 that incorrectly allowed 'typeset' to turn off the readonly and export attributes on a readonly variable. - In the emacs line editor, the Ctrl+R reverse-search prompt is now visually distinct from a literal control character ("^R: " instead of "^R"). - In the vi line editor, fixed the behaviour of 'C', 'c$' and 'I' to be consistent with standard vi(1) and with Bolsky & Korn (1995, p. 121). - Aliases for many GNU long options have been added to the /opt/ast/bin built-in commands. Additionally, 'kill -s' now has a --signal long option alias compatible with the util-linux option. - Backported support for 'print -u p' from ksh 93v- for compatibility with scripts written for 93v-/ksh2020 (this is equivalent to 'print -p'). --- ANNOUNCE | 30 ++++++++++++++++++++++++++---- NEWS | 4 ++++ src/cmd/ksh93/COMPATIBILITY | 7 ++++++- src/cmd/ksh93/include/version.h | 4 ++-- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index 0974c953ac60..82ec838f697a 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,9 +1,9 @@ -Announcing: KornShell 93u+m/1.0.3 +Announcing: KornShell 93u+m/1.0.4 https://github.com/ksh93/ksh -This is the third bugfix release in the ksh 93u+m/1.0 series. Many thanks to -all contributors for their hard work! Compared to an unpatched ksh 93u+ -2012-08-01, this release has roughly a thousand bugs fixed. It incorporates +This is the fourth bugfix release in the ksh 93u+m/1.0 series. Many thanks +to all contributors for their hard work! Compared to an unpatched ksh 93u+ +2012-08-01, this release has over a thousand bugs fixed. It incorporates a fair number of enhancements as well. ### CONTRIBUTORS ### @@ -42,6 +42,28 @@ To get involved in development, read the brief policy information in README.md and then jump right in with a pull request or email a patch. See the TODO file in the top-level directory for a to-do list. +### MAIN CHANGES between ksh 93u+m 1.0.3 and 1.0.4 ### + +- Fixed multiple scoping-related bugs in the += additive assignment operator. +- A number of crashing bugs have been fixed. +- Various fixes for the Haiku operating system, notably 'ulimit -a' now works. +- Fixed the expansion of out-of-range \n back references in the string part of + ${parameter//pattern/string}. For example: v=AB; echo "${v/@(A)B/\0:\1:\2}" + now yields 'AB:A:' instead of 'AB:A:\2'. +- Fixed quoted '!', '^' and '-' within [bracket] expressions in glob patterns; + single or double quotes failed to disable their operator behaviour. +- Fixed a bug introduced on 2021-04-04 that incorrectly allowed 'typeset' to + turn off the readonly and export attributes on a readonly variable. +- In the emacs line editor, the Ctrl+R reverse-search prompt is now visually + distinct from a literal control character ("^R: " instead of "^R"). +- In the vi line editor, fixed the behaviour of 'C', 'c$' and 'I' to be + consistent with standard vi(1) and with Bolsky & Korn (1995, p. 121). +- Aliases for many GNU long options have been added to the /opt/ast/bin + built-in commands. Additionally, 'kill -s' now has a --signal long option + alias compatible with the util-linux option. +- Backported support for 'print -u p' from ksh 93v- for compatibility with + scripts written for 93v-/ksh2020 (this is equivalent to 'print -p'). + ### MAIN CHANGES between ksh 93u+m 1.0.2 and 1.0.3 ### This point release fixes the following: diff --git a/NEWS b/NEWS index d07dbf8b8e7b..b2797052dd4a 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ This documents significant changes in the 1.0 branch of ksh 93u+m. For full details, see the git log at: https://github.com/ksh93/ksh/tree/1.0 Uppercase BUG_* IDs are shell bug IDs as used by the Modernish shell library. +2022-10-22: + +- Release 1.0.4. + 2022-10-18: - Fixed the expansion of out-of-range \n back references in the string part of diff --git a/src/cmd/ksh93/COMPATIBILITY b/src/cmd/ksh93/COMPATIBILITY index c8147482ab65..016c0e2e1df5 100644 --- a/src/cmd/ksh93/COMPATIBILITY +++ b/src/cmd/ksh93/COMPATIBILITY @@ -1,4 +1,4 @@ - ksh 93u+m/1.0.0 vs. ksh 93u+ + ksh 93u+m/1.0.4 vs. ksh 93u+ The following is a list of changes between ksh 93u+ 2012-08-01 and the new ksh 93u+m reboot that could cause incompatibilities in rare corner cases. @@ -179,6 +179,11 @@ For more details, see the NEWS file and for complete details, see the git log. that are only supported by the shell and do not in fact exist in the file system, such as /dev/tcp/*. +34. Single and double quotes now work like backslashes to quote '!', '^' + and '-' in bracket expressions in shell glob patterns, e.g., the glob + pattern ["!a-z"] now matches !, a, - or z and is no longer misparsed + as [!a-z]. This restores compatibility with ksh88 and non-ksh shells. + ____________________________________________________________________________ KSH-93 VS. KSH-88 diff --git a/src/cmd/ksh93/include/version.h b/src/cmd/ksh93/include/version.h index 557e2f2b58ad..2d827f09e673 100644 --- a/src/cmd/ksh93/include/version.h +++ b/src/cmd/ksh93/include/version.h @@ -17,8 +17,8 @@ #include #define SH_RELEASE_FORK "93u+m" /* only change if you develop a new ksh93 fork */ -#define SH_RELEASE_SVER "1.0.4-alpha" /* semantic version number: https://semver.org */ -#define SH_RELEASE_DATE "2022-10-18" /* must be in this format for $((.sh.version)) */ +#define SH_RELEASE_SVER "1.0.4" /* semantic version number: https://semver.org */ +#define SH_RELEASE_DATE "2022-10-22" /* must be in this format for $((.sh.version)) */ #define SH_RELEASE_CPYR "(c) 2020-2022 Contributors to ksh " SH_RELEASE_FORK /* Scripts sometimes field-split ${.sh.version}, so don't change amount of whitespace. */