New features with AN-2018-07-02:

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. If your smake is too old and aborts, ensure this
	*** by calling:

	cd ./psmake
	./MAKE-all
	cd ..
	psmake/smake
	psmake/smake install

	*** Due to the fact that schily-tools 2014-01-26 introduced
	*** optimizations for the Schily version of SunPro Make, you
	*** need at least the dmake version from 2018/01/11 with support
	*** for the "export" directive to compile with this makefile system.


	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

-	psmake: a link to include/schily/times.h is now created, since that
	file is needed to compile psmake with DJGPP.

-	bsh/Bourne Shell/libshedit: Directory tree expand() now works
	with a new function "lopendir()" that opens directories of arbitrary
	path len on modern OS platforms. This is important for either
	a long echo */*/*/*.... or with command line TAB expansion.

-	bsh/Bourne Shell/libshedit: A new function "lstatat()" can stat files
	of arbitrary path len on modern OS platforms.

-	Bourne Shell: the new lstatat() function requires to include "fcntl.h"
	and this comes with an "open()" prototype. We needed to change a local
	variable "open" to "openbr" to avoid a GCC warning.

-	bsh/Bourne Shell: a new function lchdir() allows to cd(1) into long
	path names.

-	bsh: the builtin pwd(1) now supplies a buffer with 8192 bytes of space
	to support longer directory path names.

-	Bourne Shell: the directory management code in pwd.c has been rewritten
	to be able to deal with unlmied path length. The new code is approx. 400
	bytes larger than the old code but a BSS variable with 1024 bytes could
	be reduced to 2 bytes, so the overall size did shrink by 600 bytes for
	normal usage.

-	Bourne Shell: A work around for a Solaris kernel bug related to the
	syscall getcwd() has been added. Solaris keeps returning ERANGE after
	a path name longer than PATH_MAX has been returned and works again
	only after a chdir() syscall was successfull.

-	bsh/Bourne Shell: The test(1) builtin now uses a new function lstatat()
	that permits access to files without path name length limitation.

-	Bourne Shell: A new #ifdef -DO_ALWAYS_POSIX_SH allows to make
	the shell to always start up in 100% POSIX mode.

-	Bourne Shell: a new Bourne Shell variant has been created: "pbosh".
	This is a shell that by default is in POSIX mode and that is intended
	to have all POSIX extensions deactivated.

	This shell is intended to be used to check shell scripts for
	portability.

	If you like to create a shell with similar features as seen in "dash",
	you may do the following:

		cd pbosh
		smake clean
		smake 'COPTX=-DNO_INTERACTIVE -DDO_SYSLOCAL'

	This still creates a shell with multi-byte support as required
	by POSIX, but otherwise includes similar featues.

-	Bourne Shell: pbosh has a second Makefile called Mdashalike that
	disables the interactive history editor and persistent aliases but
	enabled the "local" builtin. To use this do the following:

		cd pbosh
		smake clean
		smake -f Mdashalike

	Note that POSIX requires multi-byte support except when on small
	embedded devices. Since "bosh" supports multi-byte characters and still
	is faster than "dash", it is a nice replacepent for "dash". If "bosh"
	could disable multi-byte support to become as simple as "dash", it
	would be more than 30% faster than "dash" and smaller than "dash" and
	also smaller than "dash".

-	Bourne Shell: The "fc" is now automatically deactivated in case that
	the shell has been compiled without support for the history editor.
	This helps to keep the size of the shell low in such a case.

-	Bourne Shell: The variable ${.sh.version} now includes a word that
	helps to find whether this is shell is "osh", "bosh" or "pbosh".
	This helps to write $HOME/.shrc in a way that is accepted by both the
	exnahnced "bosh" and the POSIX-only "pbosh".

-	Bourne Shell: The man page now explains that non blank characters
	after "#" inside shell scripts are only a problem after the shell
	command "set -o hashcmds" has been issued.

-	bsh/Bourne Shell: the variable "deftab" has been moved from "hashcmd.c"
	to "abbrev.c" to permit "pbosh" to be compiled without hash commands
	enabled.

-	Bourne Shell: hashserv.c has a better #ifdef statement to permit to
	compile the Bourne Shell without support for the "builtin" builtin
	command.

-	Bourne Shell: name.c: fixed an #ifdef around the REPLY variable to
	support compileing "pbosh".

-	Bourne Shell: args.c: new #ifdef structure to permit to disable
	persistent aliases in "~/.globals" and ".locals". This is needed
	for "pbosh".

-	Bourne Shell: The man page now mentions "pbosh".





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