1New features with AN-2018-09-04:
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	*** Due to the fact that schily-tools 2014-01-26 introduced
37	*** optimizations for the Schily version of SunPro Make, you
38	*** need at least the dmake version from 2018/01/11 with support
39	*** for the "export" directive to compile with this makefile system.
40
41
42	WARNING: the new version of the isoinfo program makes use of the
43		*at() series of functions that have been introduced by Sun
44		in August 2001 and added to POSIX.1-2008. For older platforms,
45		libschily now includes emulations for these functions but
46		these emulations have not yet been tested thoroughly.
47		Please report problems!
48
49	The new smake version mentioned above is smake-1.2.4
50
51
52-	libschily: Fixed the behavior of the umask/chmod perm parser for the
53	case where "who" was not specified and the operator is '='. POSIX
54	requires here to first clear all bits in the old value before adding
55	new bits. The old implementation did clear only the bits retrieved
56	from umask(2).
57
58-	libschily: The umask/chmod perm parser now returns -1 for the mode
59	string "u", since the operator is missing. Before, it just printed an
60	error message but did not return -1.
61
62-	libschily: astoul() and astoull() now by default permit to prefix
63	the unsigned number by a "-". This is required by POSIX for strtoul()
64	and strtoull() and our implementation needs to be compatible to POSIX
65	to make the printf(1) implementation in the Bourne Shell POSIX
66	compatible on older platforms.
67
68	Thanks to Robert Elz for reporting
69
70-	libschily: floating point conversion in printf: avoid a GCC bug
71	that converts
72
73		while (*s)
74			*s++ = toupper(*s);
75	into
76
77		while (*s++)
78			*s = toupper(*s);
79
80-	libschily: floating point conversion in printf: No longer use the
81	UNOS derived "(Infinity)" and "(NaN)" but "inf" and "nan".
82
83-	libschily: floating point conversion in printf: Now print -inf for
84	a negative infinity value.
85
86-	libschily: fconv.c added new functions
87	_ftoes()/_ftofs()/_qftoes()/_qftofs() to be able to add a new parameter
88	without changing the interface for ftoes()/ftofs()/qftoes()/qftofs()
89
90-	libschily: added a new file format.h to share interface definitions
91	between format.c and fconv.c
92
93-	libschily: The new flag UPPERFLG is now implemented in fconv.c.
94
95-	libschily: some manpages did not expand the %e% keyword, therefore
96	SCCS has been told to expand it now.
97
98-	libfind: The "-perm +mode" feature before has been recognised if the
99	+ sign appeared before any character from  the set "ugoa", but since
100	the string "+u" represents a POSIXly valid "permcopy" operation, the
101	new version of libfind only accepts this specific feature if the
102	mode string starts with a "a". Since (with find) the start value of
103	the perm parser is 0, any valid mode string may be prefixed by "a+,"
104	without changing the resulting value, the feature is usable with
105	"-perm +a+,mode".
106
107-	libfind: The phrase "-perm /mode" has been added as an alias for
108	"-perm +mode", but since "/" is not permitted in a POSIX mode string,
109	this methos does not require to prefix the mode string with "a+," to
110	work. "-perm /mode" also helps to give comptibility with GNU find.
111
112-	libfind: "-chmod mode" no longer causes a wrong treatment in some
113	cases as the special treatment for "-perm +mode" no longer applies
114	to -chmod too.
115
116-	libfind: new function find_strvers() returns the version string.
117
118-	libfind: version bumped to 1.7
119
120-	libstreamarchive: the man page now correctly explains that in
121	BINARY mode, the values for uname/gname/path/linkpath are not
122	coded in UTF-8.
123
124-	sfind: the man page now reflects the changes in libfind.
125
126-	bsh/Bourne Shell/star: a very long path name could cause a core dump
127	with a "chdir()" operation in some cases, as there was no check for
128	pointer != NULL when restoring the '/' character while hopping over
129	parts of the path name.
130
131	Thanks to Heiko Ei�feldt for reporting.
132
133-	Bourne Shell: conformance tests: The printf tests that depend on
134	'od' now use a better sed filter to prevent differences caused
135	by different amount of space in the od output at the beginning
136	of a line.
137
138	Thanks to Robert Elz for reporting
139
140-	Bourne Shell: conformance tests: printf tests for negative
141	integer numbers have been added. This is important as POSIX
142	requires "unsigned numbers" that start with a '-' sign to be
143	parsed as if they were signed numbers.
144
145	Thanks to Robert Elz for reporting
146
147-	Bourne Shell: conformance tests: the regression test "bug01" now
148	sets PS4='+ ' to avoid wrong test results in case the calling shell
149	exports a different PS4 value.
150
151	Thanks to Robert Elz for reporting
152
153-	Bourne Shell: The man page now mentions the default $HOME/.shrc
154	together with first mentioning $ENV.
155
156-	star: "star -c H=exustar -pax-o binary" now correctly results in
157	unencoded strings for uname/gname/path/linkpath. There was preliminary
158	code for the -copy mode but the final changes for this binary mode
159	have been forgotten. This was caused by a change of a variable name
160	from "copyflag" to "binflag" in May 2018.
161
162	WARNING: If you created archives during the past three months using the
163	option "-pax-o binary", you definitely need to recreate the archives
164	in case there are non-ascii characters in values for the named
165	keywords.
166
167-	star: The code to set the time stamp for extracted files has been
168	changed to correctly deal with symbolic links.
169
170	In former times, time stamps for symlinks have not been set at all
171	as there was n way to do that.
172
173	Later, with the availability if utimensat() This could be done for
174	symlinks as well, if the target systen supports utimensat().
175
176	Recently, the code was rearranged to always use utimensat(), but
177	to use an emulation on older systems. This resulted in sometimes
178	setting the timestamp of the symlink target instead of the
179	symlink, depending on how the emulation could be implemented.
180
181	The new code knows how the emulation is done and avoids to set
182	the times for the symlink targets on older platforms where the
183	emulation does not (cannot) support to set the time of symlinks.
184
185	Thanks to Stephane Chazelas for reporting.
186
187-	star: star -x -to-stdout no longer tries to set the "not extracted"
188	file to Jan 1 1970 in case of an extraction error.
189
190-	star: The option -secure-links has been made the default except when
191	extracting dumps with the -restore option.
192
193	The reason for that change is that a handcrafted tar archive could
194	first include a symlink with absolute target name, e.g. x -> /etc
195	and then include a file x/passwd that would be extracted using
196	the 'x' link to result in /etc/passwd.
197
198	Our solution with -secure-links is the same since 20 years: do not
199	extract the problematic symlink and as a result, the later file
200	will be extracted into the local directory tree.
201
202-	star: a new option -no-secure-links allows to disable the secure
203	default behavior.
204
205-	star: Added a new help output to the error statistics in case that
206	a file has been skipped because it contains /../ or when a symbolic
207	link has been skipped because it points to an absolute path or
208	because the symlink target contains /../. This help-text mentions
209	the options -.. and -secure-links respectively.
210
211-	star: the archive format man page now correctly explains that in
212	BINRAY mode, the values for uname/gname/path/linkpath are not
213	coded in UTF-8.
214
215-	ved: If the .vedtmp.* file contains a position < 0, this is now seen
216	as something illegal and the cursor position is set to 0. This avoids
217	a core dump in this case.
218
219-	ved: the binding now contains a new set of functions that is used
220	in case that the current character is outside the previous range 0..255.
221	This is a preparation for multi-byte support in ved.
222
223-	ved: Some Cstyle fixes have been applied.
224
225-	ved: Some of the file IO functions have been changed to use void *
226	instzead of Uchar * buffers.
227
228
229
230-	Bourne Shell Missing features for POSIX compliance:
231
232	- Support for $'...' quoting (this is not needed for the current
233					version of POSIX but for the next POSIX
234					version that will be named SUSv8).
235					The development of SUSv8 will start in
236					late 2016.
237
238	We are now expecting the Bourne Shell to be fully POSIX compliant.
239
240-	Bourne Shell further TODO list:
241
242	-	Finish loadable builtin support.
243
244	-	POSIX does not allow us to implement ". -h", so we will
245		add a "source" builtin to be able to implement "source -h"
246
247-	The following builtins (that are available in bsh) are still missing in
248	the Bourne Shell:
249
250	err			echo with output going to stderr
251	glob			echo with '\0' instead of ' ' between args
252	env			a builtin version of /usr/bin/env
253
254	The following bsh intrinsics are still missing in the Bourne Shell:
255
256	-			the restricted bsh has restriction features that
257				are missing in the Bourne shell.
258
259	-	source -h	read file into history but do not execute
260
261	and probably more features not yet identified to be bsh unique.
262
263
264
265Author:
266
267Joerg Schilling
268D-13353 Berlin
269Germany
270
271Email: 	joerg@schily.net, js@cs.tu-berlin.de
272	joerg.schilling@fokus.fraunhofer.de
273
274Please mail bugs and suggestions to me.
275