1New features with AN-2011-08-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- Changed the default Microsoft compiler version to VC9 23 24 Please note that the Microsoft environment violates nearly all 25 available standards. 26 27 It is a hard job to make things compile with a compiler that 28 is more than 12 years behind IEEE standards. 29 30 It is a harder job to deal with an OS environment that ignores 31 nearly every POSIX rule. 32 33 Just note that MSC returns stat.st_ino == 0 for all files 34 with stat(). This causes POSIX compliant software to believe that 35 all files are hardlinked together. 36 37 Thanks to Johannes Hausensteiner <johau@gmx.net> for giving the 38 initiation for this actual porting attempt and for doing some 39 tests with mingw. 40 41 Thanks to Frank Kanschur <frank.kanschur@gmx.de> for giving 42 ideas on how to implement things for Win-DOS 43 44 Thanks to Alex Kopylov <cdrtools@bootcd.ru> for writing some 45 code for mingw and for creating a missing callback-function 46 for the audio speaker outout from cdda2wav. 47 48- Fixed the vc9-setup files to make VC9 work. 49 50- Newer Cygwin "tail" versions do no longer support UNIX syntax. 51 change tail +2 to tail -n +2 in RULES/cc-mcs.rul to allow to use 52 the Microsoft compiler again 53 54- A new environment variable MKLINKS_COPY allows to tell all 55 MKLINS scripts to generate file copies rather than symlinks. 56 Call: 57 MKLINKS_COPY=true 58 export MKLINKS_COPY 59 to enable this feature 60 61- Run an additional test -h command in MKLNKS to verify whether mingw 62 supports symlinks 63 64- MKLINKS now creates copies instead of symlink when we use MSC 65 as MSC does not support to read symlinks files 66 67- Fixed a typo in include/schily/libport.h (group functions have been 68 defined to return struct passwd* instead of struct group* 69 70- Fixed wrong bracketing for C++ in include/schily/stdlib.h 71 72- Fixed wrong bracketing for C++ in include/schily/utypes.h 73 74- Added a workaround for MSC to include/schily/utypes.h 75 MSC believes that a 32 bit int and a 32 bit long are incompatible 76 and cannot even be casted, so we need to make uint32_t a n unsigned long 77 78- Let include/schily/archdefs.h define the standard processor #defines 79 when compiling with MSC. 80 81- New include file include/schily/windows.h works around the oddities 82 from the MSC include file windows.h 83 84- include/schily/stdio.h now defines popen()/pclose() to _popen()/_pclose() 85 if on WIN-DOS 86 87- include/schily/limits.h now defines PIPE_BUF 88 89- include/schily/utsname.h now defines struct utsname for our MSC uname() 90 emulation. 91 92- New autoconf tests for memcmp() and memccpy() 93 94- New autoconf tests for spawn*(), cwait() process.h 95 96- New autoconf tests for pipe() / _pipe() 97 98- include/schily/unistd.h now defines pipe() via _pipe() on WIN-DOS 99 100- Many rewritten autoconf tests in order to work around the oddities 101 from MSC (cl). 102 103- New functions zerobytes() and cmpmbytes() added to libschily. 104 105- Fixed libschily/gettimeofday.c to compile with MSC 106 107- Fixed libschily/sleep.c to compile with MSC 108 109- Fixed libschily/usleep.c to be empty with MSC as sleep.c includes 110 a working usleep() 111 112- libschily/gethostname.c enhanced to support Win-DOS with cl.exe 113 114- libschily/uname.c New function to support Win-DOS with cl.exe 115 116- libschily/dirent.c New functions: opendir()/closedir()/readdir() 117 to support Win-DOS with cl.exe 118 119- libschily/kill.c New function to support Win-DOS with cl.exe 120 121- libschily/stdio/fgetline.c 64 bit speedup by calling fgets() in 122 case that getc() is not a macro. 123 124- libschily/stdio/fgetstr.c 64 bit speedup by calling fgets() in 125 case that getc() is not a macro. 126 127- libshedit/include/stdio.h now includes a workaround against a 128 redefinition of FILE stdout, .... from wchar.h on MSC 129 130- libshedit/expand.c bsh/expand.c bsh/test.c sh/test.c now 131 include a workaround to the fact that MSC does not allow 132 to redefine compiler built-ins in case the optimizer is 133 in use 134 135- libscg/scsihack.c not also uses the ASPI/SPTI code from 136 libscg/scsi-wnt.c in case the code is compiled with MSC 137 138- Several changes in libscg to work around the problems from 139 using an original MSC windows.h: use <schily/windows.h> 140 instead. 141 142- smake now compiles with with MSC 143 144- cdrecord/cdrecord.c now checks for HAVE_KILL as MSC does not 145 define kill() 146 147- cdda2wav/cdda2wav.c was fixed to compile with MSC 148 149- cdda2wav/sndconfig.c was fixed to compile with MSC 150 151- bsh now only sets up signal handlers for existing signals to support MSC 152 153- change now only sets up signal handlers for existing signals to support MSC 154 155- p now only sets up signal handlers for existing signals to support MSC 156 157- patch now only sets up signal handlers for existing signals to support MSC 158 159- sccs now only sets up signal handlers for existing signals to support MSC 160 161- sdd now only sets up signal handlers for existing signals to support MSC 162 163- sformat now only sets up signal handlers for existing signals to support MSC 164 165- sh now only sets up signal handlers for existing signals to support MSC 166 167- star now only sets up signal handlers for existing signals to support MSC 168 169- star fixed a typo in dumpdates.c that hit on WIN-DOS because flock() is 170 not present 171 172- star now checks HAVE_FSYNC to support MSC 173 174- star::findinfo.c now checks whether stat.st_blksize exists 175 176- diff now compiles with MSC (signals & S_IF* from sys/stat.h) 177 178- ved now only sets up signal handlers for existing signals to support MSC 179 180New SCCS features: 181 182- This is the first step towards the upcoming SCCS v6, as this version of 183 SCCS starts to support features that are not understood by earlier versions 184 of SCCS. As the SCCS v6 file format is not yet fully defined and we don't 185 like to cdreate files by accident that are not understood by older versions, 186 you need to set the environment variable "SCCS_VERSION" to enable the new 187 features. 188 189- SCCS now supports to archive files as text files even when they contain 190 lines that start with ^A. This is a SCCS Version 6 feature. 191 If you like to use this feature now, you need to set the environment 192 variable "SCCS_VERSION". 193 194 To implement support for text lines that start with ^A, SCCS now 195 checks for "^A^Atext" at the beginning of a line in the history file and 196 extracts it as "^Atext". 197 198- SCCS now supports to archive files as text files even when their last 199 line does not end in a newline character. This is a SCCS Version 6 200 feature. If you like to use this feature now, you need to set the 201 environment variable "SCCS_VERSION". 202 203 To implement support for text lines at the end of a file that do not end 204 in a newline, SCCS now checks for "^ANtext" at the beginning of a line in 205 the history file and extracts it as "text". 206 207- SCCS now supports to archive files as text files even when they do not 208 end in a newline character. This is SCCS Version 6 feature. 209 If you like to use this feature now, you need to set the environment 210 variable "SCCS_VERSION". 211 212 213- SCCS bdiff bow is compatible to diff(1) and outputs a newline even after 214 files that do not end in a newline 215 216 217- The SCCS admin man page metter mentions the POSIX aspects for the 218 'i' and 'l' flags in the SCCS history files. 219 220- The SCCS admin page and the sccsfile man page now have a better 221 description for the 'j' flag (Joint Editing). 222 223- The sccsfile man page now has a complete description on how the 224 checksum is computed 225 226- The sccs man page now mentions that only the statisctics numbers 227 in the SCCS history files are limted in range from 00000 to 99999. 228 Other numbers are not limited to allow an arbitrary number of 229 deltas. 230 231- Struct "apply" was reduced in size from 3xint to 3xchar. This is 232 important with hundreds of thousands of deltas in order to limit 233 the SCCS memory footprint. 234 235- A bug in fmalloc.c (introduced by Sun in the past 20 years) has been 236 fixed: fmalloc() no longer mallocs sizeof (int) (typically 4) times 237 more memory than needed. This is important with hundreds of thousands 238 of deltas in order to limit the SCCS memory footprint. 239 240- Copying SCCS history now gives better performance as it no longer 241 calls a path name manipulation function for each written line in 242 a history file. 243 244- strchr() is used instead of the local function any() to speed up 245 things. 246 247- The zero() function was speed up with code from fillbytes.c to 248 speed up clearing large chunks of data. 249 250- The diff program now reads bigger chunks of data and uses memcmp() 251 to speed up operation. 252 253All speed ups indroduced in the past 6 months cause that this version 254of SCCS only consumes aprox. 1/3 of the CPU time from Sun SCCS. 255 256- SCCS now checks HAVE_FSYNC to support MSC 257 258 259Author: 260 261Joerg Schilling 262D-13353 Berlin 263Germany 264 265Email: joerg@schily.isdn.cs.tu-berlin.de, js@cs.tu-berlin.de 266 joerg.schilling@fokus.fraunhofer.de 267 268Please mail bugs and suggestions to me. 269