New features with AN-2016-07-25:

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

-	Cstyle: added the "C Style and Coding Standards for SunOS"
	paper (troff .ms) from Bill Shannon to the project.

-	Cstyle: added the postscript version from the
	"C Style and Coding Standards for SunOS" paper.

-	Cstyle: added a workaround for a perl-5.22.incompatibility that caused
	repeated warnings.

-	Cstyle: Use newer CDDL header to work around the dead link
	http://www.opensolaris.org/os/licensing

-	Cstyle: avoid to warn about bad C++ comment when a URL appears
	inside a one line C comment.
	Thanks to Heiko Eifeldt for a suggestion on how to fix the problem.

-	Cstyle: warn about return type being on the same line as the
	function definition even when the function definition starts
	with the tags "extern" or "static".

-	Star: In list mode, use longer character arrays to convert the
	link count, uname and gname. The linkcount array did miss the
	space for a space character.
	Thanks to Heiko Eifeldt for the report.

-	Star: Abort when a CPIO archive claims to havea zero sized filename.
	Thanks to Heiko Eifeldt for the report.

-	Star: star -i no longer tries to access memory before the file name
	array when the file name field starts with a nul byte.
	Thanks to Heiko Eifeldt for the report.

-	Star: Check whether the devminorbits value is reasonable to avoid
	an array out of bound read access.
	Thanks to Heiko Eifeldt for the report.

-	Star: remove a left over debug printf in create.c that was inserted
	while fixing the star -dump -vv bug in schilytools-2016-06-28.

-	Bourne Shell: Fix a bug introduced while adding support for $() 
	The bug caused echo "$\|a" to print "$\a"

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

-	Bourne Shell: Cstyle changes that result from the enhancements
	of the cstyle program.

-	Bourne Shell: A new option "set -o posix" was introduced to allow
	to switch into full POSIX mode. This option currently disables
	the character '^' to be recognised as an alternate pipe character
	that helps to use "upper case only" terminals.

	Thanks to Martin Vth <martin@mvath.de> for reporting problems with
	unquoted '^'s inside words in the Gentoo startup scripts while
	trying to use bosh as the Gentoo system shell.

-	Bourne Shell: Code was added to let the shell automatically identify
	whether it has been called from a special path, like e.g.
	"/usr/xpg4/bin/sh" and to auto-switch into posix mode (set -o posix)
	in case that path was used.

-	Bourne Shell: Code has been added to permit users to compile the
	shell to identify another path as a path to auto enable POSIX
	mode. This mode permits to e.g. use "/bin/sh" as an additional
	path to aoto-switch into POSIX mode when the following commandline
	is used to compile:

		smake 'CPPOPTX=-DPOSIX_BOSH_PATH=\"/bin/sh\"'

	Note that POSIX rules say that /bin/sh typically is not a POSIX
	shell. Some platforms however like to have non-portable shell scripts,
	that require a shell behavior that is not compatible with the
	traditional bourne shell, but using #!/bin/sh in the first line. In
	such a case, it helps to tell the shell to show POSIX behavior even
	when called as "/bin/sh".

-	Bourne Shell: the "test" command has been rewritten to include new
	functions test_unary() and test_binary() that allow to implement 100%
	POSIX test behavior.

-	Bourne Shell: the "test" command has been rewritten to use a new concept
	for POSIX support.

	Thanks to Martin Vth <martin@mvath.de> for reporting problems with
	test calls in the Gentoo startup scripts while trying to use bosh as the
	Gentoo system shell.

-	Bourne Shell: The man page now better explains the "test" behavior and
	includes suggestions on how to make scripts better aware of the problems
	with the POSIX "test" CLI concept.

-	Bourne Shell: the lexer has been changed to treat everything between
	"${" and "}" as a single word as required by POSIX.

	Thanks to Martin Vth <martin@mvath.de> for reporting problems with
	the Gentoo startup scripts while trying to use bosh as the Gentoo
	system shell.

-	Bourne Shell: The test suite has been enhanced to include more POSIX
	specific "test" builtin calls.

-	Bourne Shell: The shell compliance tests do no longer verify whether
	'^' can be used as an alias for the pipe character if the shell
	is in POSIX mode.

-	Bourne Shell: The "printf" builtin command now supports:

		printf "%b" 'abc\0def'

-	Bourne Shell: A new testsuite for the "printf" command was added

-	Test framework: added a new option "-esilent" to make the test
	completely silent. This helps to implement hidden tests that are used
	to e.g. switch off tests like the new test mentioned above.
	

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

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