New features with AN-2016-11-17: 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: the specialized code for Solaris 64 bit stdio has been enhanced to support more features based on the hidden FILE * structure that still is AT&T compatible. We now support block based read access on the FILE * buffer. - libschily: new function: movecbytes() behaves similar to memccpy() - libschily: fgetline() now uses movecbytes() on all stdio implementations that are AT&T compatible. - libschily: fgetstr() now uses movecbytes() on all stdio implementations that are AT&T compatible. - libschily: getdelim() now uses movecbytes() in case that the stdio implementation is known to be AT&T compatible. This now includes support for the AT&T compatible hidden interface from Solaris 64 Bit. This new getdelim() prevents a slow down on larger number of platforms with some programs that now use getdelim(). getdelim() is now used in sccs/sccs/cmd/src/diffh.c and sccs/sccs/cmd/src/bdiff.c and will be used in more programs in the future. fgetaline() is based on getdelim() and used in: change, patch, cut, pasteto support arbitrary line lengths. - sfind: Fixed some typos in the man page. - SCCS diff: Added a check whether a malloc() call returns NULL Thanks to Heiko Eißfeldt for reporting. - SCCS diffh: since diffh supports arbitrary line lengths, the space for each line may differ. We thus check whether we need to grow a target line before we copy content. Thanks to Heiko Eißfeldt for reporting. - SCCS bdiff: Lines are now read by getdelim() instead of a line of fgets() calls. This is a preparation for supporting nul bytes in the lines. Note that getdelim() is not a 100% replacement for fgets() as getdelim() puts a nul byte at the beginning of the buffer in case of EOF. - SCCS bdiff: the program is no longer C-string based but uses the ssize_t line length return value from getdelim() to support lines that include NUL Bytes. The bdiff program now calls "diff -a" as our diff program supports -a and as bdiff never checked for NUL bytes in the input. - SCCS bdiff man page: A section AUTHORS has been added and a section NOTES. The latter mentions that bdiff now supports binary data. - SCCS bdiff: Added code to enable a simplified compilation on Solaris-ON without using the schily include files. - SCCS test suite: added new random based tests to verify whether the output generated by the bdiff program is understood by the SCCS delta program. - patch: the random test scripts from the test suite have been modified to work with e.g. "diff=bdiff ./cmptest.sh" - mdigest: removed a superfluous variable - hdump/od: "od -A n ..." no longer prints a stray TAB on the last line. - mkisofs: The find_hash() function has been set up with a slight differing interface to prepare the integration of the correct parts from the "duplicate once" patch. - Bourne Shell: The new code avoids a race condition with "set -C; :> file" by checking the file type of the opened file and by failing when this turns out to be a plain file. This is needed as an existing device file or fifo will allow an open without a clobber message, but that entry could be removed and replaced by a file before the shell opens it. - Bourne Shell: bosh -c -- "command" is now supported. Before "--" was interpreted as the command and the command as $0. - Bourne Shell: test suite: added new tests to verify bosh -c -- "command" - 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.