New features with AN-2016-04-11:

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

-	libgetopt: Use dgettext() instead of gettext() as the translations
	for Solaris are in "SUNW_OST_OSLIB" while the commands use 
	"SUNW_OST_OSCMD".

-	bsh: avoid a gcc warning with bsh/sys.c when using waitid().

-	star: Manpage now mentions star_sym and tartest in the SEE ALSO section

-	Bourne Shell: The lexer now uses a method to convert syntax trees from $()
	back into text that does not try to replace newlines by semicolons.
	This avoids oddities with the shell syntax that may cause the parser to
	reject the textual result.

-	Bourne Shell: The syntax tree -> text converter has been reworked to
	suppress the content of here documents in case that newlines are converted
	into semicolons. This helps to keep the "job" listing output use one line
	per job.

-	Bourne Shell: The The syntax tree -> text converter now takes care of the
	oddity that the last newline from a here document is also seen as separator
	to the next command. Before, this separator may have been output twice and
	caused the parser to reject the created text.

-	Bourne Shell: We started to add compliance tests for the shell.
	We currently have a few dozen tests, but this will grow over time and help
	to avoid regression problems that may slip in over time while trying to
	fix other problems. To run the tests:

	-	compile everything my caling "make" at top level

	-	"cd sh/tests" and then call "make"

-	Bourne Shell: As a result from POSIX bug 947, see:

		http://austingroupbugs.net/view.php?id=947

	We now make the shell behave wrong by default when exitcode mod 256 == 0

-	Bourne Shell Missing features for POSIX compliance:

	- Arithmetic Substitution with $((expression))

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

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


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