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 Eifeldt 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 Eifeldt 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 Eifeldt 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 Eifeldt 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 Eifeldt 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 Eifeldt 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 Eifeldt 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 Eifeldt for reporting

-	SCCS: Changed $(MAKE) -> "$(MAKE)"

	Thanks to Heiko Eifeldt 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.
