1New features with AN-2017-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. To ensure this, call: 28 29 cd ./psmake 30 ./MAKE-all 31 cd .. 32 psmake/smake 33 psmake/smake install 34 35 36 WARNING: the new version of the isoinfo program makes use of the 37 *at() series of functions that have been introduced by Sun 38 in August 2001 and added to POSIX.1-2008. For older platforms, 39 libschily now includes emulations for these functions but 40 these emulations have not yet been tested thoroughly. 41 Please report problems! 42 43 The new smake version mentioned above is smake-1.2.4 44 45- libgetopt::getopt.c: a read buffer overflow is now prevented in case that 46 optstring is "" and the option parameter similar to "--something". This is 47 a bug that is also present in Oracle Solaris and will be fixed soon in 48 SchilliX-ON 49 50 Thanks to Heiko Ei�feldt for reporting 51 52- Bourne Shell: word.c did have several places with *argp = 0 where a 53 previous call to GROWSTAK(argp) was missing. 54 55 Thanks to Heiko Ei�feldt for reporting 56 57- Bourne Shell: defs.h The GROW*() macros have been wrapped with 58 do { ... } while(0) statements to avoid problems with wrong nesting 59 of if ... else statements. 60 61 Thanks to Heiko Ei�feldt for reporting 62 63- Bourne Shell: test.c had two places where an access past the end of an 64 argument could happen. 65 66 Thanks to Heiko Ei�feldt for reporting 67 68- Bourne Shell: service.c::split() had two copy loops that could access 69 the string stack after it's end because the macro GROWSTAKL() worked 70 incorrectly. 71 72 Thanks to Heiko Ei�feldt for reporting 73 74- Bourne Shell: macro expansion with ${var#pat} and ${var##pat} and 75 ${var%pat} and ${var%%pat} could destroy the string stak because of 76 an invalid nested call to _macro(). 77 78 Thanks to Heiko Ei�feldt for reporting 79 80- Bourne Shell: added a workaround for the test foo=${foo%"${foo#a}"} 81 that should skip the '"' chars. 82 83 Thanks to Martijn Dekker for reporting 84 85- Bourne Shell: command substitution ( $(cmd) and `cmd` ) could 86 free memory too early. We now avoid a tdystak() call. The related 87 space is now free()d from the command that uses $(cmd) or `cmd`. 88 89 Thanks to Heiko Ei�feldt for reporting 90 91- Bourne Shell: Arithmetic expansion could try to access free()d memory 92 in case of unary operators. The parameter error checking has been 93 rewritten to avoid the attempt to access the no longer valid old 94 content of a shell macro. 95 96 Thanks to Heiko Ei�feldt for reporting 97 98- Bourne Shell: The Makefile was modified to no longer link against 99 $(LIB_GEN) which typically contains "-lgen". We no longer need libgen 100 as we decided on August 2017 that our private gmatch() implementation 101 is better than the one in libgen as our gmatch() supports e.g. [:alpha:] 102 103- Bourne Shell: Since March 2016, we support shell input like ";ls" but 104 our parser extension caused the shell to receive a SIGSEGV with ";<()" 105 as input. This bug has now been fixed. 106 107 Thanks to Heiko Ei�feldt for reporting 108 109- Bourne Shell: The condition in catpath() to add another Nul Byte has 110 been modified as "stakbot" could be relocated from realloc(), causing 111 the presious condition for a string ending in "...\\" not to hit. 112 113 Thanks to Heiko Ei�feldt for reporting 114 115- Bourne Shell: The builtin command "ulimit" defined a useless option -S 116 for the FreeBSD resource RLIMIT_SWAP. -S did not work for RLIMIT_SWAP 117 because -S is already in use for "soft limit". RLIMIT_SWAP is now 118 associated with -w as in "ash" on FreeBSD. 119 120- Bourne Shell: The builtin command "ulimit" added support for new 121 FreeBSD resources: 122 123 RLIMIT_SBSIZE -b 124 125 RLIMIT_KQUEUES -k 126 127 RLIMIT_UMTXP -o 128 129- Bourne Shell: The builtin command "ulimit" added support for various 130 new resources: 131 132 RLIMIT_UMEM Alias for RLIMIT_RSS 133 RLIMIT_OFILE Alias for RLIMIT_NOFILE 134 RLIMIT_HEAP No option, usable only with the new BSD interface 135 RLIMIT_CONCUR No option, usable only with the new BSD interface 136 137- Bourne Shell: A new builtin command "limit" has been added. 138 139 This command is a variant of the "ulimit" builtin, but offers an 140 interface that is close to the BSD "csh" "limit" interface and thus 141 more intuitive than the Bourne Shell / ksh "ulimit" interface. 142 143- bsh: added support for RLIMIT_KQUEUES RLIMIT_UMTXP to the 144 builtin "limit" command. 145 146- ved: The man page was rewritten to better mention the ved aliases 147 "ved-e" and "ved-w" 148 149- mkisofs: A better documentation for -D was added to the man page. 150 151 152 153- Bourne Shell Missing features for POSIX compliance: 154 155 - Support for $'...' quoting (this is not needed for the current 156 version of POSIX but for the next POSIX 157 version that will be named SUSv8). 158 The development of SUSv8 will start in 159 late 2016. 160 161 We are now expecting the Bourne Shell to be fully POSIX compliant. 162 163- Bourne Shell further TODO list: 164 165 - Finish loadable builtin support. 166 167 - POSIX does not allow us to implement ". -h", so we will 168 add a "source" builtin to be able to implement "source -h" 169 170- The following builtins (that are available in bsh) are still missing in 171 the Bourne Shell: 172 173 err echo with output going to stderr 174 glob echo with '\0' instead of ' ' between args 175 env a builtin version of /usr/bin/env 176 177 The following bsh intrinsics are still missing in the Bourne Shell: 178 179 - the restricted bsh has restriction features that 180 are missing in the Bourne shell. 181 182 - source -h read file into history but do not execute 183 184 and probably more features not yet identified to be bsh unique. 185 186 187 188Author: 189 190Joerg Schilling 191D-13353 Berlin 192Germany 193 194Email: joerg@schily.net, js@cs.tu-berlin.de 195 joerg.schilling@fokus.fraunhofer.de 196 197Please mail bugs and suggestions to me. 198