New features of SCCS-5.09:

With the upcoming SCCS-6.0 we introduce a new SCCS history file format that
intentionally causes historic SCCS implementations to abort (to prevent file
corruption) but that can be easily converted back into a SCCS-5.x compliant 
history file using a conversion program. This conversion does not cause a loss
of information as the new information is encoded as special comment that is 
accepted by all other SCCS implementations except for the current version of
GNU "CSSC". 

Since SCCS-5.04, the first (partial) support for the upcoming SCCS v6 history
format has been introduced.

See the file TODO_V6 for more information.

Please join the discussion mainling list for the development of enhancements on:

	http://lists.sourceforge.net/lists/listinfo/sccs-devel
	sccs-devel@lists.sourceforge.de

The next task for SCCS is to introduce a changeset file that brackets a group 
of single file changes into a change set related to a commit.

WARNING: the last separate sccs release has been 5.08 and this release was
published in 2015. Since then, frequent SCCS updates have been available inside
the "schilytools" tar ball.
 
In case the "schily"-libraries are going to be installed as shared libraries,
is highly recommended to install SCCS from the "schilytools" bundle instead of
using this SCCS only archive. This is the only way to have the commonly used
code always at a recent development state.


New features included with SCCS-5.09a01:

-	README.compile: added documentation on how to compile with clang

-	README.compile: completely reworked

-	README.SCCS has been enhanced and now documents compile time and
	installation options.

-	README.SCCS: Added hints on how to recompile for a new install path

-	"cstyle", "installman" and other new targets have been added to the makefile
	system

-	New make rules for the "Bitrig" BSD distro

-	New make rules for the "Minix"

-	New make rules to permit 32 and 64 bit compilations on AIX

-	GCC makefile rules now all use the universal rule for 32 and 64 bit compilation

-	Support for WIN-NT-6.x added (Win-DOS Server 2008 ... Win-DOS 10)

-	Rules for the automated testing "make tests" added to the makefile system

-	Rules for files names from versioned libraries have been added

-	Rules for versioned libraries on Linux and NetBSD have been added

-	Rules for OS400 have been added

-	Rules for the enhanced SunPro Make have been added

-	autoconf: Various new configure tests

-	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/avoffset.c: workaround against a clang bug that causes core cumps

-	sha3 support added to libmdigest

-	include/schily/wait.h reworked

-	include/schily/stdint.h & include/schily/utypes.h: added a workarounf for a
	Solaris _CHAR_IS_SIGNED / _CHAR_IS_UNSIGNED Bug

-	include/schily/stdio.h enhanced to include speed up code got getc() with
	Solaris 64 bit compilations.

-	New autoconf test for haiku posix/malloc.h

-	New autoconf test for arpa/aixrcmds.h

-	New autoconf test for tcgetsid()

-	New autoconf test whether waitpid() supports NOWAIT

-	New autoconf test whether we have d_type in struct dirent

-	inc/align_test.c workaround for wrong "unused" GCC warning

-	inc/getfp.c workaround for a address sanitizer bug

-	include/schily: new files: getopt.h getopt.mk strar.h strar.mk

-	include/schily/checkerr.h: Added E_ICONV

-	include/schily/fcntl.h: Linux uses O_PATH instead of the POSIX O_SEARCH

-	include/schily/find.h: various interface enhancements

-	include/schily/getargs.h: various interface enhancements

-	include/schily/maxpath.h: fixed some typos

-	include/schily/mconfig.h: Added ASAN support 

-	include/schily/stdint.h: Use a new macro for Two's complement machines
	to avoid undefined C behavior

-	include/schily/walk.h: various interface enhancements

-	include/schily/values.h: new include file.

-	include/schily/dbgmalloc.h: added more prototypes for libdbgmalloc.

-	libschily/astoul.c added

-	libschily/jsdprintf.c added

-	libschily/movecbytes.c added

-	libschily/cmpbytes.3 added

-	libschily/cmpbytes.mk3 added

-	libschily/fgtcomerr.c added

-	libschily/format.h added

-	libschily/fpoff.c added

-	libschily/fstatat64.c added

-	libschily/gtcomerr.c added

-	libschily/gterror.c added

-	libschily/gtprintf.c added

-	libschily/matchmb.c added

-	libschily/matchmbl.c added

-	libschily/openat64.c added

-	libschily/ovstrcpy.c added

-	libschily/putenv.c added

-	libschily/unsetenv.c added

-	libschily/waitid.c added

-	libschily/wctype.c added

-	libschily/astoi.c and libschily/astoll.c now check for overflows
	and report ERANGE

