/* 7PLUS History: ============== : : : 930427: Official release of 7PLUS v2.10 v2.11 ----- 930504: utils.c, strip() Added {}|^ to list of illegal charaters. extract.c Filenames are now checked more thoroughly for illegal characters. 930506: encode.c Minor changes due to incompatibilities with compiler on ATARI_ST. Input of hex values on the command line won't work on the Atari due to a bug in the compiler. Suggested by DL1XAO (Atari only) { When the '-TB'-Option has been issued without specifying the format file's name, 7PLUS first tries to find a format file called 'name.def', where 'name' is the unencoded file's name without extension, e.g.: If encoding 'test.dat', 7PLUS will search for 'test.def' (note: 'test.def' MUST reside in the same directory as 'test.dat'). If 'name.def' is found, '-J' is automatically activated. In case it is not found, 7PLUS will use the default format file 'format.def'. } v2.12 ----- 940103: encode.c When the last part was re-encoded using the '-R' option, the result was garbage, because the blocksize for the last part was calculated first and then used to fseek to the beginning of the last part. 940104: New option added: '-Q' ALL screen output is redirected to 7PLUS.OUT. '-Y' is automatically enabled as well. New option added: '-G' Create all files in same dir as input files. Example: 7PLUS E:\TEMP\FFR -G 7PLUS will put FFR.EXE in E:\TEMP\. In case an error occured, the ERR file will be put there. The '-G' option can be used with any action (decode, extract, correct, etc.) with the exception of encoding, because the destination dir has to be specified (it does not hurt to use '-G' when encoding, though, because it is simply ignored then): 7PLUS E:\UTIL\FFR.EXE E:\TMP\ 7PLUS will encode FFR.EXE and put the resulting files in E:\TEMP\. Never forget to conclude the destination dir with a '\'!!! Reason for '-G' option: Sysops, who use 7PLUS to decode 7PLUS files on their BBS by remote operation and can't change the current dir to the one containing the 7PLUS files need this option. Without the '-G' option it meant a lot of copying around on the BBS to get work done. v2.13 ----- 940105: When extracting files from a savefile, the extracted filenames were not displayed (it worked when '-G' was issued). Fixed. v2.14 ----- 940109 '-R' option: A range of parts to be encoded can now be specified with the '-R' option. Examples: 7PLUS E:\UTIL\FFR.EXE -R 2-3 <--- re-encode part 2 through 3. 7PLUS E:\UTIL\FFR.EXE -R 2- <--- re-encode beginning with part 2. 7PLUS E:\UTIL\FFR.EXE -R -3 <--- re-encode up part 3 including. This was necessary to allow better use of 7PLUS together with TheBox's file server EL. v2.15 ----- 940308 encode.c: Had to change this: after[0] = ((long)(curline & 0x1ff) << 14) | (csequence & 0x3fff); to this: after[0] = (long)(curline & 0x1ff) << 14; after[0] |= (csequence & 0x3fff); because some compilers seem to handle the hirarchy of unary operators differently (Turbo C++ v3). v2.16 ----- 951212 '-#'-option did not put the correct filename into 7PLUS.FLS. Fixed. v2.17 ----- 960212 When decoding, the checksum of the header was not finally checked. I did not notice this, because the single byte correction functioned correctly. This bug allowed manipulation of the sort that when decoding on drive C:, COMMAND.COM or any not write protected file in the root dir could be overwritten! > That bug is fixed. Make sure, this version is run on ALL automatic < > servers!!!!!!!! Get rid of older versions. Quick! < Since older 7PLUS versions without checksums are also open to that special case of manipulation, 7PLUS will no longer decode these files. 970216 Minor adaptations made by DK2HD for MAC-compatability. No changes in regards to other systems. v2.18 ----- 970403 Found a severe bug that causes infinite writing to metafile and inconsistancies in error list in ERR files: In DECODE.C: j = (int) i>>5; <--- Wrong! j = (int) (i>>5); <--- That's better! 970407 Added -KA option. For reasons of speed in crowded dirs -K will stop erasing when 10 files in consecution are missing (only with ERR & COR). Erasing can be forced to continue with the -KA option. 970414 When trying to encode a file that has a filelength of 0 (what for?), 7PLUS generated a division by zero error. 7PLUS will now output an error msg and quit correctly with return code 20. When the LAST line of the LAST part was corrupted AND the length of the unencoded file was greater than 2^15-1 AND the number of valid bytes in that line was different than 62, correction would sporadically produce an incorrect result. Fixed. 970418 This was more an inconvenience than a bug: When specifying a searchpath/destination dir, a path separator will automatically be added, if necessary. 7plus test.zip \temp 7plus test.zip \temp\ have the same effect: encode test.zip and place the resulting files in \temp. 970422 Final adaptations for Linux compatability. 970507 Found another bug related to the 970403 bug. 970514 Added return code 21... 'Not enough mem' 970515 With VERY large files (more than 3MB), 7PLUS sometimes put the wrong part number into the ERR files in case of an error. Fixed. 970519 7PLUS would not allow ':' in Linux filenames. Fixed. 970722 '-SYSOP': When the last part had the same number of lines than the other parts, 7PLUS would sometimes ignore it and produce a corrupted decoded file. v2.19 ----- 980122 '-U': For server use only. Define name of files created during encoding and COR compilation. Example: 7plus test.zip -u c:\box\import\dg1bbq will create c:\box\import\dg1bbq.7pl or c:\box\import\dg1bbq.p01-pxx When used with -J, the upload file's name will be c:\box\import\dg1bbq.upl. Also, when used with -#, 7plus.fls will be named c:\box\import\dg1bbq.fls in accordance with above example. Its content will be the same as if -u where not issued, though. Note: -J will not work when creating CORs! 980319 -r changed. Will now accept multiple ranges. Example: -r 1-3,4,10,33- -x changed. Extractor will not prompt for overwrite anymore, but will try to produce an alternate name by itself. If e.g. TEST.P01 is to be extracted and if the same file already exists, the extractor will save it as TEST1.P01 and the next time around as TEST2.P01 etc. Fixed a very old, but minor bug: When TEST.7PL as well as TEST.P01 etc. were present, the call "7plus test.7pl" would decode TEST.P01 etc instead. -tb fixed. 7PLUS would not look for test.def with the following call: 7plus test.zip -tb It should've looked for test.def first and if not found for format.def v2.20 ----- 990210 -sysop fixed. If part 1 was missing, the fist line of the next existing part was marked as missing, even though it was OK. This only happened on systems that allow long filenames. Since the long filename is only contained in part 1, 7PLUS would try to get it from the next available part, wich caused the error. 990212 Extracted the bug I previously inserted :-) Instead of line 0 of the next existing part, it was now line 0 of part 1 that was always reported missing. Fixed. 990214 -r in conjunction with -j would cause a write error (or an expection error on 32bit systems), because the name for the upload file was never genera- ted. Fixed. Minor bug in multiple ranges routine. -r -3 would only re-encode part 1. Only -r 1-3 would work correctly. Fixed. 990217 -# modified. Formally only for encoding. Now, it also produces a file named 7plus.fls when decoding is succesfull. File content: <8.3-filename> Reason: When 7PLUS is used for automatic decoding in a fileserver, it may happen that the server can't find the decoded file, because 7PLUS replaced the 8.3-filename with the full original filename. v2.21 ----- 990411 When using -TB together with -R, 7PLUS would produce empty files for the unselected parts. v2.22 ----- 991114 When creating a correction file, 7PLUS would misinterpret a given name for the original file for a searchpath. E.g.: 7plus file.err /dir1/dir2/file.original.zip 7PLUS would try to read original data from /dir1/dir2/file.original.zip/file.zip Fixed. 991120 Fixed the 991114 fix . v2.23 ----- 991206 Lines containing single byte corruptions were not always rebuilt when using -SYSOP option. Fixed. 991207 Added -SEND and -SEND2 options. When encoding a file named file.ext, the option -send "s dg1bbq @db0ver" will add the send command to the top of an encoded file like this: s dg1bbq @db0ver file.exe 01/02 -send2 "s dg1bbq @db0ver" does the same, except it adds a linebreak: s dg1bbq @db0ver file.exe 01/02 -send/-send2 should always be used in conjunction with -t (add msg termination string). If -TB is issued, -SEND/-SEND2 and -T are disabled! 991230 Minor changes to source code to make it compile properly on NetBSD (tnx to VK5ABN). 20000109 If the original file was already present before decoding AND it was read only, an exception error was cause. Fixed. Wonder why nobody ever noticed that? 20000110 In most situations (where it makes sense) 7PLUS will now create an alternative name, if the target file already exists. E.g.: If the target is FILE.ZIP, it will rename it to FILE$1.ZIP. It will not do that when decoding while using -Q. v2.24 ----- 20000208 Limited the max length of original filename to 60 chars. Otherwise, corruption of long filename line in first part could occur. Added -SIM option. When encoding, 7PLUS will only make a dry run and return the number of parts that would be created and the name of the parts in 7plus.fls. This option is meant for use with programs that act as a shell for 7PLUS. That way, they can check in advance how many parts would be created with given splitparms. This eliminates the need for a shell to do it's own calculations and in case of changes to the format of 7PLUS files in the future, this insures consitent results. Be sure to also check for error codes! Changed meaning of %o and %O in format definition. If will now output the full filename of the original file and not the truncated DOS filename. v2.25 ----- 20000320 There seems to be a broken 7PLUS generator out there producing files that will cause a division by zero error when trying to decode them. Because all the checksums are correct, 7PLUS trusted the data and thus did not double check some info in the headers. There never was a need to, untill now. Fixed. 7PLUS will now be unaffected by these corrupt files. Remember: Pobody's nerfect and Murphy never sleeps... 73s, Axel. DG1BBQ @DB0VER.#NDS.DEU.EU dg1bbq@gmx.de Homepage: http://home.t-online.de/~dg1bbq */