New features with AN-2018-04-17:

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

-	Schily Makefilesystem: Shared libraries now may have different numbers
	than "1" as part of the file name if the related Makefile includes
	definitions for SHL_MAJOR and SHL_MINOR. Plenty of RULES files have
	been updated to make this change effective.

	This is needed as we needed to introduce a binary incompatible libfind.
	See libfind below. All libs used to be hardwired to the filename
	"libxxx.so.1". Adding a SHL_MAJOR=2 to the shared library makefile
	(see libfind/shlfind.mk) ressults in a "libfind.so.2".

-	Schily Makefilesystem: Shared libraries for HP-UX are no longer only
	*.sl files but *.sl.$(SHL_MAJOR) with a symlink from *.sl to
	*.sl.$(SHL_MAJOR).

-	Schily Makefilesystem: Before the locale envorinment is set to "C",
	we now keep saved versions with the original content under OLD_LC_*

-	inc/ & libschily: getfp.c no longer contains the function ___fpoff()
	in order to prevent gcc from understanding what it does. This avoids
	warnings while compiling avoffset.c

-	libschily: The floating point 'E' / 'F' / 'G' format now result in an
	uppercase INF/NAN.

-	libfind: Arguments containing a '=' character did result in the related
	argument to become incremented inside the input arg vector. This caused
	problems with a free() loop on the arg vector.

	**********
	Warning: the fix causes a binary incompatibility as the struct finda_t
	changed it's size. As a result, we now install libfind.so.2 and changed
	the map file in order to require newer versions of the interface
	functions that are affected by the finda_t size change.
	**********

	Thanks to Heiko Eifeldt for reporting.

-	bsh: Avoid a coredump from expressions like "$2222222222222222222"
	that cause an integer overflow while converting the number.

	Thanks to Heiko Eifeldt for reporting.

-	Bourne Shell: Fixed a bug in the gmatch() shell pattern matcher
	that was related to backslash escape handling.

	The commands:

		:>b
		echo ["a-c"]

	did incorrectly result in the string "b" even though the string
	"[a-c]" is expected.

-	Bourne Shell: Added a new #ifdef to use with "make COPTX=-DCASE_XPRINT"
	that allows to see better debugging messages for case statements
	together with "set -x".

-	patch: Fix for CVE-2018-1000156
	An "ed" append command could fail if the address is wrong.
	In such a case, the editor stays in command mode and this allows
	to bypass the patch security filter for shell escapes.
	We now use "red" instead of "ed" to forbid shell escapes.

-	star: We now better check for the results of an ignored SIGTTIN

	Thanks to Robert Clausecker for reporting.

-	SunPro Make: Removed two useless instructions that caused warnings
	and that prevented a compilation with a recent C++-17 clang version.

	Thanks to Heiko Eifeldt for reporting.

-	SunPro Make: The man page now mentions the construct ":shell=" in
	addition to ":sh=", as ":shell=" behaves different and expands
	make macros in the shell output before assigning the value.

-	SunPro Make: SunPro Make converts all strings into wchar_t type
	strings for internal processing.

	This concept will only work if converting any kind of pathname
	into a wchar_t typed string works.

	***********
	Warning: Linux libc bug
	***********

	On Sun/Oracle Solaris (using the IBM based i18n code) and as well on
	FreeBSD, there is no problem with converting any pathname using
	mbstowcs() in case the program in in the "C" locale. on Linux, this
	unfortunately fails and this is in violation with the POSIX standard
	that says:

		In the POSIX locale an [EILSEQ] error cannot
                occur since all byte values are valid characters.

	We now implement a workaround for this bug related to directory
	scanning by "make". Note that this workaround may not be sufficient
	for all cases that are affected by the Linux bug. Please report in case
	you observe another similar failure.

-	SunPro Make: The man page now mentions that the warning:

		"The string `%s' is not valid in current locale"

	is related to a failing wide string conversion and that the "C" locale
	may be used to work around the problem.



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