d6b6c66f71
tbl of NetBSD does not work, install man page with unprocessed tables as workaround. Changes from AN-2020-03-11: - configure: The autoconfiguration now has an enhanced test for waitid() that was needed since Mac OS is still not POSIX compliant and returns 0 instead of the signal number for a process that has been killed by a signal. MacOS did pass the POSIX certification as a result of a missing test for that problem. Since every vertified OS needs to run an annual refresh the certification with recent versions of the test, I guess that Mac OS (Catalina updates) may become more compliant witin a year. - psmake: The portable bootstrap compile environment for smake missed a symlink for unsetenv.c to libschily since the related code has been moved to libschily in 2018. This prevented compilation on IRIX. Thanks to Kazuo Kuroi for reporting - libshedit: mystdio.h now calls #undef sprintf and #undef snprintf before redefining the names. This avoids clang warnings on MacOS. - Bourne Shell: set -m now works in scripts as well. Before, bosh did never call startjobs() when the shell startup was done with a shell script. - Bourne Shell: The shell now supports the alternate ;& switch command limiter in addition to ;; where ;& implements a fallthrough to the next command list regardless on thether there is a match or not. - Bourne Shell: The file xec.c has been reindented for the "case" support code in the interpreter. The indentation is now one tab less so code becomes more readable. - ved/bsh/bosh: map.c now includes better command for the routines that implement fallback to some basic mapping when no user defined mapping has been set up. Changes from AN-2020-03-27: - Bourne Shell: The case statement now supports the alternate end case symbol ";;&" that has been introduced by bash. If ";;&" is used instead of ";;", the next pattern list is evaluated and if there is a match, the related command list is executed. Changes from AN-2020-04-18: - Bourne Shell: IRIX has ls(1) installed as /sbin/ls and this caused some of our unit tests to fail. We now only check for "bin/ls" and no longer for "/bin/ls" in "type" return messages. - Bourne Shell/bsh: signames.c has been modified to work correctly if the number of statically defined realtime signals is odd. This applies to NetBSD and caused the shells to miss RTMIN+15 on NetBSD. Thanks to Robert Elz for reporting - Bourne Shell: A new trap code "ERR" as been introduced. This is modeled after a feature from ksh88. "trap cmd ERR" causes "cmd" to be called whenever a command causes a non-zero exit code. The "cmd" is not called in case that with "set -e" the shell would not exit. This is not required by POSIX but helpful. - Bourne Shell: A new set of unit tests for the ERR trap has been added. - Bourne Shell: An attempt to fix the POSIX behavior for set -e from October 2018 has been identified to be wrong. If we kept that change, a list with "set -e; ..." and a failing command would not exit as expected. - Bourne Shell: A new piece of code has been added to handle set -e for function calls. - Bourne Shell: The man page now better explains the behavior, if in set -e mode. - Bourne Shell: print.c::prs_cntl() could cause a buffer overflow with "unprintable" multi byte UNICODE characters that are printed as list of octal escape sequences. the buffer overflow happened because there was only redzone space for one such octal escape sequence. Thanks to Heiko Eißfeldt for reporting Changes from AN-2020-05-11: - Makefile system: A new version of the BSD make (bmake) program fixed a bug in pattern macro substitution, so we are now able to detect BSD make and to read BSD make program specific rules. This could in theory allow us to support BSD make in the future, but... Note that we on the other side discovered a new bug with pattern macro substitution in bsd make: The substitution: $(FOO:%=bar/%) is replaced by "bar/" with an empty "FOO", but of course, with an empty FOO, the substitution should be empty as well. This second bug (above) was fixed on May 6th, but we do not yet have all needed make rules and we do not know whether other bugs may still prevent the usability of BSD make. Supporting BSD make will be hard as BSD make does not support pattern matching default rules and this is important for placing the .o files into a sub-directory. Also note that the portable program source for "bmake" from "pkgsrc" is 2 years old and thus currently cannot be supported at all. If you like to experiment on your own, you need to get this version: http://crufty.net/help/sjg/bmake.html see http://www.crufty.net/ftp/pub/sjg/bmake.tar.gz and replace the newer files from the netbsd.org CVS tree by hand in order to fix the first and second mentioned pattern macro substitution bug. - Makefile system: RULES/MKLINKS was enhanced to create a new symlink RULES/r-bsdmake.tag that points to RULES/r-make.tag - Makefile system: The archive makefiles.tar.bz2 has been added to the schilytools tree to allow easy reuse of the makefile system for own projects. - Bourne Shell: The unit tests for the new ERR trap did not work on Solaris because /bin/false on Solaris causes an exit code of 255. We now only check for an exit code != 0. - Bourne Shell: Some of the unit tests for the trap command are now only run in case that the SUT is "bosh". - Bourne Shell: set -- now checks the '\0' character at the end of the string "--". This fixes strange behavior with argument strings that start with "--". - Bourne Shell: Added a new flag XEC_INFUNC to the xflag parameter to mark the fact when inside a function. - Bourne Shell: set -e no longer causes commands with nonzero exit code to abort inside a function in case that the return code of that function is evaluated by e.g. an "if" statement. Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: $- may no longer be partially wrong (and miss the state of the -e flag). Thanks to Koichi Nakashima for reporting - Bourne Shell: under some rare conditions, the syntax tree -> cmdline converter could omit a command delimiter. This was the result of the fact that a helper variable "didnl" (used for codeoutput beautifying) was not reset in func.c and thus could cause printf a ; printf b to print "aprintf b" instead of "ab" Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: A command like: command | while read name; do loopcmd; done did stop after the first loop because "read" did then read from stdin instead of using the pipe file descriptor. This happened only of "loopcmd" was not a shell builtin. Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: When we added support for ${var+value with spaces} 4 years ago, we forgot to enhance the lexer the same way for things like "${var+value with spaces}" and "${var+"value with spaces"}". This has been forgotten, because a different part of the lexer is used to parse that kind of quoted strings. The lexer now supports looking for closing '}' in quoted text as well. Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: The expression "${var1#"$var2"}" has been introduced by ksh88 with strange rules for the way the double quotes past # are handled. We now support them.... Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: Some unit tests from "mksh" (that previously have been disabled) have been enabled, since the two changes above now make the Bourne Shell behave like "mksh" for these 6 additional tests. |
||
---|---|---|
.. | ||
ast-ksh | ||
autojump | ||
bash | ||
bash-completion | ||
bash2 | ||
bash2-doc | ||
bosh | ||
dash | ||
eltclsh | ||
es | ||
esh | ||
fish | ||
git-sh | ||
guile-gash | ||
heirloom-sh | ||
lshell | ||
mksh | ||
nologinmsg | ||
oksh | ||
osh | ||
pbosh | ||
pdksh | ||
perlsh | ||
posh | ||
rc | ||
rssh | ||
scponly | ||
scsh | ||
standalone-tcsh | ||
static-ast-ksh | ||
static-tcsh | ||
tcsh | ||
xonsh | ||
xsh | ||
zsh | ||
zsh-autosuggestions | ||
zsh-completions | ||
zsh-pure | ||
zsh-syntax-highlighting | ||
Makefile |