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