New features with AN-2018-08-24:

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


-	configure: Gentoo comes with a so called "ccache" environment that
	prevents configure from detecting a /path/to/gcc <-> /path/to/cpp
	relation and as a result, the localized linker map file was created
	empty because the CPP fallback "GCC -E filename" was used.

	Background: GCC is buggy since a long time and does not accept abitrary
	file names with gcc -E, while gcc's cpp does correctly. Since Gentoo
	virtually comes with an incomplete gcc installation, the result from
	"configure" was not useful.

	We now check whether "gcc -E - < filename" works and use a related
	command in case that this works while a gcc related "CPP" could not be
	found.

	This is implemented by a new Makefile variable $(CPPX_IN) that contains

		"- <"

	In case that "gcc -E - < filename" works.

	Thanks to Matin Vth for reporting.

-	configure: rules.cnf.in now has better comment inside.

-	COPYING: added pbosh and the license name for patch

-	Makefile system: The smake specific rules in RULES have been modified
	in order to make then behave closer to the related rules for gmake and
	SunPro Make. We no longer depend on the auto-OBJECTDIR property of
	smake but rather explicitely specify the object directory in the path
	names. 

-	Makefile system: the programs in the directory "inc" no longer depend on
	the time stamp of the object directory. This avoids to recompile several
	sources because e.g. incs/*/align.h has been remade as a result of this
	unneeded dependence.

-	Makefile system: the localized man pages are now created together with
	the main programs already. This avoids to delay this task to the time
	when "make install" is called where "make" may need to run with root
	privileges.

	If you do not like to create the localized man pages with a normal
	compilation, call:

		smake MAN=

-	Makefile system: a new target "localize" allows to tell the make file 
	system to make the localized versions of scripts.

-	Makefile system: The internal macros CFLAGS & CPPFLAGS have been renamed
	to C_FLAGS and CPP_FLAGS.

	This makes CFLAGS and CPPFLAGS free and results in a lower probability
	that people who set e.g. CFLAGS while compiling will end up with a
	completely failing Makefile system.

-	README.compile: Typo correction.

	Thanks to Leonard Knig for reporting.

-	libschily: Several functions have been missing from the linker map file
	because they are fallback implementations and because they have been
	forgotten. As a result, dynamic linking did not work anymore on Linux
	since library versioning has been made working and the fallback
	implementation for e.g. strlcat() from libschily was not visible
	anymore.

-	libfind: A set of new primiary operators has been added:

	-newerat
	-newerct
	-newermt

	These primaries allow to check whether a file is newer than a time
	stamp description in it's argument. The argument to this primary
	is a date and time description that is similar to ISO 8601.

	The time description may look like:

                  yyyy-mm-ddThh:mm:ss.nnnnnnnnn+-zzzz

	for a time with timezone or

                  yyyy-mm-ddThh:mm:ss.nnnnnnnnnZ

        for GMT based time or

                  yyyy-mm-ddThh:mm:ss.nnnnnnnnn

        for local time.

	The 'T' may be replaced by a space. The description may be shortened
	from the right side, in this case the missing fields are assumed to 
	have the maximum value. It can be shortened from the left side and in
	that case, the missing fields are substituted by the current date.

	The call

		find . -newermt 2017

	will find all files with a modification time with the start of 2018
	or newer.

	The call

		find . -mewermt T

	will check for files that have a modification time of the start of
	tomorrow or newer.

-	libstreamar: The man page now explains the "status" keyword.

-	libstreamar: return -2 with strar_send() to signal that a non-plain file
	was seen in non-meta data mode.

-	star: The star archive format man page has been updated to match the
	current state.

-	star: The archive format detection for the XUSTAR format now also
	checks for base 256 numbers in atime/ctime.

-	strar: when called as strar -c -nometa, a better message is
	now printed when a non-file is seen.

-	cdda2wav: the scripts cdda2ogg und cdda2mp3 are now automatically
	localized when calling "make all".

-	Bourne Shell: smake COPTX=-DNO_SIGPROF allows to run the shell
	with gprof.

-	Bourne Shell: the compile variant "osh" has been renamed to "obosh".

	The reason for doing this is that in UNIX version 7, the Thompson Shell
	has been available under the name "osh" and we like to avoid a
	confusion with this shell.

-	Bourne Shell: bumped the version to allow to find whether the
	shell supports find -newermt.

-	p: While in UTF-8 mode and displaying a file with ISO-8859-1
	chars, EOF no longer results in an endless loop in case that less
	than MB_CUR_MAX chars are in the buffer.

-	p: While in UTF-8 mode, displaying a file with ISO-8859-1 chars
	no longer displays "?"s for the 8-bit chars but the ISO-8859-1 
	chars.

-	ved: screen.c: Typo corrections in the comment.

-	ved: starting to convert ved to be able to support multi byte
	characters. This first set of changes is not dangerous as it just
	cleans ups the current unsigned char support.

-	ved: ved.h: a new type eint_t has been introduced that is the 
	single/multi byte abstraction from wint_t

-	ved: the ISO-8859-1 and Unicode character 0xFF is no longer displayed
	as ~^? but as ij ligature (sometimes called y diaresis).

	Note that VED was 8 bit clean in 1980 already, but until the end of
	the 1980s, the character 0xFF was used as another DEL character.

-	ved: the binding function tables now have 256 instead of just 128
	entries. This allows to implement the character 0xFF as plain character
	but also makes the 8-bit control characters beep (for an error) instead
	of replicating the function of the related 7-bit control charactes.



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