New features with AN-2016-03-11:

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

-	A new autoconf test was added to check whether struct dirent contains "d_type".
	This helps to speed up tree traversal on platforms that support d_type, by
	avoiding a stat() call when a directory entry is definitely not a diretcory.

-	libfind now includes support for a *BSD based struct dirent that includes
	the d_type member. This helps to avoid calling stat() in order to find 
	directories in simple cases. As a result, sfind now is aprox. 20% faster
	than GNU find on Linux when in situations that allow to avoid calling
	stat().

-	libshedit The workaround for clang on Solaris introduced with
	schilytools-2016-03-02 did not work on Mac OS X, Linux and HP-UX.
	So it was reverted. There will soon be a portable solution.

-	Cdrecord man page: some typo fixes.

-	Star now supports "star -copy -find /from ... /to"
	Thanks to a report from Stphane Chazelas. A minor piece of code
	was forgotten when the final -find integration did take place.

-	Star now supports "-C directory" before a -find option. This allows to
	call e.g.:
		star -copy -C /from/path -find . /to/path

	and thus permits to avoid long path prefixes to be copied into the
	/to/path hierarchy.

-	Star now calls setlocale() and thus correctly supports -find -name
	with multibyte locales.
	Thanks to a report from Stphane Chazelas.

-	Bourne Shell: A bug fix for a $(...) command substitution was added where
	the problem was caused by a global variable and a recursive call to the
	parser. The related shell script was seen on the POSIX bugtracking system:

		http://austingroupbugs.net/view.php?id=1015#c3088

-	Bourne Shell: a first step for implementing $((expr)) was made to the parser.
	The parser (lexer) now accepts $((expr)) but the macro expansion code for
	arithmetic expressions is still missing.

-	Bourne Shell: the man page now describes the output format of the "times"
	command.

-	Bourne Shell: PATH=something command with a builting command or with
	a vforked external command now result that the hash list is reset when
	the old PATH value is restored for the shell.

-	Bourne Shell: The "read" builtin now does field splitting the way it is 
	documented by POSIX: multiple field separators are not ignored but result
	in empty variables. Note that the POSIX method is 100% incompatible to the
	historic Bourne Shell method and that the historic Bourne Shell method
	is not really usable with field splitting in effect.


-	Bourne Shell Missing features for POSIX compliance:

	- Arithmetic Substitution with $((expression))

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


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