1New features with AN-2018-12-21:
2
3This is the first localization step for the schily source consolidation. Many
4programs now (hopefully) call gettext() for all strings that need localization.
5
6-	The next step will include dgettext() calls for the libraries and the
7	missing programs
8
9-	The following step will include the extracted strings
10
11-	The last step will include German translations and install support
12	for the resulting binary message object files.
13
14----------> Please test and report compilation problems! <---------
15
16***** NOTE: As mentioned since 2004, frontends to the tools should *****
17*****		call all programs in the "C" locale		   *****
18*****		by e.g. calling: LC_ALL=C cdrecord ....		   *****
19*****		unless these frontends support localized strings   *****
20*****		used by the cdrtools with NLS support.		   *****
21
22		*** WARNING        ***
23		*** Need new smake ***
24
25	*** Due to the fact that schily-tools 2014-04-03 introduced to use new macro
26	*** expansions and a related bug fix in smake, you need a new smake
27	*** to compile this source. If your smake is too old and aborts, ensure this
28	*** by calling:
29
30	cd ./psmake
31	./MAKE-all
32	cd ..
33	psmake/smake
34	psmake/smake install
35
36	The new smake version mentioned above is smake-1.2.4
37	The recent smake version is smake-1.3
38
39	*** Due to the fact that schily-tools 2014-01-26 introduced
40	*** optimizations for the Schily version of SunPro Make, you
41	*** need at least the dmake version from 2018/01/11 with support
42	*** for the "export" directive to compile with this makefile system.
43
44
45	WARNING: the new version of the isoinfo program makes use of the
46		*at() series of functions that have been introduced by Sun
47		in August 2001 and added to POSIX.1-2008. For older platforms,
48		libschily now includes emulations for these functions but
49		these emulations have not yet been tested thoroughly.
50		Please report problems!
51
52-	include/schily/stdint.h & include/schily/utypes.h: added a workarounf for a
53	Solaris _CHAR_IS_SIGNED / _CHAR_IS_UNSIGNED Bug
54
55-	Bourne Shell: make it exit the whole shell with set -e after a command
56		substitution failed on the right side of a variable assignment
57		that has no command. This is required by POSIX.
58
59-	Bourne Shell: added a unit tests for the above case.
60
61-	Bourne Shell: New version date set to 2018-12-08 the this change.
62
63-	sdd: added a new message in retry mode. Sdd now prints the offset of a
64	failed big read before retrying to read it in 512 byte block size.
65	This helps to see where a disk has problems that always fails with
66	big reads but never fails with the retries.
67
68-	sdd: added a new option seczize= that allows to specify a sector
69	size != 512 bytes and makes sdd ready for recovering disks with larger
70	sector sizes.
71
72-	SCCS the prs man page now tries to make the table less wide.
73
74-	SCCS: libcomobj::bulkprepare() the current working directory inside the
75	project home directory tree now gets an appendet "/" before "SCCS" is
76	appended.
77
78-	SCCS: sccs: now has better comment in the function makefile() that
79	usually prepends simple file names by "SCCS/s." before passing them
80	to the low level programs. This is the main place where future versions
81	of sccs.c need to be modified to be able to use the new -N option
82	from the low level programs. The -N option however is needed for
83	"off tree" repositories.
84
85-	SCCS: sccs now checks for SCCS/s. in the function makefile(). This
86	results in attempts to check for SCCS/SCCS/s.x.file, but previous
87	versions complained: "SCCS/x.file not an SCCS file" which is not
88	better. In order to prepare the future use of -NSCCS, the new method
89	is needed.
90
91-	SCCS: sccs now has a new variable "NewMode" that is set if the directory
92	".sccs" is seen in the project set home directory. This is the upcomming
93	switch between the old mode where "sccs" translates g-file names into
94	s.file names before calling the SCCS low level programs and the new mode
95	where g-files + the option -NSCCS are used as argument for the low level
96	SCCS prrograms.
97
98	This can be controlled via the environment "SCCS_NMODE". If present and
99	set to "FALSE", "NewMode" is disabled regardless of the presence of
100	".sccs" and otherwise "NewMode" is enabled regardless of the presence of
101	".sccs".
102
103	WARNING: currently you need to set the environment SCCS_NMODE=TRUE to
104	enable this test mode since there is a need to change a lot in the code
105	to make it work again this way.
106
107-	SCCS: sccs: Now using strdup() instead of malloc(strlen(buf) + 1) + strcpy()
108
109-	SCCS: sccs now has a new subcommand "root" that prints the project
110	set home directory in case it has been initialized via "sccs init".
111
112-	SCCS: libcomobj: the get(1) implementation from admin(1) has been
113	moved to libcomobj::doget()
114
115-	SCCS: libcomojb::doget() now calls sclose() and sfree().
116
117-	SCCS: libcomojb::parseN() now recognizes a space character as a
118	placeholder for a flag that is ignored. This allows to make sccs.c
119	simpler as it is now able to modify the behavor of called low level
120	programs, e.g. to use "-N SCCS" to get a vanilla delta(1) or to use
121	"-N+SCCS" to get the behavior of "sccs delget".
122
123-	SCCS: delta now supports new options -k and -N+... This permits
124	do do a "delget" operation with only using delta(1).
125
126-	SCCS: a test for the new implicit get(1) in dalta(1) with -N+SCCS
127	has been added.
128
129-	SCCS: sccsdiff shell script is now able to deal with a -N option that
130	contains space characters. This needs the use of IFS= and $Nflag as
131	"$Nflag" would otherwise result in an unwanted empty argument.
132
133-	SCCS: all programs: added some more gettext() calls e.g. for the
134	-version option.
135
136-	SCCS: sccslog: added support for setlocale()/gettext()
137
138-	SCCS: sccsfile man page now contains an overview of all files used by
139	all SCCS commands.
140
141-	SCCS: man pages now contain a hint on where to download the sourcecode.
142
143-	SCCS: sccslog man page fixed a bug with a typo that used .PD 0 instead of
144	just .PD
145
146-	SCCS: The version has been bumped to 5.09 with date 2018/12/18.
147
148
149
150-	SCCS TODO:
151
152	-	Convert sccs.c to use -NSCCS in the back end programs instead
153		of converting g-file names from the command line into s.file
154		names in the frontend in order to forward s.file names to the
155		backend programs. Doing it this way allows us to have the SCCS
156		history files "off tree" in a separate directory tree starting
157		with ".sccs/" at the "project root" directory, as the related
158		code to convert path names is in libcomobj::bulkprepare().
159
160	-	Add code to admin(1) and delta(1) to retrieve the list of
161		new or modified files in order to have all important code
162		for a "sccs commit" in a single program that does not need to
163		deal with ARG_MAX limitations.
164
165	-	Add code to admin(1), delta(1) and get(1) to maintain/understand
166		the changeset file.
167
168	-	Add code to libcomobj to understand the changeset file,
169		which is needed in order to e.g. know the file names and file
170		specific SIDs/state that correspond to a project global SID.
171
172	-	Add code to all programs to maintain a lock (for the file
173		$PROJECTHOME/.sccs/SCCS/s.changeset, that would be in the file
174		$PROJECTHOME/.sccs/SCCS/z.changeset) to maintain a project
175		global lock.
176
177	-	Find/verify a complete transactional model that allows to repair
178		complex changes to the set of files for a project that have
179		been aborted in the middle. The current idea is to create the
180		file $PROJECTHOME/.sccs/changeset with the deltas to the
181		changeset during a complex update operation.
182
183	-	Find a way to decide when to use SCCS v6 type history files.
184		For the project mode, this is needed in order to prevent
185		historic SCCS implementations to believe they could modify
186		files without knowing about project global locks.
187
188
189
190
191
192-	Bourne Shell Missing features for POSIX compliance:
193
194	- Support for $'...' quoting (this is not needed for the current
195					version of POSIX but for the next POSIX
196					version that will be named SUSv8).
197					The development of SUSv8 will start in
198					late 2016.
199
200	We are now expecting the Bourne Shell to be fully POSIX compliant.
201
202-	Bourne Shell further TODO list:
203
204	-	Finish loadable builtin support.
205
206	-	POSIX does not allow us to implement ". -h", so we will
207		add a "source" builtin to be able to implement "source -h"
208
209-	The following builtins (that are available in bsh) are still missing in
210	the Bourne Shell:
211
212	err			echo with output going to stderr
213	glob			echo with '\0' instead of ' ' between args
214	env			a builtin version of /usr/bin/env
215
216	The following bsh intrinsics are still missing in the Bourne Shell:
217
218	-			the restricted bsh has restriction features that
219				are missing in the Bourne shell.
220
221	-	source -h	read file into history but do not execute
222
223	and probably more features not yet identified to be bsh unique.
224
225
226
227Author:
228
229Joerg Schilling
230D-13353 Berlin
231Germany
232
233Email: 	joerg@schily.net, joerg.schilling@fokus.fraunhofer.de
234
235Please mail bugs and suggestions to me.
236