-	libschily/*printf.c now support a locale dependent decimal separator

-	libschily/format.c (the printf worker code) has been enhanced to
	be faster with STDIO on most platforms.

-	libschily: getargs, getallargs and getfiles man pages have been reworked

-	libschily/getargs.c: combined single char boolean flags now work
	with callback type formats.

-	libschily/searchinpath.c added a new flag SIP_NO_STRIPBIN

-	libschily::breakline() fixed a bug that caused the return code to be
	larger than the number of array elements in some cases.

-	libschily::checkerr() added new category "ICONV"

-	libschily::comerr() A new environemtn variable "COMERR_EXCODE" disables
	exit code mapping of codes that cannot be returned via the outdated
	waitpid() call.

-	libschily::opendir() added a missing nul byte for the Win32 opendir()
	emulation

-	libschily::format() the schily printf implementation now prints
	floating point numbers in a POSIX compliant way.

-	libschily::fnmatch() a new algorithm avoids recursion and is much
	faster.
 
-	libschily::fnmatch() Support for [:alpha:] and similar has been added.

-	libschily::patmatch() Support for [:alpha:] and similar has been added.

-	libschily: resolvenpath() did not work as expected when some path names
	do not exist. A stat() call that should check whether we already
	reached the "/" directory caused a return (-1) even with
	(flags & RSPF_EXIST) == 0

-	libschily: Fixed the behavior of the umask/chmod perm parser for the
	case where "who" was not specified and the operator is '='. POSIX
	requires here to first clear all bits in the old value before adding
	new bits. The old implementation did clear only the bits retrieved
	from umask(2).

-	libschily: The umask/chmod perm parser now returns -1 for the mode
	string "u", since the operator is missing. Before, it just printed an
	error message but did not return -1.

-	libschily: astoul() and astoull() now by default permit to prefix
	the unsigned number by a "-". This is required by POSIX for strtoul()
	and strtoull() and our implementation needs to be compatible to POSIX
	to make the printf(1) implementation in the Bourne Shell POSIX
	compatible on older platforms.

	Thanks to Robert Elz for reporting
 
-	libschily: emulations for *at() have been fixed.

-	libschily/stdio/fgetstr.c now includes a speedup for AT&T stdio using
	the new movecbytes()

-	libschily/stdio/getdelim.c now includes a speedup for AT&T stdio using
	the new movecbytes()

-	libschily/ man pages reworked.

-	libschily::format.c The schily printf is now able to do %.*s with
	a significance > 8192 without overwriting the internal buffer.

	The new code is implemented via strnlen() and no longer copies
	the string - thus it should be even faster.

-	libschily::fnmatch.c: added a forgotten fix (from last January) for 
	a problem with missing brackets with if/then/else related to
	[:upper:] and [:lower:]

-	libschily::fnmatch.c:  added a forgotten _partial_ enhancement from
	last January for [= ... =] and [. ... .] support.

	Warning: this is not yet fully functional since the POSIX standard
	does not include an interface to get this functionality from the
	i18n part of libc.

-	libschily::match.c: Added a missing /* FALLTHROUGH */ comment.

	Thanks to Pavel Raiskup for poiting to a related Coverity message.

-	libschily::fstream.c: Added a /* NOTREACHED */ comment to make coverity
	quiet.

	Thanks to Pavel Raiskup for poiting to a related Coverity message.

-	libfind: the code now supports the *BSD enhancement "d_ino" in struct dirent.
	This speeds up stat()less jobs.

-	libfind: the code now supports the *BSD enhancement "d_type" in struct dirent.
	This speeds up stat()less jobs.

-	libfind: localization in libfind no longer affects the calling program

-	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 Eißfeldt for reporting.

-	libfind: the -newer and -newerXY primaries now compare nanoseconds
	as well.

-	libfind: removed blank line in the linker map file

-	libfind: the id cache (uid/gid <->name mapping) now helps star to find
	whether a user name or group name is not completely 7 bit ASCII and
	thus needs a locale conversion in star POSIX.1-2001 extended headers.

-	libfind: Some open() calls now use O_DIRECTORY

-	libfind: walk.c now uses fchdir() on platforms that support dirfd(DIR*)
	and by this change, libfind is now aprox. 30% faster than before and
	makes libfind faster than other find implementations.

-	libfind: walk.c: "!isdot" has been renamed to "need_cd" for better
	readability of the code.

-	libfind: WALK_STRIPLDOT now strips even multiple occurences of "./" 
	and if there is no text after that, it replaces the empty string by ".".

-	libfind: new functions wstat() and wlstat() have been added (both are
	based on fstatat()).

-	libfind: treewalk() now works even without fa.walkflags |= WALK_CHDIR

-	libfind: The code compiles again on platforms without dirfd(), like
	e.g. DOS. On such a platform, there is currently however no way to
	use libfind without WALK_CHDIR.

-	libfind: Added a better ENAMETOOLONG discovery for the function
	dopendir() that is able to open a directory with a very long name.

-	libfind: In case of very long path names, the intermediate directories
	are now opened with O_SEARCH instead of O_RDONLY.

-	libfind/bsh/Bourne Shell: The "long" stat() implementation now works
	with absolute path names as well.

-	libfind: added support for a new feature: -call allows to do calls into
	the shell that started "find" as a builtin program. This is approx.
	40x faster than using -exec.

-	libfind: A new function walkcwd() allows to chdir() back from the start
	directory (that has been reached by calling walkhome()) to the
	directory where the treewalker has been before calling walkhome().

-	libfind: new source ptime.c

-	libfind: new source version.h

-	libfind: the major file name version number was bumped from 2 to 3
	since the new code causes binary incompatibility with the previous
	libfind.

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

-	libfind: The "-perm +mode" feature before has been recognised if the
	+ sign appeared before any character from  the set "ugoa", but since
	the string "+u" represents a POSIXly valid "permcopy" operation, the
	new version of libfind only accepts this specific feature if the
	mode string starts with a "a". Since (with find) the start value of
	the perm parser is 0, any valid mode string may be prefixed by "a+,"
	without changing the resulting value, the feature is usable with
	"-perm +a+,mode".

-	libfind: The phrase "-perm /mode" has been added as an alias for
	"-perm +mode", but since "/" is not permitted in a POSIX mode string,
	this methos does not require to prefix the mode string with "a+," to
	work. "-perm /mode" also helps to give comptibility with GNU find.

-	libfind: "-chmod mode" no longer causes a wrong treatment in some
	cases as the special treatment for "-perm +mode" no longer applies
	to -chmod too.

-	libfind: new function find_strvers() returns the version string.

-	libfind: version bumped to 1.7

-	libfind: treewalk() now supports a new flag WALK_MOUNTPLUS.

	This new flag reports mount points but does not descend into them.

	The existing flag WALK_MOUNT does not report mount points and does
	not descend into them.

	The background for this change is:

	1)	"star -cM ..." and "star -c -find . -xdev ..." differ
		in their behavior and there was no way to get the
		star -M behavior from libfind.

	2)	The POSIX standard for "find -xdev ..." is in conflict
		with the documented behavior for "find -xdev ..." on
		UNIX and with the documented and POSIX standard behavior
		of nftw() with the FTW_MOUNT flag (The UNIX find(1) 
		implementation is based on nftw()).

	3)	There is a general need to have the other behavior where
		mount points are reported.

-	libfind: find(1) gets a new primary operator "-mount+" as a
	supplement to the historic UNIX "-mount" behavior that is based
	on WALK_MOUNT. -mount+ is based on WALK_MOUNTPLUS

-	libfind: Added a date to the -version output and added version.h

