1New features with AN-2020-02-11: 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 newer smake 27 *** to compile this source. If your smake is too old and aborts, ensure to 28 *** use the recent smake 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 2018-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 BUG WARNING: Please never report bugs only to Linux distributions as 53 they usually do not forward these bug reports upstream and as 54 the Linux distributions typically do not let skilled people 55 check the bugs. We did not hear about a FIFO problem in star 56 for a long time. Then a problem on Linux occurred once 57 every 6000-10000 tries but it did not happen on Solaris after 58 even 10 million tries, so it was not known besides Linux. 59 60- Schily.Copyright Updated Copyright year information 61 62- include/schily/wait.h: Cstyle changes 63 64- include/schily/getopt.h: OPT_PLUS changed into GETOPT_PLUS_FL 65 66- libgetopt: fixed a typo in the man page getopt.3 67 68- diff: diff now handles seek errors in the input files. 69 70- diff: diff now copies data from named pipes to /tmp/ files 71 to get a seekable object. 72 73- match: If match was called with -w, the string allocated for the 74 notword-word-notword pattern was one byte too small. This could cause 75 core dumps with some string lengths of "word". 76 77- Bourne Shell: now also using GETOPT_PLUS_FL 78 79- Bourne Shell: A new variable ${.sh.path} returns the absolute path 80 of the binary associated to the exec() for this shell. 81 82- Bourne Shell: The definition of NUMBUFLEN was moved from print.c to 83 defs.h to allow others to write into numbuf, knowing it's length. 84 85- Bourne Shell: The archive sh/dotfiles.tar.bz2 now contains an updated 86 .shrc file that makes use of the new shell variable ${.sh.path} 87 88- Bourne Shell: "for i in; do cmd ...; done" is now valid syntax even 89 though this is useless, since bosh did already accept: 90 91 "for i in $emptyvar ; do cmd ...; done" 92 93 But this is in the POSIX standard and other recent shells seem to 94 accept it. 95 96 Thanks to Robert Elz for reporting 97 98- Bourne Shell: Added a new conformance test for the for loop 99 100- Bourne Shell: The call "bosh -version" now prints 2020... 101 102- bsh: The parser integrity check routine iocheck() did not know the 103 command type && and thus could print 104 105 Caught !iocheck Signal. 106 107 This was a 40 year old bug ;-) 108 109- fifo: fifo_main.c no longer defines ibs & obs as COMMON variables, 110 since this is already done by fifo.c 111 112 Thanks to Jan Engelhardt for reporting 113 114- SCCS: comb.c now puts the filename in the created shell script 115 in single quotes to prevent attacks. 116 117 Thanks to Robert Clausecker for reporting as a side effet of a code review 118 for SchilliX-ON 119 120- SCCS: comb.c now forbids single quotes and backslashes in filenames as 121 they would cause problems with the shell script created by comb. 122 123 Thanks to Robert Clausecker for reporting as a side effet of a code review 124 for SchilliX-ON 125 126- SCCS: removed a superfluous /*FALLTHROUGH*/ after a break; in a switch 127 statement that was imported from the Sun source in December 2006. 128 129 Thanks to Robert Clausecker for reporting as a side effet of a code review 130 for SchilliX-ON 131 132- SCCS: sccs.c did dump core with "sccs -p foo get test.txt" 133 134 Thanks to Bogdan Barbu for reporting. 135 136- star: fixed typos in star.1 and star.4 137 138 Thanks to Eric Ackermann for reporting 139 as a side effect of a code review for SchilliX-ON 140 141- star: fixed typos in header.c 142 143 Thanks to Eric Ackermann for reporting 144 145- star: translated some German comment to English in diff.c, extract.c, 146 list.c, remove.c, restore.c, fifo.c 147 148 Thanks to Eric Ackermann for reporting 149 as a side effect of a code review for SchilliX-ON 150 151- star: create.c: #ifdef __what_people_would_expect__ changed to: 152 #ifdef __wrong_but_what_people_would_expect__ for better readability. 153 154- libschily: new man pages starthandlecond.3 and unhandlecond.3 155 156- libschily: handlecond.3 and raisecond.3 now correctly mention 157 handlecond() & raisecond() instead of handle()/raise(). The old names 158 from 1980 had to be renamed because os an unfriendly actt from the 159 C standard commitee. 160 161 Thanks to Eric Ackermann for reporting 162 as a side effect of a code review for SchilliX-ON 163 164- libschily: various small fixes in various man pages from libschily. 165 166 Thanks to Eric Ackermann for reporting 167 as a side effect of a code review for SchilliX-ON 168 169 170- SCCS TODO: 171 172 - Convert sccs.c to use -NSCCS in the back end programs instead 173 of converting g-file names from the command line into s.file 174 names in the frontend in order to forward s.file names to the 175 backend programs. Doing it this way allows us to have the SCCS 176 history files "off tree" in a separate directory tree starting 177 with ".sccs/" at the "project root" directory, as the related 178 code to convert path names is in libcomobj::bulkprepare(). 179 180 - Add code to admin(1) and delta(1) to retrieve the list of 181 new or modified files in order to have all important code 182 for a "sccs commit" in a single program that does not need to 183 deal with ARG_MAX limitations. 184 185 - Add code to admin(1), delta(1) and get(1) to maintain/understand 186 the changeset file. 187 188 - Add code to libcomobj to understand the changeset file, 189 which is needed in order to e.g. know the file names and file 190 specific SIDs/state that correspond to a project global SID. 191 192 - Add code to all programs to maintain a lock (for the file 193 $PROJECTHOME/.sccs/SCCS/s.changeset, that would be in the file 194 $PROJECTHOME/.sccs/SCCS/z.changeset) to maintain a project 195 global lock. 196 197 - Find/verify a complete transactional model that allows to repair 198 complex changes to the set of files for a project that have 199 been aborted in the middle. The current idea is to create the 200 file $PROJECTHOME/.sccs/changeset with the deltas to the 201 changeset during a complex update operation. 202 203 - Find a way to decide when to use SCCS v6 type history files. 204 205 For the project mode, this is needed in order to prevent 206 historic SCCS implementations to believe they could modify 207 files without knowing about project global locks. 208 209 Currently, SCCS V67 needs to be anebale manually for every 210 history file using "admin". 211 212 213 214 215 216- Bourne Shell Missing features for POSIX compliance: 217 218 - Support for $'...' quoting (this is not needed for the current 219 version of POSIX but for the next POSIX 220 version that will be named SUSv8). 221 The development of SUSv8 will start in 222 late 2016. 223 224 We are now expecting the Bourne Shell to be fully POSIX compliant. 225 226- Bourne Shell further TODO list: 227 228 - Finish loadable builtin support. 229 230 - POSIX does not allow us to implement ". -h", so we will 231 add a "source" builtin to be able to implement "source -h" 232 233- The following builtins (that are available in bsh) are still missing in 234 the Bourne Shell: 235 236 err echo with output going to stderr 237 glob echo with '\0' instead of ' ' between args 238 env a builtin version of /usr/bin/env 239 240 The following bsh intrinsics are still missing in the Bourne Shell: 241 242 - the restricted bsh has restriction features that 243 are missing in the Bourne shell. 244 245 - source -h read file into history but do not execute 246 247 and probably more features not yet identified to be bsh unique. 248 249 250 251Author: 252 253Joerg Schilling 254D-13353 Berlin 255Germany 256 257Email: joerg@schily.net, joerg.schilling@fokus.fraunhofer.de 258 259Please mail bugs and suggestions to me. 260