New features with AN-2016-01-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 - libschily: fprformat.c now compiles with format.c in a way that is useful on all possible targets by implementing a double buffered macro based internal method for fprfprmat(). This is aprox. 10% slower than the previous single buffered solution for Solaris (based on the putc_unlocked() macro) but it works anywhere and it does not have the problems with unbuffered streams (like stderr) that have been seen on Solaris since fprformat() was introduced in 2013. - libschily: js_printf() and js_fprintf() now by default uses fprfprmat() on all platforms. This reduces the performance on Solaris by 10% but it enhances the performance on all other platforms. Our "od" implementation via "hdump" is now 70% faster than "gnu od" on Linux instead of being 50% faster before that change. It seems to be a good idea to get a fast and POSIX compliant "od" implementation on Linux. - libscg: A new interface function "scg_opts()" has been introduced to parse and set op generic SCSI options. The only new implemented general option for now is: "ignore-resid". This option was introduced in order to be able to work around a Linux kernel bug that results in a DMA residual count != 0 even though all data was transferred. - cdrecord: A new option scgopts=list has been introduced. Call "cdrecord scgopts=ignore-resid ..." in order to work around the mentioned Linus kernel bug. - cdrecord: The man page now also mentions scgopts=ignore-resid - cdda2wav: A new option scgopts=list has been introduced. - readcd: A new option scgopts=list has been introduced. - scgcheck: A new option scgopts=list has been introduced. - btcflash: A new option scgopts=list has been introduced. - sformat: A new option scgopts=list has been introduced. - Bourne Shell: The builtin commands now correctly process the final code from the builtin() function even if they have been called with "-help" or with an illegal option. - Bourne Shell: The "cd" builtin now implements the POSIX options -L and -P - Bourne Shell: The "pwd" builtin now implements the POSIX options -L and -P - Bourne Shell: The "pushd"/"popd"/"dirs" builtins now implement the options -L and -P. - Bourne Shell: the "alias" builtin command now supports the option "-raw" in addition to "--raw" and "-R". - Bourne Shell Missing features for POSIX compliance: - Tilde expansion after unquoted ':' in variable assignment - Command Substitution with $(cmd) - Arithmetic Substitution with $((expression)) - 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.