1New features with AN-2018-01-10: 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- libschily: fstream.c new function fsgetlen() returns number of characters 46 in the stream buffer. 47 48- libshedit: New function shedit_getlen() returns number of characters in 49 libshedit left over from last command line. 50 51- Bourne Shell: When we added the history editor in 2006, the characters 52 from the input in the history editor have been read character by 53 character. 54 55 The result of this method was that the rest of a line could not be 56 flushed in case of a syntax error in the command when in interactive 57 mode. This frequently caused more than on error message when the rest 58 of the command line was read, because it has not been flushed. In rare 59 cases, it could even cause the shell to read more input lines until a 60 ^C or the right string end is typed. 61 62 The new code now copies the whole line from the editor (in case it is 63 shorter than the buffer in Bourne Shells struct fileblk) and thus is 64 able to flush the rest of the line in case of errors. 65 66- Bourne Shell: Fixed a bug introduced in August 2016 that caused simple 67 shell scripts (without "#!") to incorrectly set the tty process group 68 after the first command in the script finished. This caused such 69 scripts to be stopped if they try to read input from tty. 70 71- Bourne Shell: echo $(( 1 + 3 + )) did print "8" instead of complaining 72 about a missing token. We now check for the EOF token at a better 73 location. 74 75- Bourne Shell: Added a conformance test for above syntax error. 76 77- Bourne Shell: func_unhash() which is called when deleting a function, 78 now correctly adds the SPC_BUILTIN bit for special builtins. This 79 fixes a bug that could cause a special builtin to be treated as 80 non-special after a function of the same name was deleted. 81 82- Bourne Shell: The interface for builtin commands no longer needs access 83 to global variables from the shell. This helps to implement dynamically 84 loadable builtins. Note that Apple's linker is too dumb to support 85 dynamic linking against variables. 86 87- Bourne Shell: New include file "bosh.h" is used to access the global 88 shell data via a pointer to the new structure "bosh_t". 89 90- Bourne Shell: the "find" builtin now uses this new "struct bosh *" 91 interface in order to be moved from a Bourne Shell internal builtin 92 into a Bourne Shell dynamic lodable builtin. 93 94- libboshcmd: added a new shared library that allows to test the "find" 95 command as a loadable Bourne Shell builtin. In order to compile and 96 install a shared libboshcmd, do the following: 97 98 first chdir to the top level schilytools directory 99 100 make LINKMODE=dynamic install # install other shared libs 101 cd libboshcmd 102 make LINKMODE=dynamic install # install shared libboshcmd 103 104- Bourne Shell: The command "builtin" is now able to load a shared 105 library using "builtin -f libname", where "libname" is the name of 106 the shared library. Call after installing a shared libboshcmd: 107 108 builtin -f libboshcmd.so.1 109 110 to load the included test library. 111 112- Bourne Shell: The command "builtin" is now able to add a new builtin 113 from a loaded shared library. Call: 114 115 builtin sysfind 116 117 after calling "builtin -f libboshcmd.so.1" to enable the "find" 118 builtin from the named test library. To call the loadale version 119 of the "find" builtin, call: 120 121 sysfind ... 122 123- Bourne Shell: The command "builtin" is now able to remove a builtin 124 that was previously enabled. Call: 125 126 buildin -d sysfind 127 128 to disable the test builtin command from the test library. 129 130 131 132 133- Bourne Shell Missing features for POSIX compliance: 134 135 - Support for $'...' quoting (this is not needed for the current 136 version of POSIX but for the next POSIX 137 version that will be named SUSv8). 138 The development of SUSv8 will start in 139 late 2016. 140 141 We are now expecting the Bourne Shell to be fully POSIX compliant. 142 143- Bourne Shell further TODO list: 144 145 - Finish loadable builtin support. 146 147 - POSIX does not allow us to implement ". -h", so we will 148 add a "source" builtin to be able to implement "source -h" 149 150- The following builtins (that are available in bsh) are still missing in 151 the Bourne Shell: 152 153 err echo with output going to stderr 154 glob echo with '\0' instead of ' ' between args 155 env a builtin version of /usr/bin/env 156 157 The following bsh intrinsics are still missing in the Bourne Shell: 158 159 - the restricted bsh has restriction features that 160 are missing in the Bourne shell. 161 162 - source -h read file into history but do not execute 163 164 and probably more features not yet identified to be bsh unique. 165 166 167 168Author: 169 170Joerg Schilling 171D-13353 Berlin 172Germany 173 174Email: joerg@schily.net, js@cs.tu-berlin.de 175 joerg.schilling@fokus.fraunhofer.de 176 177Please mail bugs and suggestions to me. 178