New features with AN-2017-12-08: 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 - The Schily Makefilesystem now uses .PHONY again (and no longer "FRC") unless the make program was identified as an old unfixed "SunPro Make" from Sun or Oracle. - README.compile now better explains that CCOM= does not just set the C-compiler but the compiler family that includes a C++ compiler. - include/schily/archdefs.h: With Sun Studio-12.4 on Oracle Solaris-11.2, we had a problem with __SUNPRO_C and needed to change it to __IS_SUNPRO_C Thanks to Jens Elkner for reporting. - libschily::format.3 the man page for the printf worker function now menions the new fomats %E %F %G - Bourne Shell test suite: Some problems in the printf(1) tests have been fixed. - \n inside "" is now properly quoted in order to let printf do the \n expansion - LC_ALL=C -> LC_ALL=C; export LC_CLL in order to permit to use the test suite to check floating point behavior in an external printf(1) implementation as well. - Bourne Shell and printf: the man pages now mention the new %n$ formats - Bourne Shell: cbuf[] in print.c::prs_cntl() was made 4 chars longer to avoid a buffer overflow from calling octal() that inserts 4 characters at once. Thanks to Heiko Eißdeldt for reporting. - Bourne Shell: The lexer now always correctly adds a second Nul byte after a "\\\0" sequence. This prevents split()/trims() from reading past the end of a string. Thanks to Heiko Eißdeldt for reporting. - Bourne Shell: The PATH search mechanism now always correctly adds a second Nul byte after a "\\\0" sequence. This prevents split()/trims() from reading past the end of a string. Thanks to Heiko Eißdeldt for reporting. - Bourne Shell: As a hack to the problem from above, the shell now adds a second Nul byte after every string that is remembered for a function definition. - Bourne Shell: "command " did not prevent a script from exiting on errors in case that before: - the same was called to pring it into the hash list. - "hash -r" or PATH=.... was called to zap the hash content. Thanks to Martijn Dekker for reporting. - Bourne Shell: prevent an illegal heap access in case that a command name ends in a backslash. The function catpath() in the PATH search code not adds a second Nul byte in this case. Thanks to Heiko Eißdeldt for reporting. - Bourne Shell: the arithmetic expansion for $(()) has been rewritten to be able to deal with syntax errors while the shell is in a non-exit-on-error state. Thanks to Heiko Eißdeldt for reporting. - Bourne Shell: the macro expansion has been rewritten to return early from an error when on a non-exit-on-error state. Thanks to Heiko Eißdeldt for reporting. - Bourne Shell: Fixed a bug in the endstak() function for string stak handling. In rare cases, the function could allocate one byte too few. Thanks to Heiko Eißdeldt for reporting. - SunPro Make: Oracle Solaris-11.2 hides wcsdup() behind "namespace std". We need to add "using namespace std" to make it compile again. - SunPro Make: The make program now also sets SGS_SUPPORT_32 and SGS_SUPPORT_64 in case that at least one of these variables was set before "make" started. Previously only SGS_SUPPORT was set and for this reason, our setup could be ignored. - SunPro Make: Support for the special target .PHONY has been added. - SunPro Make: The new macro MAKE_NAME=sunpro is no longer visible in case that the make prigram is in Sun compatibility mode or in SVr4 compatibility mode. - cdda2wav: It is also Copyright 2017 Heiko Eißfeldt - cdrtools:bumped to version 3.02a09 - Bourne Shell Missing features for POSIX compliance: - Support for $'...' quoting (this is not needed for the current version of POSIX but for the next POSIX version that will be named SUSv8). The development of SUSv8 will start in late 2016. We are now expecting the Bourne Shell to be fully POSIX compliant. - Bourne Shell further TODO list: - 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 execute 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.