New features with AN-2015-12-16: 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 - include/schily/stdint.h Better comment on how to set up an unsigned with the positive value of TYPE_MINVAL(type). - libschily: New file astoul.c - libschily: astoi.c now supports ERANGE and parsing TYPE_MINVAL(long) - libschily: astoll.c now supports ERANGE and parsing TYPE_MINVAL(long long) - libgetopt: getopt() now also supports single dash "-long" with long options. Long options with a single dash have been introduced with Multics and appeared on UNIX around 1980, see e.g. kill (1). - cdda2wav: A new local autoconfiguration from Heiko Eißfeldt that is indended to better deal with incomplete Linux installations - mkisofs: avoid an endless loop in multi session mode and with certain defective ISO filesystem images. - mkisofs now includes DVD-Audio support. To impelemt this, the automated sort routine for DVD/audio/video has been replaced. If there are any problems, please recompile with "smake COPTX=-DOLD_DVD_WEIGHTS" test and report. IMPORTANT: This modification may affect the rare but exitent problem with DVD-Video that aborts with: "Implementation botch. Video pad for file %s is %d\n" because of a negative patch value. It may be that the old weighting algorith let some files slip through the mesh and did not sort them so such a file could appear on a wrong position on the medium. Please test and report. - bsh/Bourne Shell/ved: map.c no longer free()s the wrong comment pointer with del_map() - Bourne Shell: All builtins that need to follow the POSIX utility syntax guidelines have been modified to do so and in addition also support the -help option for a short usage message. - Bourne Shell: the "@" command now includes option checking and support for -- - Bourne Shell: the "dosh" command now includes option checking and support for -- - Bourne Shell: the "type" command now includes option checking and support for -- - Bourne Shell: the "errstr" command now includes option checking and support for -- - Bourne Shell: the fg/bg/wait/stop/kill/killpg/suspend/pgrp commands now include option checking and support for -- - Bourne Shell: the export/readonly/unset commands now include option checking and support for -- - Bourne Shell: the hash/map/read commands now include option checking and support for -- - Bourne Shell: The first character in IFS is now used as the separator for "$*". This is for POSIX compliance - Bourne Shell: fixed a bug that caused the shell to dump core or to abort in case that job control was switched on and a long command line was entered. This bug was introduced in 1989 by AT&T for SVr4. - Bourne Shell Missing features for POSIX compliance: - Parameter substitution with these constructs: ${#parameter} -> strlen(parameter) ${parameter%[word]} -> Remove Smallest Suffix Pattern ${parameter%%[word]} -> Remove Largest Suffix Pattern ${parameter#[word]} -> Remove Smallest Prefix Pattern ${parameter##[word]} -> Remove Largest Prefix Pattern With $* $@, all above expansions are unspecified - Command Substitution with $(cmd) - Arithmetic Substitution with $((expression)) - ! as a reserved word to logically NOT the exit code - cd with "-LP" as options - pwd with "-LP" as options - "command" builtin - 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. - write a printf builtin - Finish loadable builtin support. - We are not allowed 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.