home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume31 / zip19 / patch01 / patch1.1 next >
Encoding:
Text File  |  1992-09-02  |  24.5 KB  |  689 lines

  1. diff -cr zip19/Where zip19p1/Where
  2. *** zip19/Where    Thu Aug 20 18:55:08 1992
  3. --- zip19p1/Where    Wed Aug 26 15:13:30 1992
  4. ***************
  5. *** 1,8 ****
  6.   __________________________________________________________________________
  7.   
  8. !   This is the Info-ZIP file ``Where,'' last updated on 20 August 1992.
  9.   __________________________________________________________________________
  10.   
  11.   
  12.     SITE OWNERS:  If you're listed in here but the information is not
  13.     correct (or if you're a big site but aren't listed at all), please
  14. --- 1,11 ----
  15.   __________________________________________________________________________
  16.   
  17. !   This is the Info-ZIP file ``Where,'' last updated on 26 August 1992.
  18.   __________________________________________________________________________
  19.   
  20. +   Note that some ftp sites may not yet have the latest versions of
  21. +   zip and unzip when you read this. The latest versions are always on
  22. +   the comp.sources.misc archives.
  23.   
  24.     SITE OWNERS:  If you're listed in here but the information is not
  25.     correct (or if you're a big site but aren't listed at all), please
  26. ***************
  27. *** 13,25 ****
  28.   utilities (on some ftp sites, the .zip files may have a .zoo equivalent
  29.   in zoo 2.10 format):
  30.   
  31. !     zip19.zip    Zip 1.9 (includes zipnote and zipsplit)
  32. !     zip19.tar.Z    ditto, compress'd tar format
  33.   
  34.       unzip50.zip    UnZip 5.0 (includes zipinfo and funzip)
  35.       unzip50.tar.Z    ditto, compress'd tar format
  36.   
  37. !     wunz12sr.zip    WizUnZip 1.2 support files for Windows 3.1, UnZip 5.0
  38.   
  39.       zcrypt19.zip    encryption/decryption support (includes zipcloak)
  40.   
  41. --- 16,28 ----
  42.   utilities (on some ftp sites, the .zip files may have a .zoo equivalent
  43.   in zoo 2.10 format):
  44.   
  45. !     zip19p1.zip    Zip 1.9 (includes zipnote and zipsplit), patch level 1
  46. !     zip19p1.tar.Z    ditto, compress'd tar format
  47.   
  48.       unzip50.zip    UnZip 5.0 (includes zipinfo and funzip)
  49.       unzip50.tar.Z    ditto, compress'd tar format
  50.   
  51. !     wunz13sr.zip    WizUnZip 1.3 support files for Windows 3.1, UnZip 5.0
  52.   
  53.       zcrypt19.zip    encryption/decryption support (includes zipcloak)
  54.   
  55. ***************
  56. *** 27,33 ****
  57.   
  58.       UnzpHist.zip    changes history of UnZip, back to 2.0
  59.   
  60. !     zip19x.zip      MSDOS executables and docs for zip, zipnote, zipsplit
  61.       unzip50.exe     MSDOS executable for unzip
  62.   
  63.       zip19_16.zip    OS/2 1.x 16-bit executables and docs
  64. --- 30,36 ----
  65.   
  66.       UnzpHist.zip    changes history of UnZip, back to 2.0
  67.   
  68. !     zip19p1x.zip    MSDOS executables and docs for zip, zipnote, zipsplit
  69.       unzip50.exe     MSDOS executable for unzip
  70.   
  71.       zip19_16.zip    OS/2 1.x 16-bit executables and docs
  72. ***************
  73. *** 48,55 ****
  74.   
  75.   ftp sites for the US-exportable sources and executables.  Look for
  76.   the file names given above in the following directories.  Some sites
  77. ! like to use slightly different names, such as zip-1.9.tar-z instead
  78. ! of zip19.tar.Z.
  79.   
  80.       wuarchive.wustl.edu:/packages/compression/...
  81.       wuarchive.wustl.edu:/mirrors/misc/unix/...
  82. --- 51,58 ----
  83.   
  84.   ftp sites for the US-exportable sources and executables.  Look for
  85.   the file names given above in the following directories.  Some sites
  86. ! like to use slightly different names, such as zip-1.9p1.tar-z instead
  87. ! of zip19p1.tar.Z.
  88.   
  89.       wuarchive.wustl.edu:/packages/compression/...
  90.       wuarchive.wustl.edu:/mirrors/misc/unix/...
  91. diff -cr zip19/deflate.c zip19p1/deflate.c
  92. *** zip19/deflate.c    Tue Aug 18 11:54:28 1992
  93. --- zip19p1/deflate.c    Tue Aug 25 10:49:40 1992
  94. ***************
  95. *** 459,465 ****
  96.    * Fill the window when the lookahead becomes insufficient.
  97.    * Updates strstart and lookahead, and sets eofile if end of input file.
  98.    * IN assertion: lookahead < MIN_LOOKAHEAD && strstart + lookahead > 0
  99. !  * OUT assertion: at least one byte has been read, or eofile is set.
  100.    */
  101.   local void fill_window()
  102.   {
  103. --- 459,467 ----
  104.    * Fill the window when the lookahead becomes insufficient.
  105.    * Updates strstart and lookahead, and sets eofile if end of input file.
  106.    * IN assertion: lookahead < MIN_LOOKAHEAD && strstart + lookahead > 0
  107. !  * OUT assertions: at least one byte has been read, or eofile is set;
  108. !  *    file reads are performed for at least two bytes (required for the
  109. !  *    translate_eol option).
  110.    */
  111.   local void fill_window()
  112.   {
  113. ***************
  114. *** 470,476 ****
  115.       /* If the window is full, move the upper half to the lower one to make
  116.        * room in the upper half.
  117.        */
  118. !     if (more == 0) {
  119.           /* By the IN assertion, the window is not empty so we can't confuse
  120.            * more == 0 with more == 64K on a 16 bit machine.
  121.            */
  122. --- 472,483 ----
  123.       /* If the window is full, move the upper half to the lower one to make
  124.        * room in the upper half.
  125.        */
  126. !     if (more == (unsigned)EOF) {
  127. !         /* Very unlikely, but possible on 16 bit machine if strstart == 0
  128. !          * and lookahead == 1 (input done one byte at time)
  129. !          */
  130. !         more--;
  131. !     } else if (more <= 1) {
  132.           /* By the IN assertion, the window is not empty so we can't confuse
  133.            * more == 0 with more == 64K on a 16 bit machine.
  134.            */
  135. ***************
  136. *** 477,486 ****
  137.           memcpy((char*)window, (char*)window+WSIZE, (unsigned)WSIZE);
  138.           match_start -= WSIZE;
  139.           strstart    -= WSIZE;
  140. !         /* strstart - WSIZE = WSIZE - lookahead > WSIZE - MIN_LOOKAHEAD
  141. !          * so we now have strstart > MAX_DIST:
  142.            */
  143. !         Assert (strstart > MAX_DIST, "window slide too early");
  144.           block_start -= (long) WSIZE;
  145.   
  146.           for (n = 0; n < HASH_SIZE; n++) {
  147. --- 484,493 ----
  148.           memcpy((char*)window, (char*)window+WSIZE, (unsigned)WSIZE);
  149.           match_start -= WSIZE;
  150.           strstart    -= WSIZE;
  151. !         /* strstart - WSIZE >= WSIZE - 1 - lookahead >= WSIZE - MIN_LOOKAHEAD
  152. !          * so we now have strstart >= MAX_DIST:
  153.            */
  154. !         Assert (strstart >= MAX_DIST, "window slide too early");
  155.           block_start -= (long) WSIZE;
  156.   
  157.           for (n = 0; n < HASH_SIZE; n++) {
  158. ***************
  159. *** 494,508 ****
  160.                * its value will never be used.
  161.                */
  162.           }
  163. !         more = WSIZE;
  164.           if (verbose) putc('.', stderr);
  165. -     } else if (more == (unsigned)EOF) {
  166. -         /* Very unlikely, but possible on 16 bit machine if strstart == 0
  167. -          * and lookahead == 1 (input done one byte at time)
  168. -          */
  169. -         more--;
  170.       }
  171.       n = read_buf((char*)window+strstart+lookahead, more);
  172.       if (n == 0 || n == (unsigned)EOF) {
  173.           eofile = 1;
  174. --- 501,510 ----
  175.                * its value will never be used.
  176.                */
  177.           }
  178. !         more += WSIZE;
  179.           if (verbose) putc('.', stderr);
  180.       }
  181. +     /* At this point, more >= 2 */
  182.       n = read_buf((char*)window+strstart+lookahead, more);
  183.       if (n == 0 || n == (unsigned)EOF) {
  184.           eofile = 1;
  185. diff -cr zip19/fileio.c zip19p1/fileio.c
  186. *** zip19/fileio.c    Tue Aug 18 12:34:34 1992
  187. --- zip19p1/fileio.c    Wed Aug 26 11:53:38 1992
  188. ***************
  189. *** 1544,1551 ****
  190.   #ifdef S_IFLNK
  191.                linkput ? lstat(name, &s) :
  192.   #endif
  193. !              SSTAT(name, &s)) != 0 /* || (s.st_mode & S_IFDIR) != 0 */ )
  194. !              /* Accept about any file kind except directories */
  195.       return 0;
  196.   
  197.     if (a != NULL)
  198. --- 1544,1553 ----
  199.   #ifdef S_IFLNK
  200.                linkput ? lstat(name, &s) :
  201.   #endif
  202. !              SSTAT(name, &s)) != 0)
  203. !              /* Accept about any file kind including directories
  204. !               * (stored with trailing / with -r option)
  205. !               */
  206.       return 0;
  207.   
  208.     if (a != NULL)
  209. ***************
  210. *** 1587,1594 ****
  211.   
  212.   int deletedir(d)
  213.   char *d;                /* directory to delete */
  214. ! /* Delete the (empty) directory *d.  Return the result of rmdir(), delete(),
  215. !    or system(). */
  216.   {
  217.   #ifdef MACOS
  218.     warn("deletedir not implemented yet", "");
  219. --- 1589,1597 ----
  220.   
  221.   int deletedir(d)
  222.   char *d;                /* directory to delete */
  223. ! /* Delete the directory *d if it is empty, do nothing otherwise.
  224. !    Return the result of rmdir(), delete(), or system().
  225. !  */
  226.   {
  227.   #ifdef MACOS
  228.     warn("deletedir not implemented yet", "");
  229. diff -cr zip19/history zip19p1/history
  230. *** zip19/history    Thu Aug 20 20:04:56 1992
  231. --- zip19p1/history    Wed Aug 26 15:31:18 1992
  232. ***************
  233. *** 908,913 ****
  234. --- 908,926 ----
  235.   8.  Fixed vms/vms_zip.rnh
  236.   9.  Fixed init_upper() in util.c and os2zip.c (Kai-Uwe)
  237.   
  238. + ------------------------ Aug 26  1992   version 1.9p1 ------------------------
  239. + This is official patch 1 for zip 1.9, not a beta version.
  240. + 1.  Simplified makefile entry for convex (Rafal Maszkowski)
  241. + 2.  Do not use 'const' even for djgcc (Onno van der Linden)
  242. + 3.  Use gcc in linux makefile entry (Arnt Gulbrandsen)
  243. + 4.  Fix serious bug in -l option (file truncated).
  244. + 5.  Fix stack problem for OS/2 IBM-C (Kai-Uwe)
  245. + 6.  Fix serious bug in zipup.c sometimes causing file truncation to zero bytes
  246. +     or internal error (Timo Salmi and Robert Tobler)
  247. + 7.  Do not unlink() directories when running as root (Charles Hannum)
  248. + 8.  Fix msdos/makefile.bor and msdos/makefile.gcc (Onno van der Linden)
  249.   
  250.   Things to check or to be done (see also BUGS section in zip.1):
  251.   
  252. diff -cr zip19/infozip.who zip19p1/infozip.who
  253. *** zip19/infozip.who    Thu Aug 20 19:46:40 1992
  254. --- zip19p1/infozip.who    Wed Aug 26 15:32:02 1992
  255. ***************
  256. *** 30,35 ****
  257. --- 30,36 ----
  258.   Hunter Goatley          goathunter@WKUVX1.BITNET        Vax VMS
  259.   Arnt Gulbrandsen        agulbra@pvv.unit.no             Linux
  260.   David Gundlach          david@rolf.stat.uga.edu         Sun SS1+ SunOS 4.1
  261. + Charles Hannum          mycroft@ai.mit.edu              bug report
  262.   Bob Hardy               hardy@lucid.com                 Power C on MSDOS
  263.   Peter Jones             jones@mips1.info.uqam.ca        MIPS UMIPS 4.0
  264.   Kjetil W. J{\o}rgensen  jorgens@lise.unit.no            OSF/1
  265. ***************
  266. *** 44,51 ****
  267.   Michael D. Lawler       mdlawler@bsu-cs.bsu.edu         Mt.Xinu BSD 4.3 on VAX
  268.   Johnny Lee              johnnyl@microsoft.com           Microsoft C 7.0
  269.   David Lemson            lemson@ux1.cso.uiuc.edu         Sequent Dynix 3.0.17
  270. ! Onno van der Linden     vdlinden@fwi.uva.nl             SCO Unix 3.2.0
  271. !                                                         BC++ 3.0, djgcc 1.06
  272.   Warner Losh             imp@Solbourne.COM               packing algorithm help
  273.   John Lundin             lundin@urvax.urich.edu          VAX VMS
  274.   Igor Mandrichenko       mandrichenko@m10.ihep.su        VAX VMS
  275. --- 45,52 ----
  276.   Michael D. Lawler       mdlawler@bsu-cs.bsu.edu         Mt.Xinu BSD 4.3 on VAX
  277.   Johnny Lee              johnnyl@microsoft.com           Microsoft C 7.0
  278.   David Lemson            lemson@ux1.cso.uiuc.edu         Sequent Dynix 3.0.17
  279. ! Onno van der Linden     vdlinden@fwi.uva.nl             SCO Unix 3.2.0, 386/BSD
  280. !                                                         BC++ 3.0, djgcc 1.08
  281.   Warner Losh             imp@Solbourne.COM               packing algorithm help
  282.   John Lundin             lundin@urvax.urich.edu          VAX VMS
  283.   Igor Mandrichenko       mandrichenko@m10.ihep.su        VAX VMS
  284. ***************
  285. *** 77,86 ****
  286. --- 78,90 ----
  287.   Kai Uwe Rommel          rommel@informatik.tu-muenchen.de        OS/2
  288.   Jon Saxton              jrs@panix.com                   Microsoft C 6.0
  289.   Steve Salisbury         stevesa@microsoft.com           Microsoft C 6.0
  290. + Timo Salmi              ts@uwasa.fi                     bug report
  291.   Martin Schulz           martin@indian.cs.unb.ca         Atari ST
  292.   Dave Sisson             daves@vtcosy.cns.vt.edu         AIX 1.1.1 PS/2 & 3090
  293.   Ron Srodawa             srodawa@vela.acs.oakland.edu    SCO Xenix/386 2.3.3
  294.   Bertil Stenstr|m        stenis@heron.qz.se              HP-UX 7.0 HP9000/835
  295. + Paul Telles             paul@pubnet.com                 SCO Xenix
  296. + Robert F Tobler         rft@cs.stanford.edu             bug report
  297.   Antoine Verheijen    antoine@sysmail.ucs.ualberta.ca envargs fix
  298.   Arjan de Vet            devet@info.win.tue.nl           SunOS 4.1, MSC 5.1
  299.   Rich Wales              wales@cs.ucla.edu               SunOS 4.0.3 Sun-3/50
  300. diff -cr zip19/install.doc zip19p1/install.doc
  301. *** zip19/install.doc    Thu Aug 20 18:31:04 1992
  302. --- zip19p1/install.doc    Tue Aug 25 11:20:40 1992
  303. ***************
  304. *** 41,51 ****
  305.        cannot find _memset or _memcpy, try bsdold.  If you are using
  306.        System V Unix or SCO Unix, try sysv or sysv_old.  Also use sysv
  307.        on a Silicon Graphics (SGI) machine.  You can also cross-compile
  308. !      Zip for MSDOS under SCO 386 Unix using "make scodos".
  309.   
  310.        If none of these compiles, links, and functions properly on
  311. !      your Unix system, see the section BUGS below for how to get
  312. !      help.
  313.   
  314.        If the appropriate system was selected, then the executables
  315.        zip, zipnote and zipsplit will be created.  You can copy them
  316. --- 41,52 ----
  317.        cannot find _memset or _memcpy, try bsdold.  If you are using
  318.        System V Unix or SCO Unix, try sysv or sysv_old.  Also use sysv
  319.        on a Silicon Graphics (SGI) machine.  You can also cross-compile
  320. !      Zip for MSDOS under SCO 386 Unix using "make scodos". If you get
  321. !      error messages "constant expected" in deflate.c, add -DDYN_ALLOC
  322. !      to CFLAGS in your makefile entry.
  323.   
  324.        If none of these compiles, links, and functions properly on
  325. !      your Unix system, see the file Readme for how to get help.
  326.   
  327.        If the appropriate system was selected, then the executables
  328.        zip, zipnote and zipsplit will be created.  You can copy them
  329. diff -cr zip19/makefile zip19p1/makefile
  330. *** zip19/makefile    Wed Aug 19 18:17:38 1992
  331. --- zip19p1/makefile    Wed Aug 26 15:01:22 1992
  332. ***************
  333. *** 4,13 ****
  334.   all:
  335.       @echo ''
  336.       @echo 'Make what?  You must say what system to make Zip for--e.g.'
  337. !     @echo '"make bsd".  Choices: bsd, bsdold, sysv, sysv_old, sysv_386,'
  338. !     @echo 'dnix, linux, sun, sun_gcc, next10, next, hpux, cray, cray3,'
  339. !     @echo '3b1, att6300, zilog, scodos, aux, c120, convex, aix, minix,'
  340. !     @echo 'isc, ultrix, dec_osf1 and xos.'
  341.       @echo 'See the files install.doc and zip.doc for more information.'
  342.       @echo ''
  343.   
  344. --- 4,13 ----
  345.   all:
  346.       @echo ''
  347.       @echo 'Make what?  You must say what system to make Zip for--e.g.'
  348. !     @echo '"make bsd".  Choices: 3b1, aix, att6300, aux, bsd, bsdold,'
  349. !     @echo 'convex, cray, cray3, dec_osf1, dnix, hpux, isc, linux,'
  350. !     @echo 'minix, next, next10, scodos, sun, sun_gcc, sysv, sysv_386,'
  351. !     @echo 'sysv_old, ultrix, xenix, xos, zilog.'
  352.       @echo 'See the files install.doc and zip.doc for more information.'
  353.       @echo ''
  354.   
  355. ***************
  356. *** 120,126 ****
  357.   bsdold:
  358.       $(MAKE) zips CFLAGS="-O -DZMEM"
  359.   
  360. ! # AT&T System V, Rel 3.  Also SCO, Xenix, OpenDeskTop, ETA-10P*, SGI.
  361.   sysv_old:
  362.       $(MAKE) zips CFLAGS="-O -DDIRENT"
  363.   
  364. --- 120,126 ----
  365.   bsdold:
  366.       $(MAKE) zips CFLAGS="-O -DZMEM"
  367.   
  368. ! # AT&T System V, Rel 3.  Also SCO Unix, OpenDeskTop, ETA-10P*, SGI.
  369.   sysv_old:
  370.       $(MAKE) zips CFLAGS="-O -DDIRENT"
  371.   
  372. ***************
  373. *** 132,145 ****
  374.   sysv_386:
  375.       $(MAKE) zips CFLAGS="-O -DSYSV -DTERMIO -DASM" OBJA=match.o
  376.   
  377.   # DNIX 5.x: like System V but optimization is messed up.
  378.   dnix:
  379.       $(MAKE) zips CFLAGS="-DDIRENT"
  380.   
  381. ! # Linux 0.96a with GCC 2.12, dies with <= 2.11c. The problem with
  382. ! # builtin functions still has to be investigated.
  383.   linux:
  384. !     $(MAKE) zips CFLAGS="-O -fno-builtin -DSYSV -DTERMIO -DLINUX"
  385.   
  386.   # Sun OS 4.x: BSD, but use getdents(). If you have gcc, use 'make sun_gcc'
  387.   # instead since the code produced is better.
  388. --- 132,151 ----
  389.   sysv_386:
  390.       $(MAKE) zips CFLAGS="-O -DSYSV -DTERMIO -DASM" OBJA=match.o
  391.   
  392. + # SCO Xenix
  393. + xenix:
  394. +     $(MAKE) zips CFLAGS="-O -DSYSV -DTERMIO" LFLAGS2="-lx -s"
  395.   # DNIX 5.x: like System V but optimization is messed up.
  396.   dnix:
  397.       $(MAKE) zips CFLAGS="-DDIRENT"
  398.   
  399. ! # Linux 0.96a with GCC 2.12, dies with <= 2.11c. builtin functions are
  400. ! # disabled because '#define const' removes const from normal functions
  401. ! # but not builtin ones. And keeping const causes problems on other systems.
  402.   linux:
  403. !     $(MAKE) zips CFLAGS="-O -fno-builtin -DSYSV -DTERMIO -DLINUX" \
  404. !       CC=gcc BIND=gcc
  405.   
  406.   # Sun OS 4.x: BSD, but use getdents(). If you have gcc, use 'make sun_gcc'
  407.   # instead since the code produced is better.
  408. ***************
  409. *** 197,209 ****
  410.   aux:
  411.       $(MAKE) zips CFLAGS="-O -DTERMIO"
  412.   
  413. ! # Convex C120, OS 9.0, cc v. 4.0, no vectorization.
  414. ! c120:
  415. !     $(MAKE) zips CFLAGS="-O1 -rl -DCONVEX"
  416. ! # Convex C220, OS 9.0
  417.   convex:
  418. !     $(MAKE) zips CFLAGS="-O2 -rl -DCONVEX"
  419.   
  420.   # AIX Version 3.1 for RISC System/6000 
  421.   aix:
  422. --- 203,211 ----
  423.   aux:
  424.       $(MAKE) zips CFLAGS="-O -DTERMIO"
  425.   
  426. ! # Convex C-120, C-210, OS 9.0, cc v. 4.0, no vectorization used.
  427.   convex:
  428. !     $(MAKE) zips CFLAGS="-O"
  429.   
  430.   # AIX Version 3.1 for RISC System/6000 
  431.   aix:
  432. diff -cr zip19/revision.h zip19p1/revision.h
  433. *** zip19/revision.h    Thu Aug 20 17:59:20 1992
  434. --- zip19p1/revision.h    Wed Aug 26 14:46:28 1992
  435. ***************
  436. *** 14,20 ****
  437.    */
  438.   
  439.   #define REVISION 19
  440. ! #define REVDATE "Aug 20th 1992"
  441.   
  442.   /* Copyright notice for binary executables--this notice only applies to
  443.    * those (zip, zipcloak, zipsplit, and zipnote), not to this file
  444. --- 14,21 ----
  445.    */
  446.   
  447.   #define REVISION 19
  448. ! #define PATCHLEVEL 1
  449. ! #define REVDATE "Aug 26th 1992"
  450.   
  451.   /* Copyright notice for binary executables--this notice only applies to
  452.    * those (zip, zipcloak, zipsplit, and zipnote), not to this file
  453. diff -cr zip19/tailor.h zip19p1/tailor.h
  454. *** zip19/tailor.h    Tue Aug 18 13:14:44 1992
  455. --- zip19p1/tailor.h    Wed Aug 26 14:50:20 1992
  456. ***************
  457. *** 2,10 ****
  458.   
  459.   /* const's are inconsistently used across ANSI libraries--kill for all
  460.      header files. */
  461. ! #ifndef __GO32__
  462. ! #  define const
  463. ! #endif
  464.   
  465.   
  466.   /* Define MSDOS for Turbo C as well as Microsoft C */
  467. --- 2,8 ----
  468.   
  469.   /* const's are inconsistently used across ANSI libraries--kill for all
  470.      header files. */
  471. ! #define const
  472.   
  473.   
  474.   /* Define MSDOS for Turbo C as well as Microsoft C */
  475. ***************
  476. *** 53,58 ****
  477. --- 51,59 ----
  478.   #  define OS2
  479.   #endif
  480.   
  481. + #ifdef __convexc__
  482. + #    define CONVEX
  483. + #endif /* __convexc__ */
  484.   
  485.   /* Turn off prototypes if requested */
  486.   #if (defined(NOPROTO) && defined(PROTO))
  487. diff -cr zip19/zip.1 zip19p1/zip.1
  488. *** zip19/zip.1    Thu Aug 20 20:00:14 1992
  489. --- zip19p1/zip.1    Tue Aug 25 10:19:48 1992
  490. ***************
  491. *** 550,555 ****
  492. --- 550,558 ----
  493.   it only displays a warning "name not matched". A better warnign should be
  494.   given.
  495.   .PP
  496. + The option -e also forces -o (make zipfile as old as latest entry). This
  497. + is used to make brute force attacks on the password harder.
  498. + .PP
  499.   Under VMS, not all of the odd file formats are treated properly.  Only
  500.   zip files of format stream-LF and fixed length 512 are expected to work
  501.   with zip.  Others can be converted using Rahul Dhesi's BILF program.
  502. diff -cr zip19/zip.doc zip19p1/zip.doc
  503. *** zip19/zip.doc    Thu Aug 20 19:48:58 1992
  504. --- zip19p1/zip.doc    Wed Aug 26 14:26:34 1992
  505. ***************
  506. *** 28,34 ****
  507.   
  508.        zip version 1.9 is compatible with pkzip 1.93a.   Note  that
  509.        pkunzip 1.10 cannot extract files produced by pkzip 1.93a or
  510. !      zip 1.9b. You must use pkunzip 1.93a or unzip 5.0 to extract
  511.        them.
  512.   
  513.        For a brief help on zip and unzip, run each without specify-
  514. --- 28,34 ----
  515.   
  516.        zip version 1.9 is compatible with pkzip 1.93a.   Note  that
  517.        pkunzip 1.10 cannot extract files produced by pkzip 1.93a or
  518. !      zip 1.9. You must use pkunzip 1.93a or unzip 5.0 to  extract
  519.        them.
  520.   
  521.        For a brief help on zip and unzip, run each without specify-
  522. ***************
  523. *** 464,478 ****
  524.        unzip(1), tar(1), compress(1)
  525.   
  526.   BUGS
  527. !      WARNING: zip files produced by this version of zip must  not
  528. !      be  *updated*  by  zip  1.0 or pkzip 1.10 or pkzip 1.93a, if
  529. !      they contain encrypted members, or if they  have  been  pro-
  530. !      duced  in  a  pipe or on a non seekable device. The old ver-
  531. !      sions of zip or pkzip would destroy the zip  structure.  The
  532. !      old  versions can list the contents of the zip file but can-
  533. !      not extract it anyway (because of the new compression  algo-
  534. !      rithm).   If  you do not use encryption and use regular disk
  535. !      files, you do not have to care about this problem.
  536.   
  537.        zip 1.9 is compatible with  pkzip  1.93a,  except  when  two
  538.        features  are used: encryption or zip file created in a pipe
  539. --- 464,478 ----
  540.        unzip(1), tar(1), compress(1)
  541.   
  542.   BUGS
  543. !      WARNING: zip files produced by zip 1.9 must not be *updated*
  544. !      by  zip  1.0  or  pkzip 1.10 or pkzip 1.93a, if they contain
  545. !      encrypted members, or if they have been produced in  a  pipe
  546. !      or  on  a  non  seekable  device. The old versions of zip or
  547. !      pkzip would destroy the zip structure. The old versions  can
  548. !      list the contents of the zip file but cannot extract it any-
  549. !      way (because of the new compression algorithm).  If  you  do
  550. !      not  use  encryption  and use regular disk files, you do not
  551. !      have to care about this problem.
  552.   
  553.        zip 1.9 is compatible with  pkzip  1.93a,  except  when  two
  554.        features  are used: encryption or zip file created in a pipe
  555. ***************
  556. *** 482,487 ****
  557. --- 482,491 ----
  558.        Without -y, when zip must compress a symbolic link to an non
  559.        existing   file,  it  only  displays  a  warning  "name  not
  560.        matched". A better warnign should be given.
  561. +      The option -e also forces -o (make zipfile as old as  latest
  562. +      entry).  This  is  used  to  make brute force attacks on the
  563. +      password harder.
  564.   
  565.        Under VMS, not all of the odd file formats are treated prop-
  566.        erly.   Only  zip files of format stream-LF and fixed length
  567. diff -cr zip19/zipfile.c zip19p1/zipfile.c
  568. *** zip19/zipfile.c    Tue Aug 18 11:54:32 1992
  569. --- zip19p1/zipfile.c    Wed Aug 26 14:35:42 1992
  570. ***************
  571. *** 753,763 ****
  572.     for (z = zfiles; z != NULL; z = z->nxt)
  573.       if (z->mark || z->trash)
  574.       {
  575. !       z->mark = 1;
  576. !       n++;
  577. !       if (verbose)
  578. !         printf("zip diagnostic: trashing file %s\n", z->name);
  579. !       destroy(z->name);
  580.       }
  581.   
  582.     /* Try to delete all paths that lead up to marked names */
  583. --- 753,767 ----
  584.     for (z = zfiles; z != NULL; z = z->nxt)
  585.       if (z->mark || z->trash)
  586.       {
  587. !       if (z->zname[z->nam - 1] == '/') /* directory */
  588. !         z->mark = z->trash = 0;
  589. !       else {
  590. !         z->mark = 1;
  591. !         n++;
  592. !         if (verbose)
  593. !           printf("zip diagnostic: trashing file %s\n", z->name);
  594. !         destroy(z->name);
  595. !       }
  596.       }
  597.   
  598.     /* Try to delete all paths that lead up to marked names */
  599. ***************
  600. *** 779,785 ****
  601.           if (*cutpath(s[i]->name) && strcmp(s[i]->name, s[i-1]->name))
  602.           {
  603.             if (verbose)
  604. !             printf("zip diagnostic: trashing directory %s\n", s[i]->name);
  605.             deletedir(s[i]->name);
  606.             k++;
  607.           }
  608. --- 783,790 ----
  609.           if (*cutpath(s[i]->name) && strcmp(s[i]->name, s[i-1]->name))
  610.           {
  611.             if (verbose)
  612. !             printf("zip diagnostic: trashing directory %s (if empty)\n",
  613. !                    s[i]->name);
  614.             deletedir(s[i]->name);
  615.             k++;
  616.           }
  617. diff -cr zip19/zipup.c zip19p1/zipup.c
  618. *** zip19/zipup.c    Tue Aug 18 11:54:32 1992
  619. --- zip19p1/zipup.c    Wed Aug 26 13:51:42 1992
  620. ***************
  621. *** 170,176 ****
  622. --- 170,179 ----
  623.     long q = -2L;         /* size returned by filetime */
  624.     int r;                /* temporary variable */
  625.     ulg s = 0L;           /* size of compressed data */
  626. +   int isdir;            /* set for a directory name */
  627.   
  628. +   isdir = z->name[strlen(z->name)-1] == '/';
  629.     if ((z->tim = filetime(z->name, &a, &q)) == 0 || q < -1L)
  630.       return ZE_OPEN;
  631.     /* q is set to -1 if the input file is a device */
  632. ***************
  633. *** 201,207 ****
  634.       l = issymlnk(a);
  635.       if (l)
  636.         ifile = fbad;
  637. !     else if (z->name[z->nam - 1] == '/') { /* directory */
  638.         ifile = fbad;
  639.         m = STORE;
  640.       }
  641. --- 204,210 ----
  642.       l = issymlnk(a);
  643.       if (l)
  644.         ifile = fbad;
  645. !     else if (isdir) { /* directory */
  646.         ifile = fbad;
  647.         m = STORE;
  648.       }
  649. ***************
  650. *** 300,306 ****
  651.       if ((b = malloc(CBSZ)) == NULL)
  652.          return ZE_MEM;
  653.   
  654. !     if (z->name[z->nam - 1] != '/') /* no read for directories */
  655.       while ((k = l ? rdsymlnk(z->name, b, CBSZ) : zread(ifile, b, CBSZ)) > 0)
  656.       {
  657.         isize += k;
  658. --- 303,309 ----
  659.       if ((b = malloc(CBSZ)) == NULL)
  660.          return ZE_MEM;
  661.   
  662. !     if (!isdir) /* no read for directories */
  663.       while ((k = l ? rdsymlnk(z->name, b, CBSZ) : zread(ifile, b, CBSZ)) > 0)
  664.       {
  665.         isize += k;
  666. ***************
  667. *** 405,417 ****
  668.     unsigned len;
  669.     char far *b;
  670.     if (translate_eol) {
  671. -     /* static char last_byte = '\0'; */
  672.       size >>= 1;
  673.       b = buf+size;
  674.       size = len = zread(ifile, b, size);
  675.       if (len == (unsigned)EOF || len == 0) return len;
  676.       do {
  677. -        /* ??? keep cr lf intact */
  678.          if ((*buf++ = *b++) == '\n') *(buf-1) = '\r', *buf++ = '\n', len++;
  679.       } while (--size != 0);
  680.       buf -= len;
  681. --- 408,418 ----
  682.