New features with AN-2018-01-10:

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: fstream.c new function fsgetlen() returns number of characters
	in the stream buffer.

-	libshedit: New function shedit_getlen() returns number of characters in
	libshedit left over from last command line.

-	Bourne Shell: When we added the history editor in 2006, the characters
	from the input in the history editor have been read character by
	character.

	The result of this method was that the rest of a line could not be
	flushed in case of a syntax error in the command when in interactive
	mode. This frequently caused more than on error message when the rest
	of the command line was read, because it has not been flushed. In rare
	cases, it could even cause the shell to read more input lines until a
	^C or the right string end is typed.

	The new code now copies the whole line from the editor (in case it is
	shorter than the buffer in Bourne Shells struct fileblk) and thus is
	able to flush the rest of the line in case of errors.

-	Bourne Shell: Fixed a bug introduced in August 2016 that caused simple
	shell scripts (without "#!") to incorrectly set the tty process group
	after the first command in the script finished. This caused such
	scripts to be stopped if they try to read input from tty.

-	Bourne Shell: echo $(( 1 + 3 +  )) did print "8" instead of complaining
	about a missing token. We now check for the EOF token at a better
	location.

-	Bourne Shell: Added a conformance test for above syntax error.

-	Bourne Shell: func_unhash() which is called when deleting a function, 
	now correctly adds the SPC_BUILTIN bit for special builtins. This
	fixes a bug that could cause a special builtin to be treated as
	non-special after a function of the same name was deleted.

-	Bourne Shell: The interface for builtin commands no longer needs access
	to global variables from the shell. This helps to implement dynamically
	loadable builtins. Note that Apple's linker is too dumb to support 
	dynamic linking against variables.

-	Bourne Shell: New include file "bosh.h" is used to access the global
	shell data via a pointer to the new structure "bosh_t".

-	Bourne Shell: the "find" builtin now uses this new "struct bosh *"
	interface in order to be moved from a Bourne Shell internal builtin
	into a Bourne Shell dynamic lodable builtin.

-	libboshcmd: added a new shared library that allows to test the "find"
	command as a loadable Bourne Shell builtin. In order to compile and
	install a shared libboshcmd, do the following:

		first chdir to the top level schilytools directory

		make LINKMODE=dynamic install	# install other shared libs
		cd libboshcmd
		make LINKMODE=dynamic install	# install shared libboshcmd

-	Bourne Shell: The command "builtin" is now able to load a shared
	library using "builtin -f libname", where "libname" is the name of
	the shared library. Call after installing a shared libboshcmd:

		builtin -f libboshcmd.so.1

	to load the included test library.

-	Bourne Shell: The command "builtin" is now able to add a new builtin
	from a loaded shared library. Call:

		builtin sysfind

	after calling "builtin -f libboshcmd.so.1" to enable the "find"
	builtin from the named test library. To call the loadale version
	of the "find" builtin, call:

		sysfind ...

-	Bourne Shell: The command "builtin" is now able to remove a builtin
	that was previously enabled. Call:

		buildin -d sysfind

	to disable the test builtin command from the test library.




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