New features with AN-2017-03-30: 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 file README.compile now explains how to compile with the gcc address sanitizer and with afl-gcc (American Fuzzy Lop). Thanks to a hint from Heiko Eißfeldt. - A typo in the autoconf file xconfig.h.in has been fixed - libschily:comexit() the memory allocated via on_comerr() is now freed with comexit(). Thanks to a hint from Heiko Eißfeldt. - Cdda2wav: changed the variable userverbose from "int" to "long". This is needed as getargs() always uses a long * argument for a function for a callback option. The result of this bug was that "cdda2wav -vall" did set the output fd to 0 and as a result, error messages have been printed to stdin instead of stderr. This of course created problems with GUI frontends if the cdda2wav binary was a 64-bit binary. Thanks to a hint from Thomas Niederreiter - Cdda2wav: cdda2wav out-fd=2 no longer delays the output because the output is buffered. Thanks to a hint from Thomas Niederreiter - Cdda2wav: modified the man page to make it obvious that the new cdda2wav auto-detects whether a drive supports to read C2-error lists. Thanks to a hint from Thomas Niederreiter - Cdda2wav: added a workaround for a problem caused by a Linux stdio bug that causes "stderr" to be buffered even though POSIX requires it to be unbuffered. Thanks to a hint from Thomas Niederreiter - Bourne Shell: _macro() is now an alternate global interface to macro() that does not call fixstak() and thus allows to be used to create intermediate strings. - Bourne Shell: ps_macro() now comes with a second argument "perm" that tells it to convert the resulting string into a permanent string using make(). - Bourne Shell: The prompt setup for libshedit now makes uses from the permanent strings from ps_macro() - Bourne Shell: cat << EOF issued in an interactive shell (that expands $PS2) no longer clobbers the content of the here document. - Bourne Shell: printf '\0123' now prints correctly the equivalent of '\n3' Before, printf did incorrectly parse up to 4 octal digits in case that an octal number started with '0'. - Bourne Shell: a typo in the man page was fixed for the "test" description. - Bourne Shell: the unit tests have been enhanced to cover the printf '\0123' case. - Bourne Shell: the unit tests have been enhanced to cover the problem with the PS2 expansion while reading here documents. - smake: The function fastalloc() no longer allocs too much in somes pecial cases. Thanks to a hint from Heiko Eißfeltd - strar: Not yet ready, the current status is: This command is usable for basic work already The following features are currently missing: - A method to descend directory trees, e.g. libfind - A noclobber flag - A method to avoid to replace files that are more recent on disk than in the archive. - Set the file permissions - Set the original file time stamps - Set the original file owners. These features will be implemented in a future version. - 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: - 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 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.