-	libfind/star/mkisofs/bsh/Bourne Shell: "find -xdev" is no longer
	UNIX compatible but rather POSIX compatible.

	*** Incompatible change ***
	*** POSIX wording from 1992 is in conflict with UNIX implementation ***

	Background: POSIX in 1992 introduced a wording for -xdev that was in
	conflict with existing implementations and required a behavior that
	is impossible to implement with nftw(3).

	Today, half of the implementations follow the UNIX rules and half of
	the implementations follow the POSIX text.

	To solve the conflict, POSIX decided to add the old UNIX "find -mount"
	(that was intended as an alias to "find -xdev") and to be implemented
	with the old UNIX behavior and requires "find -xdev" to follow the
	POSIX text from 1992. At the same time, POSIX introduced a new nftw(3)
	flag FTW_XDEV as a complement to FTW_MOUNT with the behavior that
	matches the POSIX requirements for "find -xdev".

	As a result, libfind now makes -xdev an alias to -mount+ and keeps
	the -mount primary with the old behavior. The difference is:

	-mount	does not lists mount points at all and does not descend
		into them.

	-xdev	lists directories that are mount points but does not
		descend into these directories.

-	libfind: walkcwd() no longer tries to call dirfd() unless it exists or
	DIR->dd_fd exists.

	This should make it compile with DJGPP again.

-	libfind: the time parser now supports the new time spec "now" for
	the current time.

-	libfind: The new primaries -chatime, -chctime, -chmtime allow to
	set the time stamps in struct stat to arbitrary values.

-	libfind: A new primaries -chfile allows to set the modified struct
	stat values from -chown, -chgrp, -chmod, -chatime, -chctime, -chmtime
	to the file.

	On platforms where chmod() is not possible on a symbolic link, symbolic
	links are skipped with that change.

	On platforms where it is not possible to set times on symbolic links,
	symbolic linkes are skipped with that change.

-	libfind: Added support for being able to use simple shell scripts
	(scripts that do not start with a #! line) as commands for the
	-exec and -exec + primaries.

	This requires a reordering of the arg vector and to insert a "sh"
	as new argv[0] before the original arguments.

-	libfind: added a new timestamp to the libfind version.

-	libfind::find.c: Added a missing /* FALLTHROUGH */ comment.

	Thanks to Pavel Raiskup for poiting to a related Coverity message.

-	libgetopt: -long-option is now supported in addition to --gnu-long-option.

-	libgetopt: getopt(ac, av, "") no longer dumps core with --help

-	libgetopt: New files getopt.3c, shlgetopt.mk and libgetopt-mapvers

-	libgetopt/Bourne Shell: added an #ifndef __CYGWIN__ in order to avoid
	overwriting non-standard definitions by standard definitions on Cygwin
	for the global getopt() variables.

	Thanks to Heiko Eißfeldt for proposing a fix.

-	SCCS, patch: "make tests" now works from the top level directory
	and from sub directories.

-	patch: The random tests from the conformance tests now also check ed(1)
	type patches.

-	patch: patch/tests/basic/offset.sh new conformance test uses variable
	offsets of changed text.

-	patch: Bugfix for CVE-2015-1416 avoid system() with meta characters

-	patch: Workaround for diff -e single '.' lines added.

-	patch: patch -Wv / -Wversion now prints current compatibility mode name.

-	patch: New option -T for touch files to the time stamp from the patch

-	patch: New option -Z Assume GMT for diff timestamps that are not from
	a "diff -u" and thus miss the timezone.

-	patch: If called under the name "spatch", the implemented interface
	now is POSIX + extensions.

-	SCCS: the command prs(1) again compiles with smake COPTX=-DGMT_TIME
	Note that GMT_TIME is a hack from Sun that is no longer needed with
	the SCCSv6 history format as the SCCSv6 history format archives the
	local time + GMT offset instead of an untagged local time.
	Thanks to a hint from: Bruce Lilly <bruce.lilly@gmail.com>

-	SCCS: the library function dodelt() no longer warns:

		"Time stamp later than current clock time (co10)\n"

	when SCCS was compiled with smake COPTX=-DGMT_TIME

-	SCCS: get(1) now includes specific code for smake COPTX=-DGMT_TIME 
	but this is probably the last change related to this deprecated
	compile time option.

-	SCCS: add sccs/README.SCCS and include information about compile time
	options.

-	SCCS: some man pages now mention the TZ environemt variable.

-	SCCS: Mention in the sccs-admin man page and online-help that SCCSv6
	supports anything but nul characters in text files.

-	SCCS: diff: fixed a bug introduced in August 2015 while introducing
	a workaround for a HP-UX strftime() bug. The bug caused diff
	with "-c" to print a rotten time string. The workaround now only hits
	when using "diff -u" and thus includes the "%z" format from HP-UX 
	that needs to be fixed.

-	SCCS: sccs/lib/comobj/src/dodelt.c Fixed a bug with time stamp handling
	that has been introduced Oct 14 2015 while trying to add better support 
	for a GMT variant of SCCS. The bug could cause messages like:

		"Time stamp later than current clock time"

-	SCCS: sccs/lib/comobj/src/putmeta.c was fixed to avoid emitting empty
	"^AG r" entries in SCCSv4 format. The entry is a SCCSv6 meta data entry.
	The bug has been introduced Feb 25 2015 while making the code better
	structured.

-	SCCS: sccs/cmd/src/get.c was fixed for the GMT variant of SCCS.

-	SCCS: When the special test binaries for /tmp/SCCSTEST have been built,
	a new set of normal binaries is built.

-	SCCS Added a test for the correctness of the history format created
	by sccs admin.

-	SCCS: The testsuite did use "tail +2" but some "tail" implementations
	do not support "tail +2" while UNIX tail does not support the POSIX
	command line "tail -n +2". We now test what works and use a command
	line that fits the actual implementaion.

-	SCCS: The testsuite did use "touch 0101000090 $g", but some "touch"
	implementations (such as gtouch on Linux) do not support that. We now
	use "touch -t 199001010000 $g" if needed.

-	SCCS man pages: the order of CDDL header / Copyright header has been
	aligned with the rest of the OpenSolaris man pages.

-	SCCS sccs: Permit new diff options: -q -a -B -N -p

-	README.SCCS: The expansion of SCCS keywords has been rediced to the first
	5 lines to prevent to expand keywords that should be readable unexpanded.

-	SCCS/bdiff: the bdiff program now supports embedded NUL bytes and uses
	getdelim() instead of fgets(). It calls "diff -a" with the segments.

-	SCCS get: Compile support for BUG_1205145 and GMT_TIME added

-	SCCS prs: Time zones are now handled correctly.

-	SCCS sccs: Permit new diff options: -q -a -B -N -p 

-	SCCS diff: Implement new diff options: -q -a -B -N -p, speed up things
	by replacing vfork()/exec() by recursive function calls. diff is now
	up to 16x faster than Solaris diff.

-	SCCS diffh: The program now supports lines of arbitrary length.

-	SCCS libcomobj::dodelt.c: fixed a Timezone bug with the compile option GMT_TIME

-	SCCS libcomobj::putmeta.c: The unified speudo random number from SCCSv6
	is now printed correctly even when on a platform without "long long" support.

-	SCCS test suite: After compiling special binaries for /tmp/SCCSTEST/, we
	now again build default binaries.

-	SCCS test suite: If the classical UNIX "touch" command line did not work, try out
	the POSIX command line.

-	SCCS test suite: If the classical UNIX "tail" command line did not work, try out
	the POSIX command line.

-	SCCS test suite: Added a new random test that verifies that "bdiff" and sccs delta
	correctly interact.

-	SCCS test suite: Added a new format test that verifies the correctness of the basic
	SCCSv4 and SCCSv6 history file format.

-	SCCS the man pages have been updated to match the current state

-	SCCS the NSE -f and -q flags have been documented and made working. This permits
	it to use the NSE -f (force) mode where deltas can be made from files that have
	not been checked out for editing.

-	SCCS::diff: diff -u dir1 dir2  no longer dumps core while trying to
	print the filenames. This bug was introduced while converting diff
	to avoid fork()/exec() in October 2016 and to use recursive function
	calls instead.

-	SCCS::diff: diff -u dir1 dir2  now uses the right stat() time stamps
	instead of using the lstat() time stamps for files in the context
	diff header. This bug was also introduced in October 2016.

-	SCCS::diff: diff -u dir1 dir2  now writes nanoseconds for the timestamp
	of the first file. This was not done before because of a typo in an
	#ifdef statement that was introduced in June 2016 while adding support
	to print POSIX compliant timestamps for HP-UX and AIX.

-	SCCS: diff did not always exit(2) in case of errors since the code
	was restructured in late 2016.

-	SCCS: new help page: "sccs help admin_flags" prints a summary od the
	flags supported by the admin command.

-	SCCS: "sccs get SCCS" no longer suppresses keyword expansion in case
	that the 's' flag is set. Old versions did not reset the line count
	for multiple files, the new version uses the "line number in g-file"
	variable in struct packet instead and thus something that gets reset
	automatically.

-	SCCS: the man page sccs-delta.1 has been enhanced to mention that
	the force delta option (-f) is usually used together with -q and -n.

-	SCCS: the man page sccsfile.4 has been enhanced with respect to
	the weave format.

-	SCCS: added a test to verify that the admin -fs# flag works correctly
	even  when retrieving more than one file at once.

-	SCCS: "sccs help" now includes a short help for
	"add", "commit", "remove", "rename", "status"

	The commands: "commit", "remove", "rename", "status" still do not work.

-	SCCS: get no longer dumps core when it is told to retrieve more than
	one annotated file (using -A) at a time. The bug was caused by calling
	ffreeall() that freed up the user name cache as well, but did not NULL
	out the pointer to the name hash table at the same time.

-	SCCS: sccs no longer dumps core when calling "sccs -R unedit" and more
	than a single file is affected. The reason was a misplaced bracket while
	computing the number of bytes needed for the path name of the current
	file.

-	SCCS:sccs now forwards the -o option to "get" as well, while
	implementing the macros: "delget", "deledit" and "create"

-	SCCS:admin, the -o option now also sets the time stamps for the
	s. file and the g-file

-	SCCS:delta, the -o option now also sets the time stamps for the
	s. file and the g-file

-	SCCS:get, the -o option now also sets the time stamps for the
	g-file in a way that uses the nanoseconds to make sure that
	SunPro make and gmake do not try to run "sccs get" on the files.

-	SCCS:sccs man page now mentions that "sccs create" not only 
	permits the -o option but passes other options to "admin".

-	SCCS:sccs help create now mentions that "sccs create" not only 
	permits the -o option but passes other options to "admin".

-	SCCS: fixed a missing semicolon in libcassi/fatal.c that was
	active when not compiling inside the Schily Makefilesystem.

-	SCCS: removed the "help2" program and put the content from
	help2.c into the program help.c

-	SCCS: the delta program now uses the same search strategy for "bdiff"
	as already used for "diff".

-	SCCS: several source files removed a superfluous semicolon after
	a "#pragma ident" statement.

-	SCCS: sccs/README.SCCS no longer mentions "help2" that has been
	removed.

-	SCCS: "sccs -R log SCCS" now gives useful output.

-	SCCS: "sccs log ...." now silently skips files that do not start
	with "^Ah"

-	OCSW/CSWsccs: removed the help2 binary

-	SCCS: "bdiff" no longer tries to install a signel handler for
	SIGCHLD and then exits after the called "diff" program exited.
	This was caused by an unusual numbering for the signals on Haiku.

	Thanks to Heiko Eißfeldt for reporting

-	SCCS: "delta" now prints the really used path for the diff program
	in some failure cases.

	Thanks to Heiko Eißfeldt for reporting

-	patch: The conformance tests "cmptest" and "gentest" now also check
	for "/bin/patch" while searching for a reference patch binary.
	This is needed s Haiku does not have a /usr/bin/ directory.

	Thanks to Heiko Eißfeldt for reporting

-	patch: The conformance tests "cmptest" and "gentest" now also check
	whether the system supports an "ed" binary and skips "diff -e" tests
	in case "ed" is missing. This is needed on Haiku that does not have
	an "ed" binary.

	Thanks to Heiko Eißfeldt for reporting

-	SCCS: sccs admin/delta, ... could write nanoseconds to the timestamp
	into the history file even when in SCCSv4 mode and the time stamp is
	from before 1968 or past 2037. This is no longer possible as the
	nanosecods are now cleared in that case.

-	SCCS: val now checks whether a SCCSv4 history file contains SCCSv6
	elements in the delta line. The checks in the schilytools development
	area did not discover the problem, so it seems that our bug was only
	triggered on Haiku due to a time_t implementation bug in the Haiku libc.

-	SCCS: sccs/man/Makefile if now a normal serial Makefile using "rules.mks"
	in order to make all localizations and the directory OBJ/<arch-dir>/man
	which "make all" already. This avoids that OBJ/<arch-dir>/man is created
	late by root when running "make install" as root after a "make all" call
	from a normal user.

	Thanks to a report from Heiko Eißfeldt

-	SCCS: libcassi: Avoided a malloc() call that created an unneeded
	and unfreed space.

	Thanks to Heiko Eißfeldt for reporting

-	SCCS: libcomobj: make date_ab() safe against date strings
	then end in '.' but do not include nanoseconds.

	Thanks to Heiko Eißfeldt for reporting

-	SCCS: libmpw: added a missing va_end() in cat().

	Thanks to Heiko Eißfeldt for reporting

-	SCCS: Changed $(MAKE) -> "$(MAKE)"

	Thanks to Heiko Eißfeldt for reporting

-	patch: the unit test now searches for "cpp" and may fall back to our
	self compiled cpp. This is needed as Minix does not come with "cpp".

	Thanks to Heiko Eißfeldt for reporting

-	SCCS testsuite: The file sccs/tests/Makefile now contains more rules
	to avoid to run the tests in an unexpected order with a parallel make
	program. We partially had the test staring before the binaries were 
	fully installed in /tmp/SCCSTESTS and SCCSv4 and SCCSv6 tests running
	contemporarily in the same directory.

-	SCCS: sccs now supports to use the options -f and -q for delget and
	deledit

-	SCCS: the test for "sccs help get_kywds" has been enhanced to
	mention that the enhanced (lower case) get keywords are only
	available if enabled via "admin -fx" or "admin -fy".

-	SCCS: man pages: Fixed typos

	Thanks to Leah Neukirchen for reporting.

-	SCCS: val.c: Fixed typos

	Thanks to Leah Neukirchen for reporting.

-	SCCS: sccslog.c: removed the debug print "Einträge"

	Thanks to Leah Neukirchen for reporting.

-	SCCS log command: Avoid a coredump with "sccs -R log" from a
	directory that does not include a SCCS directory.

-	SCCS: The SCCS help file installation now makes use of the new
	makefile feature $(PREINSDIR).
	This allows to install SCCS in /usr/bin.

-	SCCS: The SCCS binaries installation now makes use of the new
	makefile feature $(PREINSDIR).
	This allows to install SCCS in /usr/bin.

-	SCCS: The help program now also auto expands help messages for own
	malfunctions.

-	SCCS: The sccs-help.1 man page now explains the algorithm, the
	way localization works and how the file /usr/ccs/lib/help/helploc
	works.

-	SCCS: The sccs-get.1 man page now includes the fallback PATH for the
	&sccs.include.filename% keyword directive.

-	SCCS: all commands: SCCS_HELP_PRE and SCCS_BIN_PRE are now used for
	external files and for searching the locale definition files.

-	SCCS: README.SCCS now mentions the new make command line macro options
	SCCS_HELP_PRE and SCCS_BIN_PRE. See $(PREINSDIR) above.

-	SCCS: unit tests now honor SCCS_BIN_PRE.

-	SCCS: The logname() function in libcomobj now substitutes " " by
	"_". This is needed as Cygwin permits to have spaces in the user name
	but this would be in conflict with our history file format that uses
	" " as a field separator.

	Thanks to Heiko Eißfeldt for reporting

-	SCCS: The username arguments for "admin" and "sccs" are now modified
	in case that they contain space characters (" "). This is needed to
	match the modifications for the history file format - see above.

-	SCCS: The sccsfile(4) man page has been enhanced to mention the fact
	that spaces in usernames are impossible in the history file.

-	SCCS: The conformance tests have been rewritten to deal with user names
	and working directories that include spaces.

-	SCCS: Some sources have been converted to better follow the Cstyle
	conventions.

-	SCCS: bdiff now includes an #undef INS_BASE for the K&R compiler
	to make it quiet.

-	SCCS: The makefiles for sccsdiff and rcssccs now include $(CPP_FLAGS)
	as needed since the definitions have been changed with
	schilytools-2018-08-24

-	SCCS: sccs.c Some Cstyle changes.

-	SCCS: sccs.c fixed a malloc() bug related to recursive (-R) use that
	could cause a core dump with command lines like this:

		sccs -R diffs path/to/file1 path/to/file2 path/to/file3

-	SCCS: sccs.c: the command "sccs add" is now able to convert all kind of
	legal path names into path names that are relative to the change set 
	home directory and it is able to recognise whether a path is outside
	the change set home directry tree.

-	SCCS: libcomobj: added new source files:

		homesubs.c	includes fchdir(2) management functions
		fdirsubs.c	includes open(2)/close(2) dir management
				functions
		intree.c	Check and manage whether a path is inside the
				project tree.
		sclose.c	To close the FILE * from a struct packet and
				mark it closed

-	SCCS: libcomobj: getline.c now uses getdelim() to read lines. This
	avoids the need to call strlen() for the line length and it allows
	to have embedded nul characters in a line.

	This is a preparation for a future sccs version that will be able
	to avoid "uuencode" for so called "binary" files. In former times,
	this was impossible but since diff(1) includes a -a ooption to
	treat binary files as text files, any type of file could be treated
	as a text file with line by line checks for changes.

-	SCCS: libcomobj: getline.c now implements a new function grewind()

-	SCCS: helpfiles: added new error codes for the enhanced code
	for "sccs add".

-	SCCS: the "ut" helpfile did still contain explanation text from 1977
	that mentions a maximum file size of 1MB. The new text mentions 
	platform specific and process specific limitations and leaves the
	value open.

-	SCCS: All programs now accept -version in addition to -V and --version

-	SCCS: The man pages now mention -version and --version

-	SCCS: The get(1) man page now correctly mentions the differences
	between the UNIX get(1) program and the POSIX get(1) documentation.

-	SCCS: delta.c: The comment has been enhanced in order to help future
	enhancements.

-	SCCS: delta.c: Added a new option -X to allow to add many more new
	options.

-	SCCS: delta.c: Added a new option -Xprepend to allow an efficient way
	of adding the content of a file to the beginning of the g-content of
	an existing SCCS history file.

	This method is needed in order to manage the SCCS changeset file, see
	"man sccschangeset" in a performant way after a huge project like the
	Linux kernel did introduce commits over many dozens of years.

	Since we do not have the changeset file as g-file in the filesystem and
	since we do not need to call diff(1), creating the needed delta for
	the changeset file to handle a new commit is 2.5x faster with this new 
	method than it would be using the standard method.

-	SCCS man pages now document the new option -X for delta(1)

-	SCCS "sccs help delta" now documents the new option -X for delta(1)

-	SCCS "sccs help delta_Xopts" now lists the new delta -X options

-	SCCS: cdc.c: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: comb.c: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: prs.c: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: prt.c: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: rmchg.c: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: unget.c: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: val.c: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: sccslog.c: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: sccscvt.c: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: sccsdiff: This command now supports a -N option like admin, delta
	and get. This allows it to be used in project mode with the SCCS
	history files in a separate tree that starts in .sccs/ in the
	project home directory.

-	SCCS: comb.c: If a SCCS history file has been a V6 history file, the
	new history file is created as V6 history file as well.

-	SCCS: val.c: This command now supports a -v option to print the SCCS
	history file type. The output is:

	SCCS V4 <name>
	or
	SCCS V6 <name>

	No other checks (except for a valid magic first line) are done.

-	SCCS: val.c the internal getline function now uses
	getdelim() as it is done in libcomobj. This is
	needed once we allow nul Bytes in history files.

-	patch: The patch unit test suite now allows to disable the random delta
		tests that take a long time but verify whether patch is able
		to deal with arbitrary changes in the files. To disable the
		random tests call:

			cd patch/tests
			NO_RANDOM=TRUE smake tests

-	SCCS:	libcomobj: A parser for the SCCS v6 flags has been added.
		Since there are currently no SCCS v6 flags, this parser prints
		a warning for all SCCS v6 flags and thus will warn, when 
		it sees SCCS history files created from newer SCCS versions. 

-	SCCS:	libcomobj: A parser for SCCS v6 global meta data has been
		added. It currently supports the inital path name and
		the unified random number that is given to files to make them
		unique.

-	SCCS:	libcomobj: a new function sfree() frees the line buffer that
		is used by getdelim()

-	SCCS: all programs that call the SCCS v4 flag parser now also call
		the SCCS v6 flag parser and the parser for SCCS v6 meta data.

-	SCCS: prs: now prints the SCCS v6 initial path using the new keyword
		:Gp:

-	SCCS: prs: now prints the SCCS v6 unified random using the new keyword
		:Gr:

-	SCCS: The sccs unit test suite now allows to disable the random delta
		tests that take a long time but verify whether sccs is able
		to deal with arbitrary changes in the files. To disable the
		random tests call:

			cd sccs/tests
			NO_RANDOM=TRUE smake tests

-	SCCS: admin no longer has a file descriptor leak when is is used 
		to modify more than one SCCS history file (e.g. by modifying
		flag values).

-	SCCS: All low level programs no call sfree() and thus avoid a memory
		leak from the line buffer when they are used with more than 
		one file.

-	SCCS: admin now supports two new options:

	-	-XGp	The initial SCCS v6 path
			If specified as "-XGp=", no initial path is written
			to the history file.

	-	-XGr	The SCCS v6 unified random
			If specified as "-XGr=", no unified random is written
			to the history file.

	Both options are oly honored when a new history file is created.

	If one of these options is used, admin only supports one file type
	argument. 

-	SCCS: comb now supports to retain SCCS v6 initial path and SCCSv6 urand
		to be retained in the new reduced history file.

-	SCCS man pages: more hints on SCHILY specific options have been added.

-	SCCS: val: the check for a back-going clock now also checks nanoseconds
	from SCCS v6 history files.

-	SCCS: libcomobj: the check for a back-going clock in dodelt() now also 
	checks nanoseconds from SCCS v6 history files.

-	SCCS: libcomobj: the bulk mode path handler bulkprepare() now permits
	files that do not (yet) exist. This is needed for several reasons for
	e.g. the new admin features and to permit get(1) to be able to extract
	a g-file that has not yet been checked out.

-	SCCS: admin: when the bulk option -N has been introduced in Summer 2011,
	this has been done mainly to be able to verify whether SCCS is still
	faster than other version control software. It was used to allow to test
	the performance for importing large amounts of files into SCCS and thus
	-N implied -n and -i and the SCCS history files have always been
	intialized from the related g-files.

	Now the -N option no longer implies -n or -i. If a new history file
	should be created, "admin -N... -n ..." needs to be used and if the
	history files should be initialized from the g-files, the command
	"admin -N... -i. ..." needs to be used. The option -i followed by a dot
	now tells admin to use the computed related g-file name to initialize
	history files on bulk mode.

	With this change, admin now allows to e.g. use the -N option to set
	flags in a larger list of files by e.g. calling "admin -NSCCS -fx *.c".

-	SCCS: sccscvt: When converting from SCCS v4 to SCCS v6, the initial path
	and the unified random are now added if not yet present.

-	SCCS: sact: the program now identifies itself as "sact" instead of "unget"
	which was a result of being a single program with hard links.

-	SCCS unit tests: New tests for checking the SCHILY SCCS specific new
	val(1) options -v and -T have been added.

-	SCCS unit tests: A new test checks whether delta -Xprepend works correctly

-	SCCS: defines.h: New flags for the Nparms allow to tell the function
	bulkprepate() from libcomobj to know whether a file or directory
	needs to exist.

-	SCCS: libcomobj::bulkprepare() The space for Nparms.n_prefix is no
	longer allocated via fmalloc() but with malloc(), since the content
	of Nparms must survice a call to ffreeall() that is called after working
	on one file from the file list.

-	SCCS: libcomobj::bulkprepare() in case that a new s.file should be
	created, the directory for the s.file is auto created in case that it
	is missing.

-	SCCS: libcomobj::bulkprepare() in case that the N_GETI flag is set,
	the directory for the g-file is auto created in case that it is
	missing.

-	SCCS: libcomobj::bulkprepare() use resolvenpath() instead of 
	resolvepath() in case that the base directory of a file does not
	need to exist.

-	SCCS: libcomobj::bulkprepare() The program is aborted again in case
	that the base directory of a file needs to exist but is missing.

-	SCCS: libcomobj::bulkprepare() The libschily implementation for
	resolvepath() does not allow to use the same space for the input
	path and the output path name. We now copy the input path to a
	temporary variable to allow it to work on platforms other that
	Solaris.

-	SCCS: libcomobj::bulkprepare() We now use fallback code in case that
	the base directory of the s.file does not yet exist and chdir()
	thus does not work.

-	SCCS: libcomobj::bulkprepare() The struct member N->n_dir_name is now
	set to NULL in case that we did not do a chdir().

-	SCCS: libcomobj  New function freeN() allows to free Nparms.n_prefix

-	SCCS: libcomobj  New function Ndbg() allows to to debug bulkprepare(),
	e.g. the result from parseN().

-	SCCS: libcomobj::set_init_path() fixed a bug that could cause a core
	dump in SCCS v6 mode, when the dir parameter is a NULL pointer.

-	SCCS: libmpw::sname() no longer addresses out of bound data from the
	string parameter (s[-1]).

-	SCCS: admin now marks the Nparms structure to indicate that in case of
	"admin -N -n file", the s-file does not need to exist when running
	bulkprepare().

-	SCCS: admin now marks the Nparms structure to indicate that in case of
	"admin -N+ -n file", the directory to place the g-file does not need to exist
	while running bulkprepare().

-	SCCS: get now marks the Nparms structure to indicate that in case of
	"get -N file", the directory to place the g-file does not need to exist
	while running bulkprepare().

-	SCCS: comb no longer prints the PATH= line repeated in case that
	more than one file type argument was used.

-	SCCS: comb now prints a "cd" command in the script in cace that
	comb(1) did chdir() while calling bulkprepare() for the -N bulk mode.

-	SCCS: all commands: setsig() and xsethome(NULL) are now called before
	calling parseN(). This helps to prevent core dumps from bad code in
	parseN() and this allows parseN() to know whether a command runs in
	"project off tree" mode.

-	SCCS: admin & delta: the function parseX() has been moved to 
	libcomobj.

-	SCCS: admin & sccscvt: the Initial Path is now only created in case
	that the -N option was used as otherwise, the program cannot know
	the real g-file name. This is because up to now, the handling of the
	"SCCS/" subdirectory is handled in the program sccs(1) and not
	understood by the low end programs.

-	SCCS: libcomobj::putmeta() now first prints the unified random and then
	the initial path. This helps to keep the order even when the initial
	path is added later.

-	SCCS: libcomobj::set_init_path() now expects a g-file name instead of
	an s.file name. This helps to have correct initial path names in the
	history file.

-	SCCS: libmpw: added a new xmalloc() that checks for NULL and aborts.

-	SCCS: man pages: the man pages now explain that with "-N" and "-Ns",
	the s.files are in the same directory as the g-files.

-	SCCS unit tests: A new test for even longer lines now checks whether
	sccs works with lines of 100000 bytes length.

-	SCCS unit tests: New tests check whether admin(1) correctly deals with
	all kind of -N parameters and more than file type argument.

-	SCCS unit tests: New tests check whether delta(1) correctly deals with
	all kind of -N parameters and more than file type argument.

-	SCCS unit tests: New tests check whether get(1) correctly deals with
	all kind of -N parameters and more than file type argument.

-	SCCS unit tests: New tests check whether sccscvt(1) correctly deals with
	all kind of -N parameters and more than file type argument.

-	SCCS unit tests: New tests check whether cdc(1), prs(1), prt(1),
	rmdel(1), sact(1), sccslog(1), unget(1), val(1)
	deal with all kind of -N parameters and more than file type argument.
	These tests are simpler than the tests for admin(1) and get(1).

-	SCCS unit tests: A set of unit tests for sccscvt(1) have been added.

-	SCCS unit tests: A set of unit tests for comb(1) have been added.

-	SCCS unit tests: A set of unit tests for sccscvt(1) have been added
	to check whether sccscvt adds the initial path while converting.

-	SCCS is now in a state that is close before being ready with project
	support. This means that SCCS soon will be able to deal with lists
	of files as a whole and have a global locking for operations on file
	lists.

	The current state is that SCCS most likely is ready with all infra
	structure enhancements for project support except for the code to
	deal with the changeset file and the name cache.

-	SCCS the prs man page now tries to make the table less wide.

-	SCCS: libcomobj::bulkprepare() the current working directory inside the
	project home directory tree now gets an appendet "/" before "SCCS" is
	appended.

-	SCCS: sccs: now has better comment in the function makefile() that 
	usually prepends simple file names by "SCCS/s." before passing them
	to the low level programs. This is the main place where future versions
	of sccs.c need to be modified to be able to use the new -N option
	from the low level programs. The -N option however is needed for
	"off tree" repositories.

-	SCCS: sccs now checks for SCCS/s. in the function makefile(). This
	results in attempts to check for SCCS/SCCS/s.x.file, but previous
	versions complained: "SCCS/x.file not an SCCS file" which is not
	better. In order to prepare the future use of -NSCCS, the new method
	is needed.

-	SCCS: sccs now has a new variable "NewMode" that is set if the directory
	".sccs" is seen in the project set home directory. This is the upcomming
	switch between the old mode where "sccs" translates g-file names into
	s.file names before calling the SCCS low level programs and the new mode
	where g-files + the option -NSCCS are used as argument for the low level
	SCCS prrograms.

	This can be controlled via the environment "SCCS_NMODE". If present and
	set to "FALSE", "NewMode" is disabled regardless of the presence of
	".sccs" and otherwise "NewMode" is enabled regardless of the presence of
	".sccs".

	WARNING: currently you need to set the environment SCCS_NMODE=TRUE to
	enable this test mode since there is a need to change a lot in the code
	to make it work again this way.

-	SCCS: sccs: Now using strdup() instead of malloc(strlen(buf) + 1) + strcpy()

-	SCCS: sccs now has a new subcommand "root" that prints the project
	set home directory in case it has been initialized via "sccs init".

-	SCCS: libcomobj: the get(1) implementation from admin(1) has been
	moved to libcomobj::doget()

-	SCCS: libcomojb::doget() now calls sclose() and sfree().

-	SCCS: libcomojb::parseN() now recognizes a space character as a
	placeholder for a flag that is ignored. This allows to make sccs.c
	simpler as it is now able to modify the behavor of called low level
	programs, e.g. to use "-N SCCS" to get a vanilla delta(1) or to use
	"-N+SCCS" to get the behavior of "sccs delget".

-	SCCS: delta now supports new options -k and -N+... This permits
	do do a "delget" operation with only using delta(1).

-	SCCS: a test for the new implicit get(1) in dalta(1) with -N+SCCS
	has been added.

-	SCCS: sccsdiff shell script is now able to deal with a -N option that
	contains space characters. This needs the use of IFS= and $Nflag as 
	"$Nflag" would otherwise result in an unwanted empty argument.

-	SCCS: all programs: added some more gettext() calls e.g. for the 
	-version option.

-	SCCS: sccslog: added support for setlocale()/gettext()

-	SCCS: sccsfile man page now contains an overview of all files used by
	all SCCS commands.

-	SCCS: man pages now contain a hint on where to download the sourcecode.

-	SCCS: sccslog man page fixed a bug with a typo that used .PD 0 instead of
	just .PD

-	SCCS: libcomobj: dodelt.c & idsubst.c: added a forgotten
	/* FALLTHRU */

-	SCCS: sccs.c Cstyle changes

-	SCCS: sccs.c Added support for new separate macro string defintions
	that apply to the "new mode".

-	SCCS: sccs.c New code allows to specify -N options specific to
	macro stgring defitions.

-	SCCS: sccs.c New environment "SCCS_NOEXEC" allows to disable command
	execution for debugging purposes.

-	SCCS: admin.c: added some /* NOTREACHED */ comments to tell Coverity
	that fatal() does not return.

	Thanks to Pavel Raiskup for poiting to a related Coverity message.

-	SCCS: admin.c: The function adjust() did call strlen() on a non-null
	terminated string.

	Thanks to Pavel Raiskup for poiting to a related Coverity message.

-	SCCS: admin.c: The function adjust() returned a local string array.

	Thanks to Pavel Raiskup for poiting to a related Coverity message.

-	SCCS: bdiff.c: added some /* NOTREACHED */ comments to tell Coverity
	that fatal() does not return.

	Thanks to Pavel Raiskup for poiting to a related Coverity message.

-	SCCS: prs.c: The getopt() string did not contain 'q' for the expected
	support to the -q option.

-	SCCS: prs.c The code for handling the -d option was indented but curly
	brackets have been missing.

	Thanks to Pavel Raiskup for poiting to a related Coverity message.

-	SCCS: unget.c: The getopt() string did not contain 'q' for the expected
	support to the -q option.

-	SCCS: The version has been bumped to 5.09 with date 2019/01/02.


-	SCCS TODO:

	-	Convert sccs.c to use -NSCCS in the back end programs instead
		of converting g-file names from the command line into s.file
		names in the frontend in order to forward s.file names to the
		backend programs. Doing it this way allows us to have the SCCS
		history files "off tree" in a separate directory tree starting
		with ".sccs/" at the "project root" directory, as the related
		code to convert path names is in libcomobj::bulkprepare().

	-	Add code to admin(1) and delta(1) to retrieve the list of
		new or modified files in order to have all important code
		for a "sccs commit" in a single program that does not need to
		deal with ARG_MAX limitations.

	-	Add code to admin(1), delta(1) and get(1) to maintain/understand
		the changeset file.

	-	Add code to libcomobj to understand the changeset file,
		which is needed in order to e.g. know the file names and file
		specific SIDs/state that correspond to a project global SID.

	-	Add code to all programs to maintain a lock (for the file
		$PROJECTHOME/.sccs/SCCS/s.changeset, that would be in the file
		$PROJECTHOME/.sccs/SCCS/z.changeset) to maintain a project
		global lock.

	-	Find/verify a complete transactional model that allows to repair
		complex changes to the set of files for a project that have
		been aborted in the middle. The current idea is to create the
		file $PROJECTHOME/.sccs/changeset with the deltas to the
		changeset during a complex update operation.

	-	Find a way to decide when to use SCCS v6 type history files.
		For the project mode, this is needed in order to prevent 
		historic SCCS implementations to believe they could modify
		files without knowing about project global locks.




SCCS-5.08 is 2.5x faster than Sun SCCS and consumes 4.7x less CPU time than Sun SCCS.
SCCS-5.08 is 2x..50x faster than GNU CSSC and needs 4x..10x less memory than GNU CSSC.
SCCS-5.08 is 6x faster than RCS-5.8 and consumes 7x less CPU time than RCS-5.8.
	  For RCS files > 256 kB, add factor of 2x to CPU times when you use RCS-5.8.


SCCS now has been tested to compile and work on the following platforms:

-	SunOS-4.x

-	SunOS-5.x (Solaris 2.x, 7, 8, 9, 10, 11)

-	FreeBSD

-	HP-UX

-	Linux

-	Mac OS X

-	AIX

-	IRIX

-	VMS

-	Cygwin

The portability now reached a state that should allow SCCS to compile 
and run on other platforms too. SCCS compiles and has been verified
on all major platforms.