New features with AN-2016-08-01:

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

-	libshedit: We now have a complete set of makefiles for libshedit like 
	in other libraries, so there is potentially a shared library and a
	library variant compiled for gprof.

-	libshedit: The created library now is named "libshedit.*" like in the
	OpenSolaris makefile system. The old name "libshelledit" was given up.

-	Bourne Shell: A comment in Makefile had a typo:

		CPPOPTS += -DPOSIX_BOTH_PATH=\"/bin/sh\"

	fixed to:

		CPPOPTS += -DPOSIX_BOSH_PATH=\"/bin/sh\"

-	Bourne Shell: "read" now again works correctly with a single VAR
	argument. The bug has been introduced with 2016-07-06.

	Thanks to Martin Vth <martin@mvath.de> for reporting.


-	Bourne Shell: A bug introduced with schily-2016-07-25 in test was fixed.
	"test 0 -eq 1" again returns FALSE.
	
	Thanks to Martin Vth <martin@mvath.de> for reporting.

-	Bourne Shell: set -u; echo "$@" no longer returns an error with empty
	arg list. The shell now behaves like ksh.

	Thanks to Martin Vth <martin@mvath.de> for reporting.

-	Bourne Shell: "case" no longer remembers the last exit code in case
	that no pattern matches.

	Thanks to Martin Vth <martin@mvath.de> for reporting.

-	Bourne Shell: on platforms like Linux that do not have gmatch(), 
	"*[!a-z]*" did incorrectly match an empty string. We fixed our
	local gmatch() implementation.

	Thanks to Martin Vth <martin@mvath.de> for reporting.

-	Bourne Shell: Add new code to print a failure message when dup()
	fails. This is controllable with -DDO_DUP_FAIL and helps to identify
	bad file descriptor redirect statements.

	Thanks to Martin Vth <martin@mvath.de> for reporting a bad git script
	that did silently fail with the Bourne Shell, but an error message
	is printed by ksh.

-	Bourne Shell: A hack (similar to what ksh88 does in its POSIX reference
	variant) has been introduced with the following behavior:

	-	If an argument did not cause any parameter substitution or
		command substitution, no field splitting is applied.

	-	If an argument contains a $@ parameter substitution, standard
		field splitting is applied.

	-	If any other parameter substitution or command substitution
		happened inside the argument, field splitting using the
		value of $IFS is applied.

	This is related to:

	A POSIX whitepaper at: http://www.unix.org/whitepapers/shdiffs.html
	claims that:
			IFS=o; violet

	should not execute "vi". The normative text in the POSIX standard
	describes the historic Bourne Shell behavior, but the rationale
	describes the deviating behavior from "ksh".


-	Bourne Shell: The test suite now checks for set -u; echo "$@"

-	Bourne Shell: The test suite now checks for test 0 -eq 1

-	Bourne Shell: The test suite now checks the "read" builtin.

-	Bourne Shell: The test suite now checks whether case uses a default
	exit code of 0 if no case label matches.

-	Bourne Shell: The test suite now runs "configure" with the installed
	system shell and the test shell and compares the results.

-	Bourne Shell: The split() function has been optimized



-	Bourne Shell Missing features for POSIX compliance:

	- Do not list functions when calling "set" with no arguments.
	  Note that this POSIX requirement is seen as a POSIX bug as there
	  is no POSIX command to list function definitions.
	  NOTE that this will not be implemented before POSIX bug
	  http://austingroupbugs.net/view.php?id=1025 was fixed.

	- 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.
