New features with AN-2016-08-08:

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


-	ved: clear out a FILE * variable in storage.c after calling fclose().
	This is to avoid a double fclose() that causes a core dump on Linux.

-	ved: bump version to 1.7-final

-	Bourne Shell: This version of the Bourne Shell has been successfully
	used as system shell (/bin/sh) on Gentoo Linux. To be able to use
	the shell as the Gentoo system shell, you need to compile the sources
	using "smake COPTX=-DDO_POSIX_SH" to let it auto-select 100% POSIX-
	mode when the last path component in argv[0] is "sh".

	Note that we cannot make this behavior the default as on genetic UNIX
	versions such as OpenSolaris, there may be scripts that would fail
	if /bin/sh did follow some of the incompatible changes introduced by
	POSIX. The problems are mainly expected with "test -t" without argument
	to the -t operator. Note: ksh93 supports "test -t" without argument as
	well and thus is not 100% POSIX.

-	Bourne Shell: Fixed another typo in Makefile

-	Bourne Shell: New control: NO_PIPE_PARENT to manually switch to
	the old pipe behavior. This helps to compile a shell with traditional
	pipe setup in case there are problems that may be caused by the new
	pipe setup.

-	Bourne Shell: The optimized pipe set up introduced in December 2015
	caused a hang with the following command:

		echo 1 |  while read a; do :; done  | cat

	because "read" continued to read from "stdin" after an EOF on the
	pipe has been observed. The fixed code avoids to move back the saved
	stdin from file descriptor #10 after EOF was seen.

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

-	Bourne Shell: a new test for the pipe problem mentioned above has been
	added to the test suite.

-	Bourne Shell: An error message for a failing dup() from 2016-08-01
	has been reverted as this can happen with non-problematic scripts
	as well.

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

-	Bourne Shell: The rewrite of the "test" command from 2016-07-25 caused
	a side-effect bug while trying to support the SVr4 "test -t" without
	further argument. This caused bosh to print "FAIL" with:

		echo 1 | bosh -c '[ a = a -a -t 0 ] && echo FAIL'

	In case of the bug, the "-t 0" part was not executed because the arg
	index was incorrectly incremented as an unwanted side effect.

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

-	Bourne Shell: The test for POSIX_BOSH_PATH has been modified to permit
	to have symlinks as the path string used by POSIX_BOSH_PATH.

-	Bourne Shell: A new #define DO_POSIX_SH allows to do "set -o posix" by
	default in case the last path name component from argv[0] of the shell
	is "sh". This is recommended on Linux in case bosh is used as /bin/sh.

-	Bourne Shell: The automated "set -o posix" value is now remembered and
	used for subshells that execute scripts.

-	Bourne Shell: The "trap" command now permits to set handlers for SIGSEGV.
	Since bosh was rewritten to be malloc()-based in April 2012, there is no
	need to treat SIGSEGV special anymore and POSIX does not allow to do so.

-	Bourne Shell: test suite now calls "pwd" before using $PWD to make sure
	PWD was initialized correctly.

-	libschily: searchinpath.c was enhanced to support a search for symlinks
	to support the Bourne Shell POSIX_BOSH_PATH feature.

-	Bourne Shell: Do not list functions when calling "set" with no
	arguments in case that "set -o posix" is active.

	Note that this POSIX requirement is seen as a POSIX bug as long as
	there is no POSIX command to list function definitions.

	NOTE that there is a related POSIX bug:
		http://austingroupbugs.net/view.php?id=1025

	The new Bourne Shell behavior to depend on set -o posix is similar
	to what "bash" does.

-	Bourne Shell: The "type" builtin now has a new option -F to print
	all currently defined functions.




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

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