New features with AN-2015-12-30:

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

-	Schily.Copyright dates updated

-	cdrtools bumped to 3.02a04

-	include/schily/prototyp.h now defines ALERT to abstract from 
	the K&R C vs. ANSI C and the missing support for \a in K&R C

-	libxtermcap/tgetent.c smake/job.c hdump/hdump.c translit/translit.c
	Bourne Shell/echo.c now avoid a warning from using \a with K&R C.

-	libschily/getfp.c Try to disable the address sanitizer for getfp()
	to avoid unhelpful messages.
	Thanks to a hint from Heiko Eifeldt.

-	libschily/searchinpath.c Avoid a memory leak on platforms that do not
	support getexecname()
	Thanks to a hint from Heiko Eifeldt.

-	libmdigest & mdigest: sha3 entry function names changed to match
	other digest functions. 

-	libmdigest: the shared library mapfile now includes the sha3 functions

-	mkisofs: Avoid coredumps from dereferencing NULL pointers with some
	kind of rotten iso images when in multi session mode.
	Thanks for Heiko Eifeldt for reporting this problem based on a test
	using "The American fuzzy lop".

-	mkisofs: Avoid coredumps from dereferencing NULL pointers with some 
        kind of rotten iso images when in multi session mode and other incorrect
	length computations. This in special means multi.c
	Thanks for Heiko Eifeldt for reporting and for doing a code review.

-	mkisofs: Avoid to address wrong memory when scanning old ISO images.
	Thanks for Heiko Eifeldt for reporting and for doing a code review.

-	mkisofs/joliet.c: convert_to_unicode() no longer tries to access the
	input string past the null byte.
	Thanks to a hint from Heiko Eifeldt.

-	mkisofs/write.c: mkisofs -sort with multi extent files (files > 4 GB)
	no longer computes the size of the file twice while computing the
	start sectors for files.
	Thanks to a report from Arpad Biro <biro.arpad@gmail.com>

-	Bourne Shell: optinit() now defaults to no implicit getopt() warnings.

-	Bourne Shell: optinit() / struct optv now support an additional member
	"optflag" to allow to avoid "wrong option" error messages from optskip().

-	Bourne Shell: 6 flag bits have been relocated to flags2 to create space
	in flags.

-	Bourne Shell: Command substitution (`cmd`) now also honors the
	set -o fullexitcode settings for the exit code

-	Bourne Shell: The debug code that is enabled with COPTX=-DPARSE_DEBUG
	now also prints the parsed tree from `cmd`. This helps to understand
	the implementation.

-	osh (OpenSolaris Bourne Shell): $? is again 0 if exitcode % 256 == 0
	This gives bug compatibility even when waitid() is used in the shell
	instead of the historical waitpid().

-	Bourne Shell: The symbol "!" is now a reserved word to logically NOT
	the exit code of a following program. This was added for POSIX 
	compliance.

-	Bourne Shell: POSIX compliance: permit an optional "(" before patterns
	from case constructs

-	Bourne Shell: support for the reserved word "time" was added. This is
	an extension introduced by ksh88. Note that if "time -" is detected,
	the system's time(1) utility is called to be able to support the POSIX
	required: "time -p command".

-	Bourne Shell: timing now correctly collects timing for children _and_
	the time consumed by the shell itself. This makes the results more
	comparable to the results from the external time(1) command.

-	Bourne Shell: A bug in kill(1) option parsing introduced with 2015-12-16
	was fixed.

-	Bourne Shell: kill(1) is now POSIX compliant and supports "-s sig".

-	Bourne Shell: "killpg 123456789" now correctly complains with:
	"no such process group" instead of "no such process"

-	Bourne Shell Missing features for POSIX compliance:

	- Parameter substitution with these constructs:

		${#parameter}		-> strlen(parameter)
		${parameter%[word]}	-> Remove Smallest Suffix Pattern
		${parameter%%[word]}	-> Remove Largest Suffix Pattern
		${parameter#[word]}	-> Remove Smallest Prefix Pattern
		${parameter##[word]}	-> Remove Largest Prefix Pattern

	  With $* $@, all above expansions are unspecified

	- Tilde expansion after unquoted ':' in variable assignment

	- Command Substitution with $(cmd)

	- Arithmetic Substitution with $((expression))

	- cd with "-LP" as options

	- pwd with "-LP" as options

	- "command" builtin

	- Support for $'...' quoting (this is for the next POSIX version)

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

	-	We are not allowed 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.
