New features with AN-2017-09-07:

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

-	libschily::fnmatch(): The POSIX specifiers [:upper:] and [:lower:] now
	work together with FNM_CASEFOLD.

-	Bourne Shell: cmd >> file now sets O_APPEND in the open file even when
	"file" does not yet exist.

	Thanks to a report from Steffen Nurpmeso.

-	Bourne Shell: Depending on vfork() timing, vfork() could clobber
	the exit code ($?) in the parent process. struct excode ex is now
	restored to the saved value in the vfork() parent.

	Thanks to Martijn Dekker for reporting

-	Bourne Shell: Added a conformance test for above bug

-	Bourne Shell: The echo builtin now always behaves POSIX
	compliant in case that it is called as "command -p echo".
	This is independent from whether SYSV3 is set or whether
	/usr/ucb is before /usr/bin in PATH.

-	Bourne Shell: A conformance tests was added for above change.

-	Bourne Shell: A bug introduced with schily-2017-08-29 has been
	fixed: "command cmd" now again calls the builtin "cmd",
	even when a function "cmd" exists.

	Thanks to Martijn Dekker for reporting

-	Bourne Shell: Added a compliance test for above problem

-	Bourne Shell: The builtin "builtin", if called with a file
	type argument no longer prints  debug messages on stdout that
	cannot be redirected.

	Thanks to Martijn Dekker for reporting

-	Bourne Shell: "VAR=val exec cmd" now exports VAR to "cmd".
	This is not needed for POSIX compliance, but it is much
	more orthogonal than the previous behavior that was derived from
	the historical Bourne Shell.

	Thanks to Martijn Dekker for reporting

-	Bourne Shell: added a conformance test for above modification

-	Bourne Shell: the command "type xxx" with xxx being a builtin command
	now always prints the correct enhanced text (*) instead of just printing
	"is a shell builtin" in case that the builtin was hashed already.

	*) This may be:

		-	is a special shell builtin
		-	is a shell intrinsic
		-	is a shell builtin

	Thanks to Martijn Dekker for reporting

-	Bourne Shell: aliases now are expanded also when inside the "eval"
	command. It is not 100% clear whether this is intended by POSIX, but
	all other known shells do it this way.

	Thanks to Martijn Dekker for reporting

-	Bourne Shell: IO stacking for alias expansion has been rewritten
	to deal with multiple arguments to eval. This needs to remember the
	characters peeked by the parser and a NULL pointer that appeares at
	the end of the argument list of an "eval" with more than a single
	argument.

	Thanks to Martijn Dekker for reporting

-	Bourne Shell: "return" now affects not only functions but also "dot"
	scripts. This is needed in order to become POSIX compliant.

	Thanks to Martijn Dekker for reporting

-	Bourne Shell: added a compliance test for above change.


-	SunPro Make: Even when called as "make" or "dmake", the program now
	forwards command line macro assignments to recursively called make
	programs. Before, this feature was only enabled when in the POSIX
	or GNU emulation mode.

	To switch to the old behavior, set up an empty environment variable
	with the name:

		SUN_MAKE_COMPAT_MODE=



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