New features with AN-2016-07-25: This is the first localization step for the schily source consolidation. Many programs now (hopefully) call gettext() for all strings that need localization. - The next step will include dgettext() calls for the libraries and the missing programs - The following step will include the extracted strings - The last step will include German translations and install support for the resulting binary message object files. ----------> Please test and report compilation problems! <--------- ***** NOTE: As mentioned since 2004, frontends to the tools should ***** ***** call all programs in the "C" locale ***** ***** by e.g. calling: LC_ALL=C cdrecord .... ***** ***** unless these frontends support localized strings ***** ***** used by the cdrtools with NLS support. ***** *** WARNING *** *** Need new smake *** *** Due to the fact that schily-tools 2014-04-03 introduced to use new macro *** expansions and a related bug fix in smake, you need a new smake *** to compile this source. To ensure this, call: cd ./psmake ./MAKE-all cd .. psmake/smake psmake/smake install WARNING: the new version of the isoinfo program makes use of the *at() series of functions that have been introduced by Sun in August 2001 and added to POSIX.1-2008. For older platforms, libschily now includes emulations for these functions but these emulations have not yet been tested thoroughly. Please report problems! The new smake version mentioned above is smake-1.2.4 - Cstyle: added the "C Style and Coding Standards for SunOS" paper (troff .ms) from Bill Shannon to the project. - Cstyle: added the postscript version from the "C Style and Coding Standards for SunOS" paper. - Cstyle: added a workaround for a perl-5.22.incompatibility that caused repeated warnings. - Cstyle: Use newer CDDL header to work around the dead link http://www.opensolaris.org/os/licensing - Cstyle: avoid to warn about bad C++ comment when a URL appears inside a one line C comment. Thanks to Heiko Eißfeldt for a suggestion on how to fix the problem. - Cstyle: warn about return type being on the same line as the function definition even when the function definition starts with the tags "extern" or "static". - Star: In list mode, use longer character arrays to convert the link count, uname and gname. The linkcount array did miss the space for a space character. Thanks to Heiko Eißfeldt for the report. - Star: Abort when a CPIO archive claims to havea zero sized filename. Thanks to Heiko Eißfeldt for the report. - Star: star -i no longer tries to access memory before the file name array when the file name field starts with a nul byte. Thanks to Heiko Eißfeldt for the report. - Star: Check whether the devminorbits value is reasonable to avoid an array out of bound read access. Thanks to Heiko Eißfeldt for the report. - Star: remove a left over debug printf in create.c that was inserted while fixing the star -dump -vv bug in schilytools-2016-06-28. - Bourne Shell: Fix a bug introduced while adding support for $() The bug caused echo "$\|a" to print "$\a" Thanks to Martin Väth for reporting. - Bourne Shell: Cstyle changes that result from the enhancements of the cstyle program. - Bourne Shell: A new option "set -o posix" was introduced to allow to switch into full POSIX mode. This option currently disables the character '^' to be recognised as an alternate pipe character that helps to use "upper case only" terminals. Thanks to Martin Väth for reporting problems with unquoted '^'s inside words in the Gentoo startup scripts while trying to use bosh as the Gentoo system shell. - Bourne Shell: Code was added to let the shell automatically identify whether it has been called from a special path, like e.g. "/usr/xpg4/bin/sh" and to auto-switch into posix mode (set -o posix) in case that path was used. - Bourne Shell: Code has been added to permit users to compile the shell to identify another path as a path to auto enable POSIX mode. This mode permits to e.g. use "/bin/sh" as an additional path to aoto-switch into POSIX mode when the following commandline is used to compile: smake 'CPPOPTX=-DPOSIX_BOSH_PATH=\"/bin/sh\"' Note that POSIX rules say that /bin/sh typically is not a POSIX shell. Some platforms however like to have non-portable shell scripts, that require a shell behavior that is not compatible with the traditional bourne shell, but using #!/bin/sh in the first line. In such a case, it helps to tell the shell to show POSIX behavior even when called as "/bin/sh". - Bourne Shell: the "test" command has been rewritten to include new functions test_unary() and test_binary() that allow to implement 100% POSIX test behavior. - Bourne Shell: the "test" command has been rewritten to use a new concept for POSIX support. Thanks to Martin Väth for reporting problems with test calls in the Gentoo startup scripts while trying to use bosh as the Gentoo system shell. - Bourne Shell: The man page now better explains the "test" behavior and includes suggestions on how to make scripts better aware of the problems with the POSIX "test" CLI concept. - Bourne Shell: the lexer has been changed to treat everything between "${" and "}" as a single word as required by POSIX. Thanks to Martin Väth for reporting problems with the Gentoo startup scripts while trying to use bosh as the Gentoo system shell. - Bourne Shell: The test suite has been enhanced to include more POSIX specific "test" builtin calls. - Bourne Shell: The shell compliance tests do no longer verify whether '^' can be used as an alias for the pipe character if the shell is in POSIX mode. - Bourne Shell: The "printf" builtin command now supports: printf "%b" 'abc\0def' - Bourne Shell: A new testsuite for the "printf" command was added - Test framework: added a new option "-esilent" to make the test completely silent. This helps to implement hidden tests that are used to e.g. switch off tests like the new test mentioned above. - Bourne Shell Missing features for POSIX compliance: - Do not list functions when calling "set" with no arguments. Note that this POSIX requirement is seen as a POSIX bug as there is no POSIX command to list function definitions. NOTE that this will not be implemented before POSIX bug http://austingroupbugs.net/view.php?id=1025 was fixed. - A POSIX whitepaper at: http://www.unix.org/whitepapers/shdiffs.html claims that: IFS=o; violet should not execute "vi". The normative text in the POSIX standard describes the historic Bourne Shell behavior, but the rationale describes the deviating behavior from "ksh". - Support for $'...' quoting (this is not needed for the current version of POSIX but for the next POSIX version that will be SUSv8) We are getting very close to full POSIX support. - Bourne Shell further TODO list: - Try to make lastline= while read line do lastline=$line done < /etc/passwd echo "lastline=$lastline" print the last line of /etc/passwd without the exec "trick" that is documented in the man page. - Finish loadable builtin support. - POSIX does not allow us to implement ". -h", so we will add a "source" builtin to be able to implement "source -h" - The following builtins (that are available in bsh) are still missing in the Bourne Shell: err echo with output going to stderr glob echo with '\0' instead of ' ' between args env a builtin version of /usr/bin/env The following bsh intrinsics are still missing in the Bourne Shell: - the restricted bsh has restriction features that are missing in the Bourne shell. - source -h read file into history but do not excute and probably more features not yet identified to be bsh unique. Author: Joerg Schilling D-13353 Berlin Germany Email: joerg@schily.net, js@cs.tu-berlin.de joerg.schilling@fokus.fraunhofer.de Please mail bugs and suggestions to me.