New features with AN-2017-08-29:

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

-	Bourne Shell: Fixed a GCC warning in sh/gmatch.c

-	Bourne Shell: Our gmatch() now honors backslash escapes in character
	sets.

	Thanks to a report from Martijn Dekker.

-	Bourne Shell: Added a conformance test for the bugfix above.

-	Bourne Shell: Hitting ^C with PS1="$(pwd)> " caused the shell to go
	into an endless loop because the PS1 expansion tried to execute
	trap commands in the main loop after a longjmp() from expanding
	PS1.

	Thanks to a report from Leonard Knig

-	Bourne Shell: x=foo; : $((x=1)) no longer aborts with "bad number".

	Thanks to a report from Martijn Dekker.

-	Bourne Shell: Added a conformance test for the bugfix above.

-	Bourne Shell: Added a workaround for a signal race condition introduced
	most likely in 1989. The problem was that a signal that arrives in a 
	shell child - few instructions after a fork() call, may cause the child
	to kill it's parent instead of killing itself because the child did not
	yet call mypid = getpid().

	Thanks to a report from Martijn Dekker.

-	Bourne Shell: We now also hardlink the heredoc files in "fiotemp"
	in case we are not using vfork(). This was forgotten when the bug was
	fixed Tue Jul 18 2017 for vfork().

-	Bourne Shell: A bug was fixed that caused tmp files from here documents
	to be removed too early when (in some cases) here documents were used
	together with command substitution.

	Thanks to Robert Elz for reporting the problem first.
	Thanks to Martijn Dekker for reporting a simple command that finally
	allowed to trace and fix the problem.

-	Bourne Shell: Aded some tests to the testsuite to check whether the
	bug avove was fixed.

-	Bourne Shell: The "read" builtin now only skips those repeated IFS
	characters that are whitespace. This is required by POSIX.

-	Bourne Shell: Aded some tests to the testsuite to check whether the
	bug avove was fixed.

-	Bourne Shell: Field splitting now skips leading and trailing 
	"IFS whitespace". This is required by POSIX.

-	Bourne Shell: Aded some tests to the testsuite to check whether the
	bug avove was fixed.

	Thanks to a test program from Martijn Dekker.

-	Bourne Shell: "command cmd" is no longer implemented via code
	similar to "eval cmd", but directly calls execute() with a special
	flag that prevents to re-expand the arg vector.

	This now allows: "command expr 1 \< 2" to work as expected.

	Thanks to a report from Martijn Dekker.

-	Bourne Shell: Added a conformance test to check whether the command
	from above works correctly.

-	Bourne Shell: "VAR=val command env" now works as expected.
	Previous versions of bosh did not export VAR=val to the external
	program in this case.

-	Bourne Shell: Added conformance tests to check whether the command
	builtin works correctly.

-	SCCS testsuite: The file sccs/tests/Makefile now contains more rules
	to avoid to run the tests in an unexpected order with a parallel make
	program. We partially had the test staring before the binaries were 
	fully installed in /tmp/SCCSTESTS and SCCSv4 and SCCSv6 tests running
	contemporarily in the same directory.

-	SCCS: sccs now supports to use the options -f and -q for delget and
	deledit


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