******************************** v3.10, 16 Aug 90 - No significant changes. Two new systems added to Makefile. - Dif file required for Coherent installation in coherent.msg. - Dif files required for Atari (Turbo C v2.0) in atari.zip (atari.hdr is msg header for initial uuencoded transfer). These dif files are for an earlier version (v3.06?) and may need some tweaking to patch smoothly. They (and the Coherent patches) have NOT been installed. Version 3.10 will be the current "fielded" version until further notice. No patches to earlier versions will be accepted. The Info-ZIP workgroup are currently working on a new beta-test version that may or may not involve the following "features": - default lowercasing of extracted member file names - IFDEFs for incremental vs. new "monster" compile - Integration of the Atari (Turbo C) patches. - Use of central directory for member listing and more. - Use of central directory "created by" byte to make "intelligent" guesses as to filename and/or text conversion. (No there were no versions 3.08 or 3.09: we went right from v3.07 (last beta test) to v3.10.) ******************************** v3.07, 30 Jul 90 - No changes. Just a new addition to the Makefile (see below). Changing internal version number to v3.07 and updating archives at SIMTEL20. Things have been stable for a LONG time, so it's time to send a tar to the uunet boys for archiving over there. >today I picked up version 3.05 of unzip and got it running OK in very >little time on out IBM RT 6150 under AIX 2.2.1. The only thing necessary >was to add a line: >rtaix: _16zmem # IBM RT 6150 under AIX 2.2.1 >in the Makefile, and does the rest. > >Erik-Jan Vens >Interdisciplinary Center for the development of Computer Coaches and >Expertsystems >University of Groningen, the Neths. >Vens@Rug.Nl ********************************* v3.06, 26 May 90 - Patches to fix a bug that sneaked in to the header parsing in unzip.c. - New system (68000-type), plus small tweaks to Makefile. - Minor changes to "usage" display. ********************************* v3.05, 25 May 90 - Bill Davidsen tweaked mapname.c to solve some problems. Then he cleaned up Makefile to solve the identical-system problems. - He also did a hack on unzip.c to provide "ask before overwrite". (Bill's a busy lad, ne?) - James Dugal provided a patch for skip_to_signature to solve a problem with his Pyramid system (once again, unsigned char-related). He also added a small eof-trapping routine during signature scan. - Several requests to break up unzip.c into smaller pieces (but by function or logically, not just arbitrarily by line numbers or whatever). We can do that! Now have separate files for file I/O (file_io.c), the different unzip algorithms (unimplod.c, [unreduce.c, unshrink.c), and one big unzip.h with lots of defines, etc. Makes unzip.c smaller, anyway. crc32.h is gone now .. its two lines are incorporated in unzip.h ********************************* v3.04, 22 May 90 - Commented out ae_buf() in ascec.c (no longer used) with Warner Losh's changes to CR/LF conversion. - Trying out Warner's patch to enable unzip to work with self-extracting ".EXE" files (via bruteforce feeling about for the first file header). He warns this byte-by-byte read will be sloooow .. yeah, sure, we could do something flash with a big buffer read .. but who needs it? How often will we be processing self-extracting file headers, after all? - Bo Kullmar (all the way from Sweden!) had the nicest patch for the changed help display, so his shall be implemented. (How's instant world fame feel, Bo?) - Got two submissions of the same kinda fix for the duplicate system requirement problem (crudely fixed in v3.03). Nice, elegant, except it don't work on my Vax BSD system! Ah well, I installed the fix anyway in Makefile. If you have problems, examine the vaxbsd portion to see if you might have to drop back to brute force. ******************************************* - v3.03 Reconciliation of earlier patches from Warner Losh, plus fix to make stat() work. New Makefile with separate commands for each different system (too many makes didn't like things like wombat: # thanks to Joe Isuzu sun4: # cc etc. etc. ) unzip will NOT work on self-extracting .EXE files (a problem with how it looks for the first file header). The file unzp303s.arc (source) will be distributed via EMail to Info-ZIP members. (It'll include the latest Makefile, all source files, plus this message.) No significant changes to documentation, so no separate distribution of that stuff via a separate unzp303d.arc. As usual, EVERYTHING will be in unzip303.arc and unzip303.tar-Z at SIMTEL20. **************************************** - v3.02 continued Date: Tue, 15 May 90 22:19:39 MDT From: imp@Solbourne.COM (Warner Losh) To: info-zip@wsmr-simtel20.army.mil Subject: Patch for .exe problem. Here is a patch for the problem that was reported about not being able to extract a zip file named foo.exe. I don't know of any problems with this patch. It should work on any system that knows about the stat command. If you suspect this patch is causing you problems, then just add -DREALOLDSTUFF to your CFLAGS line in the Makefile and it will compile the old way. Warner Losh imp@Solbourne.COM [Applied via patch to v3.02. Actual patch is in patchexe.pch file. Since v3.02 hasn't REALLY been fielded yet, no change to version number. This patch, with its use of the stat() function, didn't want to work on my BSD 4.3 system (problems with stat() always returning a -1, not being able to define a struct stat variable, etc.). Replaced the "file-existence" testing with the access() function and it worked just fine! You can now direct unzip to any target file at all. unzip will check for that file's existence, and if not found, will add a ".zip" and try again. That oughtta take care of LEVELS.ZIP, selfextr.exe, and so forth. My system is now working perfectly, using various combinations of the -a and -m switch. No CRC errors, file end-of-line conversion is working well, etc. 19 May 90 David Kirschbaum Toad Hall ] *********************************************** -v 3.02 Date: Wed, 9 May 90 11:27:39 MDT To: info-zip@wsmr-simtel20.army.mil Subject: Patch for the -a CRC problem. From: imp@Solbourne.COM (Warner Losh) Greetings... since it looks like David is going away for a while, here are the context diffs to 3.0 to make it quit bitching about CRC problems when it unpacks incorrectly. I didn't patch the existing code. I rewrote it so that all writes go though FlushBuffer which calls WriteBuffer which might call dos2unix to map to just . Note: I think I broke EBCDIC in the process. Lemme know what you think of these patches. They worked for me a dozen times on this sun4 I have. I'd be interested in knowing where else they work. Oh yah, if the last character of the buffer is , then weird things will happen (more than likely it will do nothing). There is a bug that in what I sent to David that causes a buffer overflow (dos2unix looks at too many character) in reading (but not in writing. The one line fix is to add i++ where you see it in this context diff. Warner Losh imp@Solbourne.COM [Applied to v3.01, producing v3.02. Patch itself is in the file losh.pat David Kirschbaum Toad Hall ] *************************************** - v3.01 From: Bo Kullmar As far as I understand there is a little bug in version 3.0 with option -a. The resulting file will be one character to long compared to a file that is converted separately. It is due to the fact that the first element in the buffer is 0 and the ocount goes from 1 to ... This does not solve the bug with reporting wrong CRC. The CR conversion must only be performed if there is a CR+LF. Not if there only is a CR. This patch fixes this also. I noticed that the text for the -a option is worg. It does not change CR to space, it removes CR. Toad Hall: Added the HP 9000/HP-UX makerules to Makefile Consolidated several system makerules to clean up a little. ****************************************** - v3.0 Moderate friendly pressure from Keith Petersen, Keeper of the Archives at SIMTEL20, to "get this sucker out the door" (or words to that effect). SHOT. OUT. (And thanks to all the contributors of Info-ZIP! Nice work, people!) David Kirschbaum Coordinator (?) Info-ZIP ****************************************** * * v2.0j, 25 Apr 90 * After MUCH discussion, adding a "-m" switch to map extracted member * filenames to lower case (if upper case). * (Scan for "mapped_name" function and "mflag" switch.) * Recently revealed problem re MS-DOS PKZIP'ed files and paths: * Now stripping all paths from member filenames. * (All this stuff in mapname.c) * David Kirschbaum * Toad Hall * * v2.0i, around 20 Apr 90 * Changes to Makefile only. Distributed via EMail, SIMTEL archives updated. ************************************ * 13 Apr 90 v2.0h General synopsis of changes from v2.0g to 2.0h: From Bill Davidsen (davidsen@crdos1.crd.GE.COM -or- uunet!crdgw1!crdos1!davidsen) Fixed Makefile up. Also, the inclusion of types.h for O_BINARY is wrong... this is DOS stuff, not needed in UNIX. I put #ifndef UNIX around it to keep it from causing trouble. All of the code which uses it is also ifndef'd, so this can't break anything. [Looks like it's MTS stuff also.] Removed a duplicate define. Fixed the -a switch: As implemented it totally breaks C programs being unzipped from DOS to UNIX. The option changes the return to a blank instead of deleting it. Since C requires that continuation be noted with a \ *as the last character on a line* this breaks the program. Some editors don't strip or ignore trailing blanks, and when reformatting paragraphs this results in two blanks between words, or even the lines not being joined. In short, this is a hack which can badly mangle the files on which it's used. I will look to see if the logic will support simply deleting the returns. Proper logic should be to delete a return only if it is followed by a newline, since any other logic breaks embedded returns used for overstrike. ... Well, it turned out not to be too hard to fix the -a option to do the right thing and simply remove the offending returns. I didn't look too closely, but I'm not sure this ever worked, since the test for return was made after the character had been translated into EBCDIC. Perhaps the table lookup turned the return into a space. After testing on sun, convex, encore, stellar, and xenix, here are the final diffs I had to make to get 20g working. Would someone please test them on a EBCDIC machine? [Diffs were removed, but they affected: Makefile: unzip.c: ascebc.c: ] Still doesn't seem to work on 64 bit machines. ******************* And from Forrest Gehrke, for his VAX SysV system: Ok, here's the story for VAX SysV: SysV chokes on an #include David added, to wit: [NOT me!] #include // v2.0g Chitra says MTS needs this for O_BINARY // So, that line will have to be handled as an #ifdef MTS conditional and a Makefile rule change added to have that compiler conditionally include that file. [We've made it an #ifdef MTS. However, I'm waiting for an authentic MTS hacker to produce and authenticate the requirement with a new Makefile. ] As to the Makefile, I have found that the recipe provided for "encore" does the job. I have added an identical layout with the exception of a "system" label called vaxsysV A copy of that Makefile is included herewith: [Eaten in the mail] ********************* Above comments consolidated from a number of Info-ZIP messages in prep for the v2.0h release. David Kirschbaum kirsch@usasoc.soc.mil, 13 Apr 90 ************************************************* * 7 Apr 90 v2.0g * - Incorporated Allan Bjorklund's -a buffer bug fix. * The old contents of outbuf are used by unzip to extract the next * block of data. The fix involved setting up an auxillary buffer to hold * the translated material so that outbuf could be left alone. * Just scan for "outout" to see where he (and I) made the changes. * (I tightened up his code a little in FlushOutput(), whether to * allocate outout at all, when/how to output from outout ). * - Found and fixed the couple of bogus UWORDs that sneaked in during a * global search-and-replace (like "UWORDp"). * - Took a couple Sun-related error (mine) out of Makefile. * * 03/28/90 v2.0f * - Using a REAL complicated Makefile that sets makerules for all sorts * of different systems. * See Makefile to see if this'll compile on your system. * - Added Allan Bjorklund's patch to enable EBCDIC/EOL conversion * during output to stdout. * - Changed the typedef "word" to UWORD throughout. (Known conflict on * Crays.) * - Changed "memcpy()" and "memset()" throughout to "zmemcpy()" and * "zmemset()". This is for the situation where some systems' library * memcpy() and/or memset() don't work properly .. or don't exist at all. * A compile define ("-DZMEM") enables use of our own functions * (in zmemcpy.c and zmemset.c). Members suggested we not use the * ANSI-defined function names in that case. * If you have NOT used the "-DZMEM", no problem .. the library's * memcpy() and memset() will be used. * * 03/23/90 v2.0e * - Allan Bjorklund's tweaks: (allanb@us.cc.umich.edu) * I've also added another switch to the program for ASCII->EBCDIC * conversion. If your wondering why I would do such a thing, it * is because I manage two archives sites. One on the SUN I'm working on * now (terminator) and one on an IBM 3090-600E (um{ub}mts.cc.umich.edu). * After I had gotten the code for the ascii->ebcdic working, I rearranged * the defines so the for people not using ebcdic on their system could * use it to convert 0x0D to 0x20. I find it real annoying to see ^M * at the end of the lines of text while in vi. The option can be invoked * with -a. * * Toad Hall Notes: * Alan's changes include a new cmdline "-a" flag, a new "ascebc.c" file, * and a new "Makefile". Define "EBCDIC" to enable the ebcdic conversion. * (And I'd be REAL careful if I were you about just which files you * used that "-a" switch for CR/LF -> LF conversion in a Unix system.) * * Re other portability problems, turns out the problem is in the memcpy() * routines (along with general confusion about other compile defines. * We'll have a separate doc ref how to compile on different systems. * David Kirschbaum * * 03/20/90 D. Kirschbaum v2.0d * - Found a bug down in FillBitBuff() (introduced in v2.0c). * Fixed. While I was hunting that, I changed a bunch of * long variables to unsigned longs (AKA longint) just to * be nice and consistent. * The structures seem to work fine now with the NOTINT16 * compiler flag enabled. Strangely, on my VAX 11-780, * the first structure in each pair (the one with the longs) * is two bytes longer than the byte-defined structure. * Your mileage may vary (enable DEBUG to see what I mean). * - davidsen@crdos1.crd.ge.com cleaned up a bunch of the * ifdef's, and re-enabled the LONGI macros. He also * picked up an unnecessary address override. * * 03/19/90 D. Kirschbaum v2.0c * - Many problems with structures (since different machines * align words and longs differently, have different sizes * of words and longs, etc. * Fixing by reading our structures into a working * structure that's ALL bytes, and then processing each * and every bloody word and long into a separate structure * properly defined as words, longs, etc. * Define "NOTINT16" to make this happen. * (With that above define, it STILL compiles and runs fine * with Turbo C.) * NO idea what'll happen with "bigendian" processors! * * 03/16/90 D. Kirschbaum v2.0b Hacked back to Turbo C v2.0 and BSD 4.3 * - Added a bunch of Turbo- and BSD 4.3-unique (I guess) * #include <>'s. * - Prototyped everything to reduce Turbo C warnings. * - Removing the Daylight Savings Time adjustment for file * times. (They're throwing the file time off by an hour * on my BSD system.) * - Changed target .zip filename ".zip" appending * so it can deal with paths like "..\subdir\filename". * (Original would catch the first "." and not add the zip.) * - Including .TC and .PRJ files for Turbo C compiles. * - Including Makefile.BSD for Unix BSD compiles. * (Rename to Makefile and "make unzip".) * MUCH better version than the horrible I've been hacking at * for the past couple of months. Everyone throw that old * unzip23 away! * Compiles just fine on my DOS 3.1 clone, Turbo C v2.0, * and on my Vax 11-780, BSD 4.3. * David Kirschbaum * Toad Hall * * 12/14/89 C. Mascott 2.0a adapt for UNIX * ifdef HIGH_LOW swap bytes in time, date, CRC, * version needed, bit flag * implement true s-f trees instead of table * don't pre-allocate output file space * implement -t, -v, member file specs * buffer all input * change hsize_array_integer to short * overlap storage used by different comp. methods * speed up unImplode * use insertion sort in SortLengths * define zipfile header structs in a way that * avoids structure padding on 32-bit machines * fix "Bad CRC" msg: good/bad CRCs were swapped * check for write error on output file * added by John Cowan : * support -c option to expand to console * use stderr for messages * allow lowercase component name specs *