New features with AN-2017-08-14: 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 - Schily Makefilesystem: Create new links arm64-freebsd-clang*.rul in RULES - Schily Makefilesystem: RULES/rules.ins now contain rules that prevent a parallel make program from trying to install things in the wrong order. Thanks to Heiko Eißfeldt for reporting - configure: Added tests for isblank() and iswblank() that have not been available in historix UNIX. - configure: Added a test for the type win_t. - Schily Makefilesystem: Changed $(MAKE) -> "$(MAKE)" Thanks to Heiko Eißfeldt for reporting - inc/avoffset.c: added a workaround for a clang bug with FreeBSD on ARM64. clang creates incorrect code for a while loop that results in an endless loop. The last line in that while loop is never executed. It turned out that adding read(-1, "", 0); at the beginning of the while loop works around the clang bug. Thanks to Robert Clausecker for reporting. - inc/avoffset.c: added a workaround for a problem with clang that causes the function stack_direction() to be inlined even though this was never requested. - libschily::format.c: a former "long" parameter in the format() routine has been changed to be now "void *". This is needed as sizeof(long) is less than sizeof(void *) on Win-DOS-64. This caused the printf() implementation from libschily to fail on Win64. Thanks to Colin Finck from the ReactOS team for reporting. - libschily: Addd a implementation for the functions: wctype() and iswctype() to allow porting to older platforms. - libschily::fnmatch.c The code was rewritten to avoid recursion using the recent code from FreeBSD. - libschily::fnmatch.c The behavior with a pattern that ends in a single escape character ('\') was modified to match the current POSIX text and the implementation from Sun/IBM/HP, see http://austingroupbugs.net/view.php?id=806 - libschily::fnmatch.c Added support for '[:alpha:]' and similar. This is needed to make fnmatch() POSIX compliant. We still miss support for '[=char=]' and '[.char.]'. - libschily::match.c Added support for '[:alpha:]' and similar. This is needed to make patmatch() POSIX compliant. We still miss support for '[=char=]' and '[.char.]'. - libscg: scsi-wnt.c corrected the DMA size for the WIN drive type inquiry. - libfind and sfind: As libfind uses fnmatch(), it now supports [[:alpha:]] with "-name" and "-path" in case the schily version of fnmatch() is used. - bsh: added a forgotten va_end() Thanks to Heiko Eißfeldt for reporting - bsh: avoid to call something like: if (flag & NOVFORK) child = shfork(flag); else child = shfork(flag); if VFORK is not #defined. Thanks to Heiko Eißfeldt for reporting - bsh: As bsh uses patmatch() from libschily::match.c, bsh now supports [[:alpha:]] in file name expansion. - Bourne Shell: The method to expand the content of here-documents was changed. The quoting state is now reset before starting to expand a here-document and restored thereafter. Thanks to Robert Elz for reporting - Bourne Shell: Added a related compliance test for the modification above. - Bourne Shell: The shell now checks whether an arithmetic expression in the form $((..)) correctly ends in "))" - Bourne Shell: Added a related compliance test for the modification above. - Bourne Shell: The comma oparator after a "?" oparator block is now correctly implemented. This causes e.g. bosh -c 'echo $(( 0 ? 2 : 3 , 0 ? 7 : 4 ))' to print "4" instead of "2". Thanks to Robert Elz for reporting - Bourne Shell: Added a related compliance test for the modification above. - Bourne Shell: bosh -c "echo bla" -x no longer arborts with an error message, but rather sets $0 to "-x". Thanks to Robert Elz for reporting - Bourne Shell: Added new conformance tests for the bug above. This includes tests that check whether "bosh -c -x cmd" works. - Bourne Shell: A case label now may contain keywords without a need to quote them. Thanks to Robert Elz for reporting - Bourne Shell: Added a compliance test from NetBSD that checks whether syntax errors are repotrted in some strange cases. - Bourne Shell: Added a compliance test from NetBSD that checks whether case statements may include unquoted keywords as case label. - Bourne Shell::gmatch.c The behavior with a pattern that ends in a single escape character ('\') was modified to match the current POSIX text and the implementation from Sun/IBM/HP, see http://austingroupbugs.net/view.php?id=806 - Bourne Shell::gmatch.c A constant comparison was moved outside a loop to speed up the code. - Bourne Shell::gmatch.c gmatch("[", "[") now may work like fnmatch() and treat "[" as normal char that matches "[" - if compiled with -DGMATCH_CLERR_NORM. - Bourne Shell::gmatch.c The code was rewritten to avoid recursion. This was based on the article: https://research.swtch.com/glob and may speed op things dramatically. Thanks to Heiko Eißfeldt for helping with this task. - Bourne Shell::gmatch.c Added support for '[:alpha:]' and similar. This is needed to make fnmatch() POSIX compliant. We still miss support for '[=char=]' and '[.char.]'. - Bourne Shell: Added new conformance tests for '[:alpha:]' and similar in file and "case" pattern matching. This enables '[:alpha:]' in file name expansion and in case statements. - Bourne Shell::gmatch.c When compiled with POSIX enhancements, this code is always preferrred before gmatch() from libgen. - Bourne Shell: Changed $(MAKE) -> "$(MAKE)" Thanks to Heiko Eißfeldt for reporting - SunPro Make: SA_SIGINFO does not exist on Minix. Added a #define SA_SIGINFO 0 in this case to allow compilation on Minux. Thanks to Heiko Eißfeldt for reporting - patch: the unit test now searches for "cpp" and may fall back to our self compiled cpp. This is needed as Minix does not come with "cpp". Thanks to Heiko Eißfeldt for reporting - SCCS: Changed $(MAKE) -> "$(MAKE)" Thanks to Heiko Eißfeldt for reporting - 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.