1New features with AN-2018-07-02:
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-	psmake: a link to include/schily/times.h is now created, since that
52	file is needed to compile psmake with DJGPP.
53
54-	bsh/Bourne Shell/libshedit: Directory tree expand() now works
55	with a new function "lopendir()" that opens directories of arbitrary
56	path len on modern OS platforms. This is important for either
57	a long echo */*/*/*.... or with command line TAB expansion.
58
59-	bsh/Bourne Shell/libshedit: A new function "lstatat()" can stat files
60	of arbitrary path len on modern OS platforms.
61
62-	Bourne Shell: the new lstatat() function requires to include "fcntl.h"
63	and this comes with an "open()" prototype. We needed to change a local
64	variable "open" to "openbr" to avoid a GCC warning.
65
66-	bsh/Bourne Shell: a new function lchdir() allows to cd(1) into long
67	path names.
68
69-	bsh: the builtin pwd(1) now supplies a buffer with 8192 bytes of space
70	to support longer directory path names.
71
72-	Bourne Shell: the directory management code in pwd.c has been rewritten
73	to be able to deal with unlmied path length. The new code is approx. 400
74	bytes larger than the old code but a BSS variable with 1024 bytes could
75	be reduced to 2 bytes, so the overall size did shrink by 600 bytes for
76	normal usage.
77
78-	Bourne Shell: A work around for a Solaris kernel bug related to the
79	syscall getcwd() has been added. Solaris keeps returning ERANGE after
80	a path name longer than PATH_MAX has been returned and works again
81	only after a chdir() syscall was successfull.
82
83-	bsh/Bourne Shell: The test(1) builtin now uses a new function lstatat()
84	that permits access to files without path name length limitation.
85
86-	Bourne Shell: A new #ifdef -DO_ALWAYS_POSIX_SH allows to make
87	the shell to always start up in 100% POSIX mode.
88
89-	Bourne Shell: a new Bourne Shell variant has been created: "pbosh".
90	This is a shell that by default is in POSIX mode and that is intended
91	to have all POSIX extensions deactivated.
92
93	This shell is intended to be used to check shell scripts for
94	portability.
95
96	If you like to create a shell with similar features as seen in "dash",
97	you may do the following:
98
99		cd pbosh
100		smake clean
101		smake 'COPTX=-DNO_INTERACTIVE -DDO_SYSLOCAL'
102
103	This still creates a shell with multi-byte support as required
104	by POSIX, but otherwise includes similar featues.
105
106-	Bourne Shell: pbosh has a second Makefile called Mdashalike that
107	disables the interactive history editor and persistent aliases but
108	enabled the "local" builtin. To use this do the following:
109
110		cd pbosh
111		smake clean
112		smake -f Mdashalike
113
114	Note that POSIX requires multi-byte support except when on small
115	embedded devices. Since "bosh" supports multi-byte characters and still
116	is faster than "dash", it is a nice replacepent for "dash". If "bosh"
117	could disable multi-byte support to become as simple as "dash", it
118	would be more than 30% faster than "dash" and smaller than "dash" and
119	also smaller than "dash".
120
121-	Bourne Shell: The "fc" is now automatically deactivated in case that
122	the shell has been compiled without support for the history editor.
123	This helps to keep the size of the shell low in such a case.
124
125-	Bourne Shell: The variable ${.sh.version} now includes a word that
126	helps to find whether this is shell is "osh", "bosh" or "pbosh".
127	This helps to write $HOME/.shrc in a way that is accepted by both the
128	exnahnced "bosh" and the POSIX-only "pbosh".
129
130-	Bourne Shell: The man page now explains that non blank characters
131	after "#" inside shell scripts are only a problem after the shell
132	command "set -o hashcmds" has been issued.
133
134-	bsh/Bourne Shell: the variable "deftab" has been moved from "hashcmd.c"
135	to "abbrev.c" to permit "pbosh" to be compiled without hash commands
136	enabled.
137
138-	Bourne Shell: hashserv.c has a better #ifdef statement to permit to
139	compile the Bourne Shell without support for the "builtin" builtin
140	command.
141
142-	Bourne Shell: name.c: fixed an #ifdef around the REPLY variable to
143	support compileing "pbosh".
144
145-	Bourne Shell: args.c: new #ifdef structure to permit to disable
146	persistent aliases in "~/.globals" and ".locals". This is needed
147	for "pbosh".
148
149-	Bourne Shell: The man page now mentions "pbosh".
150
151
152
153
154
155-	Bourne Shell Missing features for POSIX compliance:
156
157	- Support for $'...' quoting (this is not needed for the current
158					version of POSIX but for the next POSIX
159					version that will be named SUSv8).
160					The development of SUSv8 will start in
161					late 2016.
162
163	We are now expecting the Bourne Shell to be fully POSIX compliant.
164
165-	Bourne Shell further TODO list:
166
167	-	Finish loadable builtin support.
168
169	-	POSIX does not allow us to implement ". -h", so we will
170		add a "source" builtin to be able to implement "source -h"
171
172-	The following builtins (that are available in bsh) are still missing in
173	the Bourne Shell:
174
175	err			echo with output going to stderr
176	glob			echo with '\0' instead of ' ' between args
177	env			a builtin version of /usr/bin/env
178
179	The following bsh intrinsics are still missing in the Bourne Shell:
180
181	-			the restricted bsh has restriction features that
182				are missing in the Bourne shell.
183
184	-	source -h	read file into history but do not execute
185
186	and probably more features not yet identified to be bsh unique.
187
188
189
190Author:
191
192Joerg Schilling
193D-13353 Berlin
194Germany
195
196Email: 	joerg@schily.net, js@cs.tu-berlin.de
197	joerg.schilling@fokus.fraunhofer.de
198
199Please mail bugs and suggestions to me.
200