home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-08-22 | 62.0 KB | 1,500 lines |
- Newsgroups: comp.sources.misc
- Path: sparky!kent
- From: zip-bugs@cs.ucla.edu (Info-ZIP group)
- Subject: v31i102: zip19 - Info-ZIP portable Zip, version 1.9, Part10/11
- Message-ID: <1992Aug23.065015.29701@sparky.imd.sterling.com>
- Followup-To: comp.sources.d
- X-Md4-Signature: 045ddeab004bbd47d01c4755a5d59a76
- Sender: kent@sparky.imd.sterling.com (Kent Landfield)
- Organization: Sterling Software
- References: <csm-v31i093=zip19.014410@sparky.IMD.Sterling.COM>
- Date: Sun, 23 Aug 1992 06:50:15 GMT
- Approved: kent@sparky.imd.sterling.com
- Lines: 1485
-
- Submitted-by: zip-bugs@cs.ucla.edu (Info-ZIP group)
- Posting-number: Volume 31, Issue 102
- Archive-name: zip19/part10
- Supersedes: zip: Volume 23, Issue 88-96
- Environment: UNIX, VMS, OS/2, MS-DOS, MACINTOSH, WIN-NT, LINUX, MINIX, XOS, !AMIGA, ATARI, symlink, SGI, DEC, Cray, Convex, Amdahl, Sun, PC
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # The tool that generated this appeared in the comp.sources.unix newsgroup;
- # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
- # Contents: Readme Where algorith.doc atari/atari.c atari/tc.cfg.UU
- # contents globals.c install.doc match.s mktime.c
- # msdos/doturboc.bat.UU msdos/makefile.bor.UU nt/makefile.nt.UU
- # os2/os2zip.h.UU ziperr.h
- # Wrapped by kent@sparky on Sun Aug 23 01:00:47 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 10 (of 11)."'
- if test -f 'Readme' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Readme'\"
- else
- echo shar: Extracting \"'Readme'\" \(5257 characters\)
- sed "s/^X//" >'Readme' <<'END_OF_FILE'
- XCopyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,
- XKai Uwe Rommel and Igor Mandrichenko.
- XPermission is granted to any individual or institution to use, copy, or
- Xredistribute this software so long as all of the original files are included
- Xunmodified, that it is not sold for profit, and that this copyright notice
- Xis retained.
- X
- X
- XZip 1.9 is a compression and file packaging utility. It is analogous to a
- Xcombination of tar and compress and is compatible with PKZIP 1.93a
- X(Phil Katz ZIP) for MSDOS systems. There is a companion to zip called
- Xunzip (of course) which you should be able to find the same place you
- Xgot zip. (See the file 'where' for details on ftp sites and mail
- Xservers.)
- X
- XThis version of zip has been ported to a wide array of Unix and other
- Xmainframes, minis, and micros including VMS, OS/2, Minix, MSDOS,
- XWindows NT, Atari, and Macintosh (the latter two have not been tested
- Xrecently). Although highly compatible with PKware's PKZIP and PKUNZIP
- Xutilities of MSDOS fame, our primary objective has been one of
- Xportability and other-than-MSDOS functionality. Features not found in
- Xthe PKWare version include creation of zip files in a pipe or on a
- Xdevice, VMS and OS/2 extended file attributes, conversion from Unix to
- XMSDOS text file format; and, of course, the ability to run on most of
- Xyour favorite operating systems. And it's free.
- X
- XIf you got this file from zip19.zip, you can extract the rest only
- Xwith unzip 5.0 or pkzip 1.93a. See the file 'Where' if you do not
- Xhave them already.
- X
- XPlease read the file install.doc for information on how to compile and
- Xinstall zip, zipsplit and zipnote. Please read the file zip.doc for
- Xinformation on how to use them. The file "contents" is a complete
- Xlist of the files you should have in this distribution. Also, if you
- Xare using MSDOS, you should read the note on file formats at the end
- Xof the contents file.
- X
- XThis version supports encryption, but the encryption code is distributed
- Xseparately because of the US export regulations. See the file 'Where'
- Xfor access to the encryption code. Decryption can be made with unzip 5.0
- Xor later, or with zipcloak (which is provided in the encryption supplement).
- X
- XAll bug reports and patches should go to zip-bugs@cs.ucla.edu, and
- Xsuggestions for new features can be sent to info-zip@cs.ucla.edu
- X(although we don't promise to use all suggestions). Patches should be
- Xsent as context diffs only (diff -c).
- X
- XIf you're considering a port, please check in with zip-bugs FIRST,
- Xsince the code is constantly being updated behind the scenes. We'll
- Xarrange to give you access to the latest source. The alternative is the
- Xpossibility that your hard work will be tucked away in a sub-archive
- Xand pretty much ignored. A port to VM/CMS would be welcome.
- X
- XIf you'd like to keep up to date with our zip (and companion unzip utility)
- Xdevelopment, join the ranks of BETA testers, add your own thoughts and
- Xcontributions, etc., send your request to Info-ZIP-Request@cs.ucla.edu and
- Xyou will be added to the Info-ZIP newsletter mailing list.
- X
- X
- XIMPORTANT NOTES:
- X
- X- pkzip 1.93a is only an alpha version (see historical notes below). If
- X you wish to create zip files compatible with the official version of
- X pkzip (1.10), you must use zip 1.0. zip 1.9 cannot create files
- X with the old compression method (implosion).
- X
- X- zip 1.9 is is compatible with pkzip 1.93a, except when two features
- X are used: encryption or zip file created in a pipe or on a non
- X seekable device. pkzip versions of 2.0 will support such files, and
- X unzip 5.0 already supports them. (Thanks to Phil Katz for accepting
- X our suggested minor changes to the zip file format.)
- X
- X- the ports to the Macintosh and the Atari ST have been provided in
- X the hope that they can be useful, but they have been adapted from an
- X older version of zip (1.0) and are still completely untested. A
- X makefile is still missing for the Mac. Another Macintosh port is
- X being made by Johnny Lee <johnnyl@microsoft.com> but it requires
- X more substantial changes so it will be distributed separately.
- X
- X- Please read the file zip.doc, and in particular its list of known bugs
- X at the end.
- X
- XHistorical notes:
- X
- XAt the time of release of zip 1.9, the official released version of
- XPKZIP is version 1.10. PKZIP 1.93a is only an alpha version, which was
- Xreleased in October 1991. It was supposed to be replaced soon after
- Xwith an official release of pkzip 2.0. However, Phil Katz has not yet
- Xannounced a release date at the time of writing (Aug 19th, 1992).
- X
- XBeta versions of zip compatible with pkzip 1.93a have been available
- Xsince February 1992 to the info-zip group (see the file 'history').
- XThe zip authors would have preferred to release zip 2.0 only after
- Xpkzip 2.0(*), to ensure full compatibility in case of archive format
- Xchanges between pkzip 1.93a and 2.0. However we feel that we cannot
- Xdelay any further the release of zip 1.9, since all the major features
- Xthat we wanted to put in are now available and well tested by the
- Xinfo-zip group.
- X
- X(*) The version number for the new pkzip was planned to be 2.00, but may
- X be increased to a number greater than 2.2 to prevent confusion with
- X several bogus versions, which may destroy all the data on your hard
- X disk if you run them.
- END_OF_FILE
- if test 5257 -ne `wc -c <'Readme'`; then
- echo shar: \"'Readme'\" unpacked with wrong size!
- fi
- # end of 'Readme'
- fi
- if test -f 'Where' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Where'\"
- else
- echo shar: Extracting \"'Where'\" \(4412 characters\)
- sed "s/^X//" >'Where' <<'END_OF_FILE'
- X__________________________________________________________________________
- X
- X This is the Info-ZIP file ``Where,'' last updated on 20 August 1992.
- X__________________________________________________________________________
- X
- X
- X SITE OWNERS: If you're listed in here but the information is not
- X correct (or if you're a big site but aren't listed at all), please
- X let us know! E-mail to zip-bugs at the address given in Readme
- X and we'll update this file.
- X
- XBasic source-archive names for Info-ZIP's portable Zip, UnZip, and related
- Xutilities (on some ftp sites, the .zip files may have a .zoo equivalent
- Xin zoo 2.10 format):
- X
- X zip19.zip Zip 1.9 (includes zipnote and zipsplit)
- X zip19.tar.Z ditto, compress'd tar format
- X
- X unzip50.zip UnZip 5.0 (includes zipinfo and funzip)
- X unzip50.tar.Z ditto, compress'd tar format
- X
- X wunz12sr.zip WizUnZip 1.2 support files for Windows 3.1, UnZip 5.0
- X
- X zcrypt19.zip encryption/decryption support (includes zipcloak)
- X
- XRelated archives and files:
- X
- X UnzpHist.zip changes history of UnZip, back to 2.0
- X
- X zip19x.zip MSDOS executables and docs for zip, zipnote, zipsplit
- X unzip50.exe MSDOS executable for unzip
- X
- X zip19_16.zip OS/2 1.x 16-bit executables and docs
- X zip19_32.zip OS/2 2.x 32-bit executables and docs
- X unz50_16.exe OS/2 1.x 16-bit executable
- X unz50_32.exe OS/2 2.x 32-bit executable
- X
- X zip19vms.zip VMS executables and docs for zip, zipnote, zipsplit
- X unz50vms.exe VMS executable for unzip
- X
- X zip_unzip.hqx Macinstosh executables (zip 1.0 only, 1.9 not ready)
- X
- X winunz12.zip Windows 3.1 executables (zip 1.0 only, 1.9 not ready)
- X
- X pkz110eu.exe MS-DOS PKZIP/PKUNZIP 1.1 (self-extracting archive)
- X pkz193a.exe MS-DOS PKZIP/PKUNZIP beta 1.93 (self-extracting)
- X pkz102-2.exe OS/2 PKZIP/PKUNZIP 1.02 (self-extracting)
- X
- Xftp sites for the US-exportable sources and executables. Look for
- Xthe file names given above in the following directories. Some sites
- Xlike to use slightly different names, such as zip-1.9.tar-z instead
- Xof zip19.tar.Z.
- X
- X wuarchive.wustl.edu:/packages/compression/...
- X wuarchive.wustl.edu:/mirrors/misc/unix/...
- X wuarchive.wustl.edu:/mirrors/misc/vaxvms/...
- X wuarchive.wustl.edu:/mirrors/msdos/zip/...
- X wuarchive.wustl.edu:/mirrors/msdos/windows3/...
- X
- X ftp.uu.net:/pub/zip/...
- X
- X ftp-os2.nmsu.edu:/pub/os2/2.0/archivers/...
- X ftp-os2.nmsu.edu:/pub/os2/all/archivers/...
- X
- X Zip 1.9 and UnZip 5.0 will also be available at any comp.sources.misc
- X archive site as soon as they are posted.
- X
- X wuarchive.wustl.edu:/mirrors/msdos/zip/pkz110eu.exe
- X ux1.cso.uiuc.edu:/pc/exec-pc/pkz193a.exe [128.174.5.59]
- X
- Xftp sites for the encryption and decryption sources:
- X
- X NOTE: Non-US users, please do NOT ftp from the US site (US
- X regulations and all that). Likewise, US users, please do not
- X ftp from the European sites (it's not illegal, but it sure is
- X a waste of expensive bandwidth).
- X
- X From the US:
- X wuarchive.wustl.edu:/mirrors3/garbo.uwasa.fi/arcutil/zcrypt19.zip
- X
- X Outside the US:
- X garbo.uwasa.fi:/pc/arcutil/zcrypt19.zip
- X ftp.win.tue.nl:/pub/compression/zip/zcrypt19.zip
- X ftp.inria.fr:/system/arch-compr/zcrypt19.zip
- X ftp.informatik.tu-muenchen.de:/pub/utils/archiver/zcrypt19.zip
- X (mail server at ftp-mailer@ftp.informatik.tu-muenchen.de)
- X
- XTo find other ftp sites:
- X
- X The "archie" ftp database utility can be used to find an ftp site
- X near you. If you don't know how to use it, DON'T ASK US--check the
- X Usenet groups news.newusers.questions or news.answers or some such,
- X or ask your system administrator.
- X
- XUUCP sites:
- X
- X uunet!~/pub/zip/ ...
- X
- XMail servers:
- X
- X If you don't have anonymous FTP capability, you can mail one
- X of the following commands (in the body of an e-mail message) to
- X listserv@vm1.nodak.edu or listserv@vm.ecs.rpi.edu in order to
- X get a copy via e-mail:
- X
- X /pdget mail pd:<misc.unix>unzip50.tar-z uuencode
- X /pdget mail pd:<misc.unix>zip19.zip uuencode
- X or: /pdget mail pd:<misc.unix>zip19.tar-z uuencode
- X
- X To get the encryption source by email, send the following commands
- X to ftp-mailer@ftp.informatik.tu-muenchen.de:
- X
- X get /pub/utils/archiver/zcrypt19.zip
- X quit
- X
- X__________________________________________________________________________
- X
- XAgain, if someone repackages any of the source or executable archives in
- XVMS-, Mac- or Atari-specific formats, please let us know (send e-mail to
- Xzip-bugs at the address listed in README).
- X__________________________________________________________________________
- X
- END_OF_FILE
- if test 4412 -ne `wc -c <'Where'`; then
- echo shar: \"'Where'\" unpacked with wrong size!
- fi
- # end of 'Where'
- fi
- if test -f 'algorith.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'algorith.doc'\"
- else
- echo shar: Extracting \"'algorith.doc'\" \(2948 characters\)
- sed "s/^X//" >'algorith.doc' <<'END_OF_FILE'
- XZip's deflation algorithm is a variation of LZ77 (Lempel-Ziv 1977, see
- Xreference below). It finds duplicated strings in the input data. The
- Xsecond occurrence of a string is replaced by a pointer to the previous
- Xstring, in the form of a pair (distance, length). Distances are
- Xlimited to 32K bytes, and lengths are limited to 258 bytes. When a
- Xstring does not occur anywhere in the previous 32K bytes, it is
- Xemitted as a sequence of literal bytes. (In this description,
- X'string' must be taken as an arbitrary sequence of bytes, and is not
- Xrestricted to printable characters.)
- X
- XLiterals or match lengths are compressed with one Huffman tree, and
- Xmatch distances are compressed with another tree. The trees are stored
- Xin a compact form at the start of each block. The blocks can have any
- Xsize (except that the compressed data for one block must fit in
- Xavailable memory). A block is terminated when zip determines that it
- Xwould be useful to start another block with fresh trees. (This is
- Xsomewhat similar to compress.)
- X
- XDuplicated strings are found using a hash table. All input strings of
- Xlength 3 are inserted in the hash table. A hash index is computed for
- Xthe next 3 bytes. If the hash chain for this index is not empty, all
- Xstrings in the chain are compared with the current input string, and
- Xthe longest match is selected.
- X
- XThe hash chains are searched starting with the most recent strings, to
- Xfavor small distances and thus take advantage of the Huffman encoding.
- XThe hash chains are singly linked. There are no deletions from the
- Xhash chains, the algorithm simply discards matches that are too old.
- X
- XTo avoid a worst-case situation, very long hash chains are arbitrarily
- Xtruncated at a certain length, determined by a runtime option (zip -1
- Xto -9). So zip does not always find the longest possible match but
- Xgenerally finds a match which is long enough.
- X
- Xzip also defers the selection of matches with a lazy evaluation
- Xmechanism. After a match of length N has been found, zip searches for a
- Xlonger match at the next input byte. If a longer match is found, the
- Xprevious match is truncated to a length of one (thus producing a single
- Xliteral byte) and the longer match is emitted afterwards. Otherwise,
- Xthe original match is kept, and the next match search is attempted only
- XN steps later.
- X
- XThe lazy match evaluation is also subject to a runtime parameter. If
- Xthe current match is long enough, zip reduces the search for a longer
- Xmatch, thus speeding up the whole process. If compression ratio is more
- Ximportant than speed, zip attempts a complete second search even if
- Xthe first match is already long enough.
- X
- XJean-loup Gailly
- Xjloup@chorus.fr
- X
- XReferences:
- X
- X[LZ77] Ziv J., Lempel A., "A Universal Algorithm for Sequential Data
- XCompression", IEEE Transactions on Information Theory", Vol. 23, No. 3,
- Xpp. 337-343.
- X
- XAPPNOTE.TXT documentation file in PKZIP 1.93a. It is available by
- Xftp in ux1.cso.uiuc.edu:/pc/exec-pc/pkz193a.exe [128.174.5.59]
- END_OF_FILE
- if test 2948 -ne `wc -c <'algorith.doc'`; then
- echo shar: \"'algorith.doc'\" unpacked with wrong size!
- fi
- # end of 'algorith.doc'
- fi
- if test -f 'atari/atari.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'atari/atari.c'\"
- else
- echo shar: Extracting \"'atari/atari.c'\" \(1896 characters\)
- sed "s/^X//" >'atari/atari.c' <<'END_OF_FILE'
- X/*
- X * ATARI.C
- X *
- X * Necessary interface functions, mostly for conversion
- X * of path names.
- X */
- X#ifdef ATARI_ST
- X
- X#include <stdio.h>
- X#include <stdlib.h>
- X#include <tos.h>
- X#include <ext.h>
- X
- X#define FNMAX 256
- X#define OF(sig) sig
- X
- Xchar *st_fn OF((char *));
- X
- Xchar *st_fn(s)
- Xchar *s;
- X{
- Xstatic char tosname [ FNMAX ];
- Xchar *t = tosname;
- X
- X while ( *t=*s++ ) {
- X if ( *t == '/' )
- X *t = '\\';
- X t++;
- X }
- X
- X return(tosname);
- X}
- X
- Xint st_unlink(f)
- Xchar *f;
- X{
- X return(unlink(st_fn(f)));
- X}
- X
- X/* Fake chmod with minimalistic functionality.
- X * [ anyway people will be in trouble with the readonly files
- X * produces by this, since 'normal' users don't own the
- X * 'tools' to manipulate these. ]
- X */
- Xint st_chmod(f, a)
- Xchar *f; /* file path */
- Xint a; /* attributes returned by getfileattr() */
- X/* Give the file f the attributes a, return non-zero on failure */
- X{
- X if ( ! ( a & S_IWRITE ) )
- X if (Fattrib(st_fn(f), 1, FA_READONLY) < 0 )
- X return(-1);
- X return 0;
- X}
- X
- X/*
- X * mktemp is not part of the Turbo C library.
- X */
- Xchar *st_mktemp(s)
- Xchar *s;
- X{
- Xchar *t;
- Xlong i;
- X for(t=s; *t; t++)
- X if ( *t == '/' )
- X *t = '\\';
- X t -= 6;
- X i = (unsigned long)s % 1000000L;
- X do {
- X sprintf(t, "%06ld", i++);
- X } while ( Fsfirst(s, 0x21) == 0 );
- X return(s);
- X}
- X
- XFILE *st_fopen(f,m)
- Xchar *f;
- Xchar *m;
- X{
- X return(fopen(st_fn(f),m));
- X}
- X
- Xint st_open(f,m)
- Xchar *f;
- Xint m;
- X{
- X return(open(st_fn(f),m));
- X}
- X
- Xint st_stat(f, b)
- Xchar *f;
- Xstruct stat *b;
- X{
- X return(stat(st_fn(f),b));
- X}
- X
- Xint st_findfirst(n,d,a)
- Xchar *n;
- Xstruct ffblk *d;
- Xint a;
- X{
- X return(findfirst( st_fn(n),(struct ffblk *)d,a));
- X}
- X
- X
- Xint st_rename(s, d)
- Xchar *s, *d;
- X{
- Xchar tosname [ FNMAX ];
- Xchar *t = tosname;
- X
- X while ( *t=*s++ ) {
- X if ( *t == '/' )
- X *t = '\\';
- X t++;
- X }
- X return(rename(tosname, st_fn(d)));
- X}
- X
- Xint st_rmdir(d)
- Xchar *d;
- X{
- X return(Ddelete(st_fn(d)));
- X}
- X
- X#endif /* ?ATARI_ST */
- END_OF_FILE
- if test 1896 -ne `wc -c <'atari/atari.c'`; then
- echo shar: \"'atari/atari.c'\" unpacked with wrong size!
- fi
- # end of 'atari/atari.c'
- fi
- if test -f 'atari/tc.cfg.UU' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'atari/tc.cfg.UU'\"
- else
- echo shar: Extracting \"'atari/tc.cfg.UU'\" \(3563 characters\)
- sed "s/^X//" >'atari/tc.cfg.UU' <<'END_OF_FILE'
- Xbegin 666 atari/tc.cfg
- XM @( "C0
- XM
- XM
- XM
- XM
- XM
- XM
- XM
- XM
- XM 0
- XM 93I<=&-<:6YC;'5D90
- XM $%405))7U-4 !84$]25 3U)4
- XM ,C4 #$P
- XM, S,@ ,@
- XM
- XM
- XM
- XM
- XM
- XM
- XM
- XM
- XM
- XM
- XM
- XM
- XM !
- XM X,3DR 93I<
- XM=&-<;&EB
- XM
- XM
- XM
- XM1CI<6DE07%I)4%Q:25 N4%)*
- XM
- XM !&.EQ:25!<
- XM6DE07 !#+EI)4
- XM
- XM
- XM
- XM
- XM /S\_
- XM @ # $8 %$8Z7%I)4%Q:25!<34%+149)3$4 7$U!2T5&24Q% ,
- XM )^?H #>* P ")'D $ -XH#$ (FIH "LUN # @
- XM 0 GZ(@ 0 ( $ " ! 0 ! "=)P
- XM !# 0P 1@ 41CI<6DE07%I)4%Q:25 N4%)* !<34%+149)
- XM3$4 P GY^@ -XH# (D>0 0 WB@,0 B:F@ *
- XMS6X ," ! "?HB ! @ 0 ( $
- XM ! $ )TG 0!& !1%.EQ40UQ$149!54Q4+E!2
- XM2@ %Q-04M%1DE,10 # "?GZ WB@, B1Y !
- XM #>* Q ")J: K-;@ P( $ )^B(
- XM $ " ! @ 0 $ 0 G2< ! L@ +( ! $8 %$UE<W-A
- XM9V5S
- XM
- XM (
- XM
- XM
- XL
- X
- Xend
- END_OF_FILE
- if test 3563 -ne `wc -c <'atari/tc.cfg.UU'`; then
- echo shar: \"'atari/tc.cfg.UU'\" unpacked with wrong size!
- else
- echo shar: Uudecoding \"'atari/tc.cfg'\" \(2564 characters\)
- cat atari/tc.cfg.UU | uudecode
- if test 2564 -ne `wc -c <'atari/tc.cfg'`; then
- echo shar: \"'atari/tc.cfg'\" uudecoded with wrong size!
- else
- rm atari/tc.cfg.UU
- fi
- fi
- # end of 'atari/tc.cfg.UU'
- fi
- if test -f 'contents' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'contents'\"
- else
- echo shar: Extracting \"'contents'\" \(4614 characters\)
- sed "s/^X//" >'contents' <<'END_OF_FILE'
- XCopyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,
- XKai Uwe Rommel and Igor Mandrichenko.
- XPermission is granted to any individual or institution to use, copy, or
- Xredistribute this software so long as all of the original files are included
- Xunmodified, that it is not sold for profit, and that this copyright notice
- Xis retained.
- X
- XThis file is a complete list of files mentioned in the above copyright. Some
- Xof the files in this list explicitly state in their text that they are public
- Xdomain or not copyrighted. These files can be distributed separately and are
- Xmarked below with asterisks.
- X
- Xfile what it is
- X---- ----------
- XReadme What zip is; general information.
- XWhere where Zip/UnZip and encryption/decryption support can be found
- Xalgorith.doc Description of the deflation algorithm
- Xbits.c Output variable-length bit strings.
- Xcontents This file.
- Xdeflate.c Deflation compression method
- Xfileio.c System dependent routines (most of them anyway).
- Xglobals.c Global variables.
- Xhistory List of changes in the versions leading up to this one.
- Xinfozip.who List of contributors to the portable Zip project.
- Xinstall.doc Documentation for Zip compilation and installation
- Xmakecrc.c * Generate the CRC table in util.c and shrink.c.
- Xmakefile Unix make file.
- Xmatch.s Optimized 386 version of longest_match() (Unix & OS/2)
- Xmktime.c Version of mktime for systems without it (currently unused)
- Xrevision.h Contains the program version number and revision date.
- Xtailor.h * Tailors the compilation to the system being compiled on.
- Xtrees.c Encode source values using variable-length binary code trees.
- Xutil.c Miscellaneous utility routines.
- Xzip.1 Source for the Zip man page (zip.doc).
- Xzip.c Main routine for Zip.
- Xzip.doc Documentation for Zip (zip.1 processed).
- Xzip.h Header for all Zip modules.
- Xziperr.h Error messages in Zip.
- Xzipfile.c Zip file format handler.
- Xzipnote.c Main routine for ZipNote.
- Xzipsplit.c Main routine for ZipSplit.
- Xzipup.c Applies deflate or store methods to compress an entry.
- Xatari/atari.c Atari ST specific routines
- Xatari/makefile.st Turbo C makefile
- Xatari/stzip.lnk Linker command file for zip
- Xatari/stzip.prj Turbo C project file
- Xatari/stzipn.lnk Linker command file for zipnote
- Xatari/stzips.lnk Linker command file for zipsplit
- Xatari/tc.cfg Turbo C configuration file
- Xmac/macfile.c Macintosh specific routines
- Xmac/macstat.c Macintosh specific routines
- Xmac/macstat.h Macintosh specific header file
- Xmsdos/doturboc.bat Batch file for compiling under Turbo C 2.0.
- Xmsdos/makefile.bor MSDOS Borland C++ make file.
- Xmsdos/makefile.gcc MSDOS DJGCC make file.
- Xmsdos/makefile.msc MSDOS Microsoft C make file.
- Xmsdos/match.asm Optimized 8086 version of longest_match().
- Xmsdos/tcconfig.tc TurboC 2.0 configuration file
- Xmsdos/zip.prj Project file for Borland (Turbo) C++.
- Xmsdos/zipnote.prj Project file for Borland (Turbo) C++.
- Xmsdos/zipsplit.prj Project file for Borland (Turbo) C++.
- Xnt/makefile.nt Makefile for Windows NT
- Xos2/makefile.os2 OS/2 make file.
- Xos2/match32.asm Optimized 386 version of longest_match() (*untested*)
- Xos2/os2zip.c * Directory routines for OS/2.
- Xos2/os2zip.h * Definitions of functions in os2zip.c.
- Xos2/zip.def OS/2 def file for Zip.
- Xvms/VMSmunch.c file manipulation, adapted from Joe Meadows' FILE
- Xvms/VMSmunch.h definitions for VMSmunch.c
- Xvms/descrip.mms VMS makefile
- Xvms/make_gcc.com VMS command file for compilation with gcc.
- Xvms/make_vaxc.com VMS command file for compilation with Vax C.
- Xvms/makefile.vms VMS makefile for use with Todd Aven's MAKE/VMS
- Xvms/vaxclib.opt VMS option file
- Xvms/vms.c VMS specific code
- Xvms/vms_zip.rnh VMS manual page
- X
- XAll of the files are in Unix (LF only) format except for the msdos and os2
- Xfiles. On MSDOS and OS/2 systems, you can use the -a option of unzip to
- Xconvert the source files to CRLF format. This is only necessary if you wish
- Xto edit the files -- they will compile as is with Microsoft C and
- XTurbo/Borland C++ 1.0 or later. However, you will have to convert the files
- X(using unzip -a) to the CRLF format to compile with the older Turbo C 1.0 or
- X2.0. In this case, do not convert the binary file turboc.cfg.
- XYou should be able to find unzip the same place you found this (see the
- Xfile 'where').
- END_OF_FILE
- if test 4614 -ne `wc -c <'contents'`; then
- echo shar: \"'contents'\" unpacked with wrong size!
- fi
- # end of 'contents'
- fi
- if test -f 'globals.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'globals.c'\"
- else
- echo shar: Extracting \"'globals.c'\" \(2576 characters\)
- sed "s/^X//" >'globals.c' <<'END_OF_FILE'
- X/*
- X
- X Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,
- X Kai Uwe Rommel and Igor Mandrichenko.
- X Permission is granted to any individual or institution to use, copy, or
- X redistribute this software so long as all of the original files are included
- X unmodified, that it is not sold for profit, and that this copyright notice
- X is retained.
- X
- X*/
- X
- X/*
- X * globals.c by Mark Adler.
- X */
- X
- X#define GLOBALS /* include definition of errors[] in zip.h */
- X#include "zip.h"
- X
- X
- X/* Handy place to build error messages */
- Xchar errbuf[FNMAX+81];
- X
- X/* Argument processing globals */
- Xint recurse = 0; /* 1=recurse into directories encountered */
- Xint pathput = 1; /* 1=store path with name */
- Xint method = BEST; /* one of BEST, DEFLATE (only), or STORE (only) */
- Xint dosify = 0; /* 1=make new entries look like MSDOS */
- Xint verbose = 0; /* 1=report oddities in zip file structure */
- Xint level = 5; /* 0=fastest compression, 9=best compression */
- Xint translate_eol = 0; /* Translate end-of-line LF -> CR LF */
- X#ifdef VMS
- X int vmsver = 0; /* 1=append VMS version number to file names */
- X int vms_native = 0; /* 1=store in VMS format */
- X#endif /* VMS */
- X#ifdef OS2
- X int use_longname_ea = 0; /* 1=use the .LONGNAME EA as the file's name */
- X#endif /* OS2 */
- Xint linkput = 0; /* 1=store symbolic links as such */
- Xint noisy = 1; /* 0=quiet operation */
- Xchar *special = ".Z:.zip:.zoo:.arc:.lzh:.arj"; /* List of special suffixes */
- Xchar *key = NULL; /* Scramble password if scrambling */
- Xchar *tempath = NULL; /* Path for temporary files */
- XFILE *mesg; /* stdout by default, stderr for piping */
- X
- X/* Zip file globals */
- Xchar *zipfile; /* New or existing zip archive (zip file) */
- Xulg zipbeg; /* Starting offset of zip structures */
- Xulg cenbeg; /* Starting offset of central directory */
- Xstruct zlist far *zfiles = NULL; /* Pointer to list of files in zip file */
- Xextent zcount; /* Number of files in zip file */
- Xextent zcomlen; /* Length of zip file comment */
- Xchar *zcomment; /* Zip file comment (not zero-terminated) */
- Xstruct zlist far **zsort; /* List of files sorted by name */
- Xulg tempzn; /* Count of bytes written to output zip file */
- X
- X/* Files to operate on that are not in zip file */
- Xstruct flist far *found = NULL; /* List of names found */
- Xstruct flist far * far *fnxt = &found;
- X /* Where to put next name in found list */
- Xextent fcount; /* Count of files in list */
- END_OF_FILE
- if test 2576 -ne `wc -c <'globals.c'`; then
- echo shar: \"'globals.c'\" unpacked with wrong size!
- fi
- # end of 'globals.c'
- fi
- if test -f 'install.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'install.doc'\"
- else
- echo shar: Extracting \"'install.doc'\" \(4088 characters\)
- sed "s/^X//" >'install.doc' <<'END_OF_FILE'
- XHOW TO INSTALL ZIP
- X Zip is distributed as C source code that can be compiled on
- X a wide range of Unix machines, VAXes running VMS, and MSDOS
- X machines using Microsoft or Borland C++, and OS/2 machines
- X using Microsoft C. You will need Unzip 5.0 (under Unix, MSDOS,
- X or VMS) or PKUNZIP 1.93a (under MSDOS) to unpack the distribution
- X file, zip19.zip. But since you read this, you have unpacked it
- X already, or you cheated and got a tar.Z file...
- X
- X Let's assume however that you start from scratch and have not yet
- X unpacked the sources. First, unpack the source as follows,
- X assuming that you have zip19.zip in the current directory.
- X
- X mkdir zipsrc
- X cd zipsrc
- X unzip ../zip19
- X
- X This extracts all source files and documentation in the
- X directory called "zipsrc". If you wish to build a version
- X of zip with encryption capabilities, you must also get the
- X separate package zcrypt19.zip and uncomment the definition
- X of MAKE at the beginning of the makefile.
- X
- X You then do:
- X
- X make system
- X
- X where "system" is one of: bsd, bsdold, sysv, sysv_386, sysv_old, sun,
- X sun_gcc, next, next10, hpux, dnix, cray, 3b1, zilog, aux, convex, aix,
- X minix, isc, dynix, ultrix, dec_osf1 or xos. If you are using a NeXT
- X running version 2.0 or greater, then make next. If you are using 1.0,
- X then make next10. If you are using Sun OS 4.x, then make sun (or
- X sun_gcc if you use gcc). If you are using SVR4 on a 386, use
- X sysv_386 to get the optimized asm code.
- X
- X The other special systems are HPUX, DNIX 5.2 or 5.3, Cray Unicos,
- X AT&T 3B1 (also known as Unix PC or PC 7300), Zilog Zeus, A/UX,
- X Convex, AIX, MINIX, ISC System V/386, Dynix, Ultrix and DEC OSF/1.
- X
- X Otherwise, if you are using BSD Unix, try bsd. If the linker
- X cannot find _memset or _memcpy, try bsdold. If you are using
- X System V Unix or SCO Unix, try sysv or sysv_old. Also use sysv
- X on a Silicon Graphics (SGI) machine. You can also cross-compile
- X Zip for MSDOS under SCO 386 Unix using "make scodos".
- X
- X If none of these compiles, links, and functions properly on
- X your Unix system, see the section BUGS below for how to get
- X help.
- X
- X If the appropriate system was selected, then the executables
- X zip, zipnote and zipsplit will be created. You can copy them
- X to an appropriate directory in the search path using:
- X
- X make install
- X
- X The defaults are /usr/local/bin for the executables and
- X /usr/man/man1 for the manual page. Change the macros BINDIR
- X and MANDIR in makefile if appropriate.
- X
- X You can use the command "set" to see the current search
- X path. If you are using the C-Shell (csh), enter the com-
- X mand:
- X
- X rehash
- X
- X so csh can find the new command in the path. You are now
- X ready to use Zip.
- X
- X You can get rid of the now unnecessary source and object
- X files with:
- X
- X cd ..
- X rm -r zipsrc
- X
- X This will remove the directory zip and its contents created
- X by unzip. You should keep the zip19.zip file around though,
- X in case you need to build it again or want to give it to a
- X colleague.
- X
- X The steps for installation under MSDOS, OS/2, and VMS are
- X similar to the above: first unzip the distribution files
- X into their own directory. The system dependant files are
- X stored in special subdirectories. You may have to
- X copy or move them to the main sources directory.
- X Then under MSDOS do one of:
- X
- X make makefile.msc
- X make -fmakefile.bor
- X
- X for Microsoft or Borland C++, respectively. For Turbo C 2.0,
- X use the configuration file tcconfig.tc, the batch file
- X doturboc.bat and the project files zip.prj, zipnote.prj
- X and zipsplit.prj. Make sure to use the compact model.
- X
- X Under OS/2:
- X
- X nmake -f makefile.os2
- X
- X for Microsoft C 6.00. Under VAX VMS:
- X
- X @make_vaxc
- X or: @make_gcc
- X
- X For command help on any of the zip* utilities, simply enter
- X the name with no arguments.
- END_OF_FILE
- if test 4088 -ne `wc -c <'install.doc'`; then
- echo shar: \"'install.doc'\" unpacked with wrong size!
- fi
- # end of 'install.doc'
- fi
- if test -f 'match.s' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'match.s'\"
- else
- echo shar: Extracting \"'match.s'\" \(5410 characters\)
- sed "s/^X//" >'match.s' <<'END_OF_FILE'
- X/
- X/ Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,
- X/ Kai Uwe Rommel and Igor Mandrichenko.
- X/ Permission is granted to any individual or institution to use, copy, or
- X/ redistribute this software so long as all of the original files are included
- X/ unmodified, that it is not sold for profit, and that this copyright notice
- X/ is retained.
- X/
- X/ match.s by Jean-loup Gailly. Translated to 32 bit code by Kai Uwe Rommel.
- X
- X/ match.s, optimized version of longest_match() in deflate.c
- X/ This version is for 386 Unix or OS/2 in 32 bit mode.
- X/ Warning: it uses the AT&T syntax: mov source,dest
- X/ This file is only optional. If you want to force the C version,
- X/ add -DNO_ASM to CFLAGS in makefile and remove match.o from OBJI).
- X/ If you have reduced WSIZE in zip.h, then change its value below.
- X/ This version assumes static allocation of the arrays (-DDYN_ALLOC not used).
- X
- X .file "match.s"
- X
- X#if defined(__GO32__) && defined(unix)
- X# undef unix
- X#endif
- X
- X#ifdef unix
- X# define _prev prev
- X# define _window window
- X# define _match_start match_start
- X# define _prev_length prev_length
- X# define _good_match good_match
- X# define _strstart strstart
- X# define _max_chain_length max_chain_length
- X
- X# define _match_init match_init
- X# define _longest_match longest_match
- X#endif
- X
- X#define MAX_MATCH 258
- X#define MAX_MATCH2 128 /* MAX_MATCH/2-1 */
- X#define MIN_MATCH 3
- X#define WSIZE 32768
- X#define MAX_DIST WSIZE - MAX_MATCH - MIN_MATCH - 1
- X
- X .globl _match_init
- X .globl _longest_match
- X
- X .text
- X
- X_match_init:
- X ret
- X
- X/ -----------------------------------------------------------------------
- X/ Set match_start to the longest match starting at the given string and
- X/ return its length. Matches shorter or equal to prev_length are discarded,
- X/ in which case the result is equal to prev_length and match_start is
- X/ garbage.
- X/ IN assertions: cur_match is the head of the hash chain for the current
- X/ string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
- X
- X_longest_match: /* int longest_match(cur_match) */
- X
- X#define cur_match 20(%esp)
- X / return address / esp+16
- X push %ebp / esp+12
- X push %edi / esp+8
- X push %esi / esp+4
- X push %ebx / esp
- X
- X/ match equ esi
- X/ scan equ edi
- X/ chain_length equ ebp
- X/ best_len equ ebx
- X/ limit equ edx
- X
- X mov cur_match,%esi
- X mov _max_chain_length,%ebp / chain_length = max_chain_length
- X mov _strstart,%edi
- X mov %edi,%edx
- X sub $ MAX_DIST,%edx / limit = strstart-MAX_DIST
- X jae limit_ok
- X sub %edx,%edx / limit = NIL
- Xlimit_ok:
- X add $_window+2,%edi / edi = offset(window + strstart + 2)
- X mov _prev_length,%ebx / best_len = prev_length
- X movw -3(%ebx,%edi),%ax / ax = scan[best_len-1..best_len]
- X movw -2(%edi),%cx / cx = scan[0..1]
- X cmp _good_match,%ebx / do we have a good match already?
- X jb do_scan
- X shr $2,%ebp / chain_length >>= 2
- X jmp do_scan
- X
- X .align 4
- Xlong_loop:
- X/ at this point, edi == scan+2, esi == cur_match
- X movw -3(%ebx,%edi),%ax / ax = scan[best_len-1..best_len]
- X movw -2(%edi),%cx / cx = scan[0..1]
- Xshort_loop:
- X dec %ebp / --chain_length
- X jz the_end
- X/ at this point, di == scan+2, si == cur_match,
- X/ ax = scan[best_len-1..best_len] and cx = scan[0..1]
- X and $ WSIZE-1, %esi
- X movw _prev(%esi,%esi),%si / cur_match = prev[cur_match]
- X / top word of esi is still 0
- X cmp %edx,%esi / cur_match <= limit ?
- X jbe the_end
- Xdo_scan:
- X cmpw _window-1(%ebx,%esi),%ax /check match at best_len-1
- X jne short_loop
- X cmpw _window(%esi),%cx / check min_match_length match
- X jne short_loop
- X
- X lea _window+2(%esi),%esi / si = match
- X mov %edi,%eax / ax = scan+2
- X mov $ MAX_MATCH2,%ecx / scan for at most MAX_MATCH bytes
- X#ifdef unix
- X repz; cmpsw / loop until mismatch
- X#else
- X repe; cmpsw
- X#endif
- X je maxmatch / match of length MAX_MATCH?
- Xmismatch:
- X movb -2(%edi),%cl / mismatch on first or second byte?
- X subb -2(%esi),%cl / cl = 0 if first bytes equal
- X xchg %edi,%eax / edi = scan+2, eax = end of scan
- X sub %edi,%eax / eax = len
- X sub %eax,%esi / esi = cur_match + 2 + offset(window)
- X sub $_window+2,%esi / esi = cur_match
- X subb $1,%cl / set carry if cl == 0 (cannot use DEC)
- X adc $0,%eax / eax = carry ? len+1 : len
- X cmp %ebx,%eax / len > best_len ?
- X jle long_loop
- X mov %esi,_match_start / match_start = cur_match
- X mov %eax,%ebx / ebx = best_len = len
- X cmp $ MAX_MATCH,%eax / len >= MAX_MATCH ?
- X jl long_loop
- Xthe_end:
- X mov %ebx,%eax / result = eax = best_len
- X pop %ebx
- X pop %esi
- X pop %edi
- X pop %ebp
- X ret
- Xmaxmatch:
- X cmpsb
- X jmp mismatch
- END_OF_FILE
- if test 5410 -ne `wc -c <'match.s'`; then
- echo shar: \"'match.s'\" unpacked with wrong size!
- fi
- # end of 'match.s'
- fi
- if test -f 'mktime.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mktime.c'\"
- else
- echo shar: Extracting \"'mktime.c'\" \(3614 characters\)
- sed "s/^X//" >'mktime.c' <<'END_OF_FILE'
- X/* free mktime function
- X Copyright 1988, 1989 by David MacKenzie <djm@ai.mit.edu>
- X and Michael Haertel <mike@ai.mit.edu>
- X Unlimited distribution permitted provided this copyright notice is
- X retained and any functional modifications are prominently identified. */
- X
- X/* Note: This version of mktime is ignorant of the tzfile; it does not
- X return correct results during the few hours around when daylight savings
- X time goes in to or out of effect. It also does not allow or adjust
- X for invalid values in any of the fields, contrary to the ANSI C
- X specification. */
- X
- X#ifdef MKTIME_MISSING
- X#include <sys/types.h>
- X#include <time.h>
- X
- Xtime_t mkgmtime ();
- X
- X/* Return the equivalent in seconds past 12:00:00 a.m. Jan 1, 1970 GMT
- X of the local time and date in the exploded time structure `tm',
- X and set `tm->tm_yday', `tm->tm_wday', and `tm->tm_isdst'.
- X Return -1 if any of the other fields in `tm' has an invalid value. */
- X
- Xtime_t
- Xmktime (tm)
- X struct tm *tm;
- X{
- X struct tm save_tm; /* Copy of contents of `*tm'. */
- X struct tm *ltm; /* Local time. */
- X time_t then; /* The time to return. */
- X
- X then = mkgmtime (tm);
- X if (then == -1)
- X return -1;
- X
- X /* In case `tm' points to the static area used by localtime,
- X save its contents and restore them later. */
- X save_tm = *tm;
- X /* Correct for the timezone and any daylight savings time.
- X If a change to or from daylight savings time occurs between when
- X it is the time in `tm' locally and when it is that time in Greenwich,
- X the change to or from dst is ignored, but that is a rare case. */
- X then += then - mkgmtime (localtime (&then));
- X
- X ltm = localtime (&then);
- X save_tm.tm_yday = ltm->tm_yday;
- X save_tm.tm_wday = ltm->tm_wday;
- X save_tm.tm_isdst = ltm->tm_isdst;
- X *tm = save_tm;
- X
- X return then;
- X}
- X
- X/* Nonzero if `y' is a leap year, else zero. */
- X#define leap(y) (((y) % 4 == 0 && (y) % 100 != 0) || (y) % 400 == 0)
- X
- X/* Number of leap years from 1970 to `y' (not including `y' itself). */
- X#define nleap(y) (((y) - 1969) / 4 - ((y) - 1901) / 100 + ((y) - 1601) / 400)
- X
- X/* Number of days in each month of the year. */
- Xstatic char monlens[] =
- X{
- X 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
- X};
- X
- X/* Return the equivalent in seconds past 12:00:00 a.m. Jan 1, 1970 GMT
- X of the Greenwich Mean time and date in the exploded time structure `tm',
- X and set `tm->tm_yday', `tm->tm_wday', and `tm->tm_isdst'.
- X Return -1 if any of the other fields in `tm' has an invalid value. */
- X
- Xtime_t
- Xmkgmtime (tm)
- X struct tm *tm;
- X{
- X int years, months, days, hours, minutes, seconds;
- X
- X years = tm->tm_year + 1900; /* year - 1900 -> year */
- X months = tm->tm_mon; /* 0..11 */
- X days = tm->tm_mday - 1; /* 1..31 -> 0..30 */
- X hours = tm->tm_hour; /* 0..23 */
- X minutes = tm->tm_min; /* 0..59 */
- X seconds = tm->tm_sec; /* 0..61 in ANSI C. */
- X
- X if (years < 1970
- X || months < 0 || months > 11
- X || days < 0
- X || days > monlens[months] + (months == 1 && leap (years)) - 1
- X || hours < 0 || hours > 23
- X || minutes < 0 || minutes > 59
- X || seconds < 0 || seconds > 61)
- X return -1;
- X
- X /* Set `days' to the number of days into the year. */
- X if (months > 1 && leap (years))
- X ++days;
- X while (months-- > 0)
- X days += monlens[months];
- X tm->tm_yday = days;
- X
- X /* Now set `days' to the number of days since Jan 1, 1970. */
- X days += 365 * (years - 1970) + nleap (years);
- X tm->tm_wday = (days + 4) % 7; /* Jan 1, 1970 was Thursday. */
- X tm->tm_isdst = 0;
- X
- X return 86400 * days + 3600 * hours + 60 * minutes + seconds;
- X}
- X#endif
- END_OF_FILE
- if test 3614 -ne `wc -c <'mktime.c'`; then
- echo shar: \"'mktime.c'\" unpacked with wrong size!
- fi
- # end of 'mktime.c'
- fi
- if test -f 'msdos/doturboc.bat.UU' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'msdos/doturboc.bat.UU'\"
- else
- echo shar: Extracting \"'msdos/doturboc.bat.UU'\" \(669 characters\)
- sed "s/^X//" >'msdos/doturboc.bat.UU' <<'END_OF_FILE'
- Xbegin 666 msdos/doturboc.bat
- XM.B!4:&ES(&9I;&4@:7,@82!C;VUP;&5M96YT('1O('II<"YP<FH@9F]R(%1U
- XM<F)O($,@,BXP('5S97)S+@T*.B!#:&%N9V4@=&AE(&-O;7!I;&%T:6]N(&9L
- XM86=S(&EF('EO=2!W:7-H("AA9&0@4TU!3$Q?345-(&]R($U%1$E535]-14T-
- XM"CH@=&\@<F5D=6-E('1H92!M96UO<GD@<F5Q=6ER96UE;G1S*2P@86YD('!R
- XM97-S($8Y+BXN#0HZ(%=!4DY)3D<Z('EO=2!M=7-T('5S92!T:&4@8V]M<&%C
- XM="!O<B!L87)G92!M;V1E;"!I;B!T:&ES('9E<G-I;VXN#0H-"G1A<VT@+6UL
- XM("U$1%E.7T%,3$]#("U$4U-?3D517T13(&UA=&-H.PT*#0HZ(%1O(&-O;7!I
- XM;&4@>FEP<W!L:70@86YD('II<&YO=&4L(&1E;&5T92!A;&P@+F]B:B!F:6QE
- XM<RP@861D('1H92!C;VUP:6QA=&EO;@T*.B!F;&%G(%5424PL(&%N9"!U<V4@
- XM>FEP<W!L:70N<')J(&]R('II<&YO=&4N<')J('1O(')E8V]M<&EL92!E=F5R
- X)>71H:6YG+@T*
- X
- Xend
- END_OF_FILE
- if test 669 -ne `wc -c <'msdos/doturboc.bat.UU'`; then
- echo shar: \"'msdos/doturboc.bat.UU'\" unpacked with wrong size!
- else
- echo shar: Uudecoding \"'msdos/doturboc.bat'\" \(459 characters\)
- cat msdos/doturboc.bat.UU | uudecode
- if test 459 -ne `wc -c <'msdos/doturboc.bat'`; then
- echo shar: \"'msdos/doturboc.bat'\" uudecoded with wrong size!
- else
- rm msdos/doturboc.bat.UU
- fi
- fi
- # end of 'msdos/doturboc.bat.UU'
- fi
- if test -f 'msdos/makefile.bor.UU' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'msdos/makefile.bor.UU'\"
- else
- echo shar: Extracting \"'msdos/makefile.bor.UU'\" \(5393 characters\)
- sed "s/^X//" >'msdos/makefile.bor.UU' <<'END_OF_FILE'
- Xbegin 666 msdos/makefile.bor
- XM(R!-86ME9FEL92!F;W(@6FEP+"!::7!#;&]A:RP@6FEP3F]T92!A;F0@6FEP
- XM4W!L:70@9F]R#0HC($)O<FQA;F0@*%1U<F)O*2!#*RL@,2XP(&]R(#(N,"X-
- XM"B,@5V%R;FEN9SH@=&AI<R!F:6QE(&ES(&YO="!S=6ET86)L92!F;W(@5'5R
- XM8F\@0R R+C N(%5S92!Z:7 N<')J(&EN<W1E860N#0H-"B,@5&\@=7-E+"!D
- XM;R B;6%K92 M9FUA:V5F:6QE+F)O<B(-"@T*(R!705).24Y'.B!T:&4@<VUA
- XM;&P@;6]D96P@:7,@;F]T('-U<'!O<G1E9"X@66]U(&UU<W0@=7-E('1H92!C
- XM;VUP86-T(&UO9&5L+@T*(R!!9&0@+41334%,3%]-14T@;W(@+41-141)54U?
- XM345-('1O($-&3$%'4R!I9B!Y;W4@=VES:"!T;R!R961U8V4@=&AE(&UE;6]R
- XM>0T*(R!R97%U:7)E;65N=',N($%D9" M1$Y/7T%332!T;R!#1DQ!1U,@86YD
- XM(')E;6]V92!M871C:"YO8FH@9G)O;2!/0DI)(&EF#0HC('EO=2!D;R!N;W0@
- XM:&%V92!T87-M+@T*#0I#4EE05$\]#0I#3$]!2ST-"D-21DQ!1ST-"@T*(R @
- XM*BHJ($9O<B!E;F-R>7!T:6]N('9E<G-I;VXL(')E;6]V92!T:&4@(R!A="!T
- XM:&4@9G)O;G0@;V8@;F5X=" S(&QI;F5S("HJ*@T*(T-265!43SUC<GEP="YO
- XM8FH-"B-#3$]!2SUZ:7!C;&]A:RYE>&4-"B-#4D9,04<]+41#4EE05 T*#0HC
- XM("TM+2TM+2TM+2TM+2T@5'5R8F\@0RLK+"!";W)L86YD($,K*R M+2TM+2TM
- XM+2TM+2TM#0I-3T1%3#TM;6,-"B-#1DQ!1U,]+7<@+7<M969F("UW+61E9B M
- XM=RUS:6<@+7<M8VQN("UA("UD("U'("U/("U:("0H34]$14PI("0H0U)&3$%'
- XM*0T*0T9,04=3/2U/,B M=R M=RUC;&X@)"A-3T1%3"D@)"A#4D9,04<I#0I5
- XM5$E,1DQ!1U,]+4155$E,("0H0T9,04=3*2 M;PT*0T,]8F-C#0I,1#UB8V,-
- XM"B,@("!R97!L86-E(&)C8R!W:71H('1C8R!F;W(@5'5R8F\@0RLK(#$N, T*
- XM3$1&3$%'4STD*$U/1$5,*0T*05,]=&%S;0T*05-&3$%'4STM;6P@+70@+41$
- XM64Y?04Q,3T,@+4134U].15%?1%,-"@T*(R M+2TM+2TM+2TM+2TM($-O;6UO
- XM;B!D96-L87)A=&EO;G,Z#0I35%))4#UR96T-"B,@(" @268@>6]U(&1O;B=T
- XM(&AA=F4@;'IE>&4L(&=E="!I="X@5&AE;B!D969I;F4Z#0HC4U1225 ];'IE
- XM>&4-"B,@(" @3W(@:68@>6]U)W9E(')E9VES=&5R960@4$M,251%+"!T:&5N
- XM(&1E9FEN93H-"B-35%))4#UP:VQI=&4-"B,@(" @5&AI<R!M86ME<R!A(&)I
- XM9R!D:69F97)E;F-E(&EN("YE>&4@<VEZ92 H86YD('!O<W-I8FQY(&QO860@
- XM=&EM92D-"@T*(R M+2TM+2TM+2TM+2TM(%5S960@8GD@:6YS=&%L;"!R=6QE
- XM#0HC('-E="!"24X@=&\@=&AE(&1I<F5C=&]R>2!Y;W4@=V%N="!T;R!I;G-T
- XM86QL('1H92!E>&5C=71A8FQE<R!T;PT*0DE.(#T@8SI<=71I; T*#0HC('9A
- XM<FEA8FQE<PT*3T)*6B ]('II<"YO8FH@>FEP9FEL92YO8FH@>FEP=7 N;V)J
- XM(&9I;&5I;RYO8FH@=71I;"YO8FH@9VQO8F%L<RYO8FH@)"A#4EE05$\I#0H-
- XM"D]"2DD@/2!D969L871E+F]B:B!T<F5E<RYO8FH@8FET<RYO8FH@;6%T8V@N
- XM;V)J#0HC(')E;6]V92!M871C:"YO8FH@:68@>6]U(&1O(&YO="!H879E('1A
- XM<VT-"@T*3T)*52 ]('II<&9I;&5?+F]B:B!Z:7!U<%\N;V)J(&9I;&5I;U\N
- XM;V)J('5T:6Q?+F]B:B!G;&]B86QS+F]B:@T*3T)*3B ]('II<&YO=&4N;V)J
- XM(" D*$]"2E4I#0I/0DI#(#T@>FEP8VQO86LN;V)J("0H3T)*52D@8W)Y<'1?
- XM+F]B:@T*3T)*4R ]('II<'-P;&ET+F]B:B D*$]"2E4I#0H-"EI)4%,@/2!Z
- XM:7 N97AE('II<&YO=&4N97AE('II<'-P;&ET+F5X92 D*$-,3T%+*0T*#0IZ
- XM:7!S.@DD*%I)4%,I#0H-"GII<"YO8FHZ"7II<"YH('II<&5R<BYH('1A:6QO
- XM<BYH(')E=FES:6]N+F@@>FEP+F,-"@DD*$-#*2 M8R D*$-&3$%'4RD@)"HN
- XM8PT*#0IZ:7!F:6QE+F]B:CH)>FEP+F@@>FEP97)R+F@@=&%I;&]R+F@@>FEP
- XM9FEL92YC#0H))"A#0RD@+6,@)"A#1DQ!1U,I("0J+F,-"@T*>FEP=7 N;V)J
- XM.@EZ:7 N:"!Z:7!E<G(N:"!T86EL;W(N:"!R979I<VEO;BYH('II<'5P+F,-
- XM"@DD*$-#*2 M8R D*$-&3$%'4RD@)"HN8PT*#0IF:6QE:6\N;V)J.@EZ:7 N
- XM:"!Z:7!E<G(N:"!T86EL;W(N:"!F:6QE:6\N8PT*"20H0T,I("UC("0H0T9,
- XM04=3*2 D*BYC#0H-"G5T:6PN;V)J.@EZ:7 N:"!Z:7!E<G(N:"!T86EL;W(N
- XM:"!U=&EL+F,-"@DD*$-#*2 M8R D*$-&3$%'4RD@)"HN8PT*#0IG;&]B86QS
- XM+F]B:CH)>FEP+F@@>FEP97)R+F@@=&%I;&]R+F@@9VQO8F%L<RYC#0H))"A#
- XM0RD@+6,@)"A#1DQ!1U,I("0J+F,-"@T*9&5F;&%T92YO8FHZ"7II<"YH('II
- XM<&5R<BYH('1A:6QO<BYH(&1E9FQA=&4N8PT*"20H0T,I("UC("0H0T9,04=3
- XM*2 D*BYC#0H-"G1R965S+F]B:CH)>FEP+F@@>FEP97)R+F@@=&%I;&]R+F@@
- XM=')E97,N8PT*"20H0T,I("UC("0H0T9,04=3*2 D*BYC#0H-"F)I=',N;V)J
- XM.@EZ:7 N:"!Z:7!E<G(N:"!T86EL;W(N:"!B:71S+F,-"@DD*$-#*2 M8R D
- XM*$-&3$%'4RD@)"HN8PT*#0IC<GEP="YO8FHZ"7II<"YH('II<&5R<BYH('1A
- XM:6QO<BYH(&-R>7!T+F,-"@DD*$-#*2 M8R D*$-&3$%'4RD@)"HN8PT*#0IZ
- XM:7!C;&]A:RYO8FHZ"7II<"YH('II<&5R<BYH('1A:6QO<BYH(')E=FES:6]N
- XM+F@@>FEP8VQO86LN8PT*"20H0T,I("UC("0H0T9,04=3*2 D*BYC#0H-"GII
- XM<&YO=&4N;V)J.@EZ:7 N:"!Z:7!E<G(N:"!T86EL;W(N:"!R979I<VEO;BYH
- XM('II<&YO=&4N8PT*"20H0T,I("UC("0H0T9,04=3*2 D*BYC#0H-"GII<'-P
- XM;&ET+F]B:CH)>FEP<W!L:70N8R!Z:7 N:"!Z:7!E<G(N:"!T86EL;W(N:"!R
- XM979I<VEO;BYH#0H))"A#0RD@+6,@)"A#1DQ!1U,I("0J+F,-"@T*>FEP9FEL
- XM95\N;V)J.@EZ:7!F:6QE+F,@>FEP+F@@>FEP97)R+F@@=&%I;&]R+F@-"@DD
- XM*$-#*2 M8R D*%5424Q&3$%'4RDD*B!Z:7!F:6QE+F,-"@T*>FEP=7!?+F]B
- XM:CH)>FEP=7 N8R!Z:7 N:"!Z:7!E<G(N:"!T86EL;W(N: T*"20H0T,I("UC
- XM("0H551)3$9,04=3*20J('II<'5P+F,-"@T*9FEL96EO7RYO8FHZ"69I;&5I
- XM;RYC('II<"YH('II<&5R<BYH('1A:6QO<BYH#0H))"A#0RD@+6,@)"A55$E,
- XM1DQ!1U,I)"H@9FEL96EO+F,-"@T*=71I;%\N;V)J.@EU=&EL+F,@>FEP+F@@
- XM>FEP97)R+F@@=&%I;&]R+F@-"@DD*$-#*2 M8R D*%5424Q&3$%'4RDD*B!F
- XM:6QE:6\N8PT*#0IC<GEP=%\N;V)J.@EC<GEP="YC('II<"YH('II<&5R<BYH
- XM('1A:6QO<BYH#0H))"A#0RD@+6,@)"A55$E,1DQ!1U,I)"H@8W)Y<'0N8PT*
- XM#0IM871C:"YO8FHZ"6UA=&-H+F%S;0T*"20H05,I("0H05-&3$%'4RD@;6%T
- XM8V@[#0H-"B,@=V4@;75S="!C=70@=&AE(&-O;6UA;F0@;&EN92!T;R!F:70@
- XM:6X@=&AE($U3+T1/4R Q,C@@8GET92!L:6UI=#H-"GII<"YE>&4Z("0H3T)*
- XM6BD@)"A/0DI)*0T*"65C:&\@)"A/0DI:*2 ^('II<"YR<W -"@EE8VAO("0H
- XM3T)*22D@/CX@>FEP+G)S< T*"20H3$0I("0H3$1&3$%'4RD@0'II<"YR<W -
- XM"@ED96P@>FEP+G)S< T*"20H4U1225 I('II<"YE>&4-"@T*>FEP8VQO86LN
- XM97AE.B D*$]"2D,I#0H)96-H;R D*$]"2D,I(#X@>FEP8RYR<W -"@DD*$Q$
- XM*2 D*$Q$1DQ!1U,I($!Z:7!C+G)S< T*"61E;"!Z:7!C+G)S< T*"20H4U12
- XM25 I('II<&-L;V%K+F5X90T*#0IZ:7!N;W1E+F5X93H@)"A/0DI.*0T*"65C
- XM:&\@)"A/0DI.*2 ^('II<&XN<G-P#0H))"A,1"D@)"A,1$9,04=3*2! >FEP
- XM;BYR<W -"@ED96P@>FEP;BYR<W -"@DD*%-44DE0*2!Z:7!N;W1E+F5X90T*
- XM#0IZ:7!S<&QI="YE>&4Z("0H3T)*4RD-"@EE8VAO("0H3T)*4RD@/B!Z:7!S
- XM+G)S< T*"20H3$0I("0H3$1&3$%'4RD@0'II<',N<G-P#0H)9&5L('II<',N
- XM<G-P#0H))"A35%))4"D@>FEP<W!L:70N97AE#0H-"FEN<W1A;&PZ"20H6DE0
- XM4RD-"@EC;W!Y("]B("HN97AE("0H0DE.*0T*#0IC;&5A;CH-"@ED96P@*BYO
- X08FH-"@ED96P@*BYE>&4-"GAE
- X
- Xend
- END_OF_FILE
- if test 5393 -ne `wc -c <'msdos/makefile.bor.UU'`; then
- echo shar: \"'msdos/makefile.bor.UU'\" unpacked with wrong size!
- else
- echo shar: Uudecoding \"'msdos/makefile.bor'\" \(3886 characters\)
- cat msdos/makefile.bor.UU | uudecode
- if test 3886 -ne `wc -c <'msdos/makefile.bor'`; then
- echo shar: \"'msdos/makefile.bor'\" uudecoded with wrong size!
- else
- rm msdos/makefile.bor.UU
- fi
- fi
- # end of 'msdos/makefile.bor.UU'
- fi
- if test -f 'nt/makefile.nt.UU' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'nt/makefile.nt.UU'\"
- else
- echo shar: Extracting \"'nt/makefile.nt.UU'\" \(2631 characters\)
- sed "s/^X//" >'nt/makefile.nt.UU' <<'END_OF_FILE'
- Xbegin 666 nt/makefile.nt
- XM(R!.34%+12!-86ME9FEL90T*(R!$+D9E:6YL96EB(#<O.3(@="UD879E9F5
- XM;6EC<F]S;V9T+F-O;0T*(R!7:6YD;W=S($Y4#0H-"B,@3FUA:V4@;6%C<F]S
- XM(&9O<B!B=6EL9&EN9R!7:6YD;W=S($Y4(&%P<&QI8V%T:6]N<PT*(6EN8VQU
- XM9&4@/&YT=VEN,S(N;6%K/@T*#0I04D]*/7II< T*3T)*/4))5%,N;V)J($-2
- XM65!4+F]B:B!$149,051%+F]B:B!&24Q%24\N;V)J($=,3T)!3%,N;V)J($U+
- XM5$E-12YO8FH@5%)%15,N;V)J(%5424PN;V)J(%I)4"YO8FH@6DE01DE,12YO
- XM8FH@6DE055 N;V)J#0I,24)303UC;VUD;&<S,BYL:6(@9V1I,S(N;&EB(&ME
- XM<FYE;#,R+FQI8B!L:6)C+FQI8B!L:6)C>#,R+FQI8B!L>C,R+FQI8B!M<'(N
- XM;&EB(&YE=&%P:3,R+FQI8B!N=&1L;"YL:6(@#0I,24)30CUW:6YS=')M+FQI
- XM8B!R<&-N9'(N;&EB(')P8VYS-"YL:6(@<G!C<G0T+FQI8B!S:&5L;#,R+FQI
- XM8B!U<V5R,S(N;&EB('5S97)R=&PN;&EB#0I,24)3/20H3$E"4T$I("0H3$E"
- XM4T(I#0IC=F%R<STD*&-V87)S*2 M1$U31$]3("U$0U)94%0@+41.3U]!4TT-
- XM"@T*86QL(#H@>FEP+F5X90T*#0I"2513+F]B:B Z($))5%,N8PT*(" @("0H
- XM8V,I("0H8V9L86=S*2 D*&-V87)S*2!"2513+F,-"B @(" D*&-V=&]B:BD@
- XM0DE44RYO8FH-"@T*0U)94%0N;V)J(#H@0U)94%0N8PT*(" @("0H8V,I("0H
- XM8V9L86=S*2 D*&-V87)S*2!#4EE05"YC#0H@(" @)"AC=G1O8FHI($-265!4
- XM+F]B:@T*#0I$149,051%+F]B:B Z($1%1DQ!5$4N8PT*(" @("0H8V,I("0H
- XM8V9L86=S*2 D*&-V87)S*2!$149,051%+F,-"B @(" D*&-V=&]B:BD@1$5&
- XM3$%412YO8FH-"@T*1DE,14E/+F]B:B Z($9)3$5)3RYC#0H@(" @)"AC8RD@
- XM)"AC9FQA9W,I("0H8W9A<G,I($9)3$5)3RYC#0H@(" @)"AC=G1O8FHI($9)
- XM3$5)3RYO8FH-"@T*1TQ/0D%,4RYO8FH@.B!'3$]"04Q3+F,-"B @(" D*&-C
- XM*2 D*&-F;&%G<RD@)"AC=F%R<RD@1TQ/0D%,4RYC#0H@(" @)"AC=G1O8FHI
- XM($=,3T)!3%,N;V)J#0H-"DU+5$E-12YO8FH@.B!-2U1)344N8PT*(" @("0H
- XM8V,I("0H8V9L86=S*2 D*&-V87)S*2!-2U1)344N8PT*(" @("0H8W9T;V)J
- XM*2!-2U1)344N;V)J#0H-"E121453+F]B:B Z(%121453+F,-"B @(" D*&-C
- XM*2 D*&-F;&%G<RD@)"AC=F%R<RD@5%)%15,N8PT*(" @("0H8W9T;V)J*2!4
- XM4D5%4RYO8FH-"@T*551)3"YO8FH@.B!55$E,+F,-"B @(" D*&-C*2 D*&-F
- XM;&%G<RD@)"AC=F%R<RD@551)3"YC#0H@(" @)"AC=G1O8FHI(%5424PN;V)J
- XM#0H-"EI)4"YO8FH@.B!:25 N8PT*(" @("0H8V,I("0H8V9L86=S*2 D*&-V
- XM87)S*2!:25 N8PT*(" @("0H8W9T;V)J*2!:25 N;V)J#0H-"EI)4$-,3T%+
- XM+F]B:B Z(%I)4$-,3T%++F,-"B @(" D*&-C*2 D*&-F;&%G<RD@)"AC=F%R
- XM<RD@6DE00TQ/04LN8PT*(" @("0H8W9T;V)J*2!:25!#3$]!2RYO8FH-"@T*
- XM6DE01DE,12YO8FH@.B!:25!&24Q%+F,-"B @(" D*&-C*2 D*&-F;&%G<RD@
- XM)"AC=F%R<RD@6DE01DE,12YC#0H@(" @)"AC=G1O8FHI(%I)4$9)3$4N;V)J
- XM#0H-"EI)4$Y/5$4N;V)J(#H@6DE03D]412YC#0H@(" @)"AC8RD@)"AC9FQA
- XM9W,I("0H8W9A<G,I(%I)4$Y/5$4N8PT*(" @("0H8W9T;V)J*2!:25!.3U1%
- XM+F]B:@T*#0I:25!34$Q)5"YO8FH@.B!:25!34$Q)5"YC#0H@(" @)"AC8RD@
- XM)"AC9FQA9W,I("0H8W9A<G,I(%I)4%-03$E4+F,-"B @(" D*&-V=&]B:BD@
- XM6DE04U!,250N;V)J#0H-"EI)4%50+F]B:B Z(%I)4%50+F,-"B @(" D*&-C
- XM*2 D*&-F;&%G<RD@)"AC=F%R<RD@6DE055 N8PT*(" @("0H8W9T;V)J*2!:
- XM25!54"YO8FH-"@T*>FEP+F5X92 Z("0H3T)**0T*(" @("0H;&EN:RD@)"AC
- XJ;VYF;&%G<RD@+6]U=#HD*%!23THI+F5X92 D*$]"2BD@)"A,24)3*0T*
- X
- Xend
- END_OF_FILE
- if test 2631 -ne `wc -c <'nt/makefile.nt.UU'`; then
- echo shar: \"'nt/makefile.nt.UU'\" unpacked with wrong size!
- else
- echo shar: Uudecoding \"'nt/makefile.nt'\" \(1887 characters\)
- cat nt/makefile.nt.UU | uudecode
- if test 1887 -ne `wc -c <'nt/makefile.nt'`; then
- echo shar: \"'nt/makefile.nt'\" uudecoded with wrong size!
- else
- rm nt/makefile.nt.UU
- fi
- fi
- # end of 'nt/makefile.nt.UU'
- fi
- if test -f 'os2/os2zip.h.UU' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'os2/os2zip.h.UU'\"
- else
- echo shar: Extracting \"'os2/os2zip.h.UU'\" \(3399 characters\)
- sed "s/^X//" >'os2/os2zip.h.UU' <<'END_OF_FILE'
- Xbegin 666 os2/os2zip.h
- XM+RH-"B J($ H(RD@9&ER+F@@,2XT(#@W+S$Q+S V(" @4'5B;&EC($1O;6%I
- XM;BX-"B J#0H@*B @02!P=6)L:6,@9&]M86EN(&EM<&QE;65N=&%T:6]N(&]F
- XM($)31"!D:7)E8W1O<GD@<F]U=&EN97,@9F]R#0H@*B @35,M1$]3+B @5W)I
- XM='1E;B!B>2!-:6-H865L(%)E;F1E;&P@*'MU=6YE="QU=&%I?6UI8VAA96Q
- XM9V%R9FEE;&0I+ T*("H@($%U9W5S=" Q.3@W#0H@*@T*("H@($5N:&%N8V5D
- XM(&%N9"!P;W)T960@=&\@3U,O,B!B>2!+86D@57=E(%)O;6UE;#L@861D960@
- XM<V-A;F1I<B@I('!R;W1O='EP90T*("H@($1E8V5M8F5R(#$Y.#DL($9E8G)U
- XM87)Y(#$Y.3 -"B J("!#:&%N9V4@;V8@34%84$%42$Q%3B!F;W(@2%!&4RP@
- XM3V-T;V)E<B Q.3DP#0H@*B\-"@T*#0HC9&5F:6YE($U!6$Y!34Q%3B @,C4V
- XM#0HC9&5F:6YE($U!6%!!5$A,14X@,C4V#0H-"B-D969I;F4@05]23TY,62 @
- XM(" P># Q#0HC9&5F:6YE($%?2$E$1$5.(" @,'@P,@T*(V1E9FEN92!!7U-9
- XM4U1%32 @(#!X,#0-"B-D969I;F4@05],04)%3" @(" P># X#0HC9&5F:6YE
- XM($%?1$E2(" @(" @,'@Q, T*(V1E9FEN92!!7T%20TA)5D4@(#!X,C -"@T*
- XM#0IS=')U8W0@9&ER96-T#0I[#0H@(&EN;U]T(" @(&1?:6YO.R @(" @(" @
- XM(" @(" @(" @(" O*B!A(&)I="!O9B!A(&9A<F-E("HO#0H@(&EN=" @(" @
- XM(&1?<F5C;&5N.R @(" @(" @(" @(" @(" O*B!M;W)E(&9A<F-E("HO#0H@
- XM(&EN=" @(" @(&1?;F%M;&5N.R @(" @(" @(" @(" @(" O*B!L96YG=&@@
- XM;V8@9%]N86UE("HO#0H@(&-H87(@(" @(&1?;F%M95M-05A.04U,14X@*R Q
- XM73L@(" O*B!N=6QL('1E<FUI;F%T960@*B\-"B @+RH@;F]N<W1A;F1A<F0@
- XM9FEE;&1S("HO#0H@(&QO;F<@(" @(&1?<VEZ93L@(" @(" @(" @(" @(" @
- XM(" O*B!S:7IE(&EN(&)Y=&5S("HO#0H@('5N<VEG;F5D(&1?;6]D93L@(" @
- XM(" @(" @(" @(" @(" O*B!$3U,@;W(@3U,O,B!F:6QE(&%T=')I8G5T97,@
- XM*B\-"B @=6YS:6=N960@9%]T:6UE.PT*("!U;G-I9VYE9"!D7V1A=&4[#0I]
- XM.PT*#0HO*B!4:&4@9FEE;&1S(&1?<VEZ92!A;F0@9%]M;V1E(&%R92!E>'1E
- XM;G-I;VYS(&)Y(&UE("A+86D@57=E(%)O;6UE;"DN#0H@*B!4:&4@9FEN9%]F
- XM:7)S="!A;F0@9FEN9%]N97AT(&-A;&QS(&1E;&EV97(@=&AI<R!D871A('=I
- XM=&AO=70@86YY(&5X=')A(&-O<W0N#0H@*B!)9B!T:&ES(&1A=&$@:7,@;F5E
- XM9&5D+"!T:&5S92!F:65L9',@<V%V92!A(&QO="!O9B!E>'1R82!C86QL<R!T
- XM;R!S=&%T*"D-"B J("AE86-H('-T870H*2!A9V%I;B!P97)F;W)M<R!A(&9I
- XM;F1?9FER<W0@8V%L;" A*2X-"B J+PT*#0IS=')U8W0@7V1I<F-O;G1E;G1S
- XM#0I[#0H@(&-H87(@*E]D7V5N=')Y.PT*("!L;VYG(%]D7W-I>F4[#0H@('5N
- XM<VEG;F5D(%]D7VUO9&4L(%]D7W1I;64L(%]D7V1A=&4[#0H@('-T<G5C="!?
- XM9&ER8V]N=&5N=',@*E]D7VYE>'0[#0I].PT*#0IT>7!E9&5F('-T<G5C="!?
- XM9&ER9&5S8PT*>PT*("!I;G0@(&1D7VED.R @(" @(" @(" @(" @(" @(" O
- XM*B!U;FEQ=65L>2!I9&5N=&EF>2!E86-H(&]P96X@9&ER96-T;W)Y("HO#0H@
- XM(&QO;F<@9&1?;&]C.R @(" @(" @(" @(" @(" @("\J('=H97)E('=E(&%R
- XM92!I;B!D:7)E8W1O<GD@96YT<GD@:7,@=&AI<R J+PT*("!S=')U8W0@7V1I
- XM<F-O;G1E;G1S("ID9%]C;VYT96YT<SL@(" O*B!P;VEN=&5R('1O(&-O;G1E
- XM;G1S(&]F(&1I<B J+PT*("!S=')U8W0@7V1I<F-O;G1E;G1S("ID9%]C<#L@
- XM(" @(" @(" O*B!P;VEN=&5R('1O(&-U<G)E;G0@<&]S:71I;VX@*B\-"GT-
- XM"D1)4CL-"@T*#0IE>'1E<FX@1$E2("IO<&5N9&ER*&-H87(@*BD[#0IE>'1E
- XM<FX@<W1R=6-T(&1I<F5C=" J<F5A9&1I<BA$25(@*BD[#0IE>'1E<FX@=F]I
- XM9"!S965K9&ER*$1)4B J+"!L;VYG*3L-"F5X=&5R;B!L;VYG('1E;&QD:7(H
- XM1$E2("HI.PT*97AT97)N('9O:60@8VQO<V5D:7(H1$E2("HI.PT*(V1E9FEN
- XM92!R97=I;F1D:7(H9&ER<"D@<V5E:V1I<BAD:7)P+" P3"D-"@T*:6YT($=E
- XM=$9I;&5-;V1E*&-H87(@*FYA;64I.PT*;&]N9R!'971&:6QE5&EM92AC:&%R
- XM("IN86UE*3L-"G9O:60@4V5T1FEL951I;64H8VAA<B J<&%T:"P@;&]N9R!S
- XM=&%M<"D[#0H-"FEN="!)<T9I;&5.86UE5F%L:60H8VAA<B J;F%M92D[#0II
- XM;G0@27-&:6QE4WES=&5M1D%4*&-H87(@*F1I<BD[#0IV;VED($-H86YG94YA
- XM;65&;W)&050H8VAA<B J;F%M92D[#0H-"F-H87(@*D=E=$QO;F=.86UE14$H
- XM8VAA<B J;F%M92D[#0IC:&%R("I'971,;VYG4&%T:$5!*&-H87(@*FYA;64I
- XM.PT*=F]I9"!'971%07,H8VAA<B J;F%M92P@8VAA<B J*F)U9G!T<BP@=6YS
- XM:6=N960@*G-I>F4L#0H@(" @(" @(" @(" @(" @(" @(" @("!C:&%R("HJ
- XM8V)U9G!T<BP@=6YS:6=N960@*F-S:7IE*3L-"@T*8VAA<B J4W1R:6YG3&]W
- X-97(H8VAA<B J*3L-"F=N
- X
- Xend
- END_OF_FILE
- if test 3399 -ne `wc -c <'os2/os2zip.h.UU'`; then
- echo shar: \"'os2/os2zip.h.UU'\" unpacked with wrong size!
- else
- echo shar: Uudecoding \"'os2/os2zip.h'\" \(2443 characters\)
- cat os2/os2zip.h.UU | uudecode
- if test 2443 -ne `wc -c <'os2/os2zip.h'`; then
- echo shar: \"'os2/os2zip.h'\" uudecoded with wrong size!
- else
- rm os2/os2zip.h.UU
- fi
- fi
- # end of 'os2/os2zip.h.UU'
- fi
- if test -f 'ziperr.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'ziperr.h'\"
- else
- echo shar: Extracting \"'ziperr.h'\" \(2586 characters\)
- sed "s/^X//" >'ziperr.h' <<'END_OF_FILE'
- X/*
- X
- X Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,
- X Kai Uwe Rommel and Igor Mandrichenko.
- X Permission is granted to any individual or institution to use, copy, or
- X redistribute this software so long as all of the original files are included
- X unmodified, that it is not sold for profit, and that this copyright notice
- X is retained.
- X
- X*/
- X
- X/*
- X * ziperr.h by Mark Adler.
- X */
- X
- X/* Error return values. The values 0..4 and 12..18 follow the conventions
- X of PKZIP. The values 4..10 are all assigned to "insufficient memory"
- X by PKZIP, so the codes 5..10 are used here for other purposes. */
- X#define ZE_MISS -1 /* used by procname(), zipbare() */
- X#define ZE_OK 0 /* success */
- X#define ZE_EOF 2 /* unexpected end of zip file */
- X#define ZE_FORM 3 /* zip file structure error */
- X#define ZE_MEM 4 /* out of memory */
- X#define ZE_LOGIC 5 /* internal logic error */
- X#define ZE_BIG 6 /* entry too large to split */
- X#define ZE_NOTE 7 /* invalid comment format */
- X#define ZE_ABORT 9 /* user interrupt or termination */
- X#define ZE_TEMP 10 /* error using a temp file */
- X#define ZE_READ 11 /* read or seek error */
- X#define ZE_NONE 12 /* nothing to do */
- X#define ZE_NAME 13 /* missing or empty zip file */
- X#define ZE_WRITE 14 /* error writing to a file */
- X#define ZE_CREAT 15 /* couldn't open to write */
- X#define ZE_PARMS 16 /* bad command line */
- X#define ZE_OPEN 18 /* could not open a specified file to read */
- X/* Macro to determine whether to call perror() or not */
- X#define PERR(e) (e==ZE_READ||e==ZE_WRITE||e==ZE_CREAT||e==ZE_TEMP||e==ZE_OPEN)
- X
- X#ifdef GLOBALS
- X/* Error messages for the err() function in the zip programs */
- Xchar *errors[] = {
- X/* 1 */ "",
- X/* 2 */ "Unexpected end of zip file",
- X/* 3 */ "Zip file structure invalid",
- X/* 4 */ "Out of memory",
- X/* 5 */ "Internal logic error",
- X/* 6 */ "Entry too big to split",
- X/* 7 */ "Invalid comment format",
- X/* 8 */ "",
- X/* 9 */ "Interrupted",
- X/* 10 */ "Temporary file failure",
- X/* 11 */ "Input file read failure",
- X/* 12 */ "Nothing to do!",
- X/* 13 */ "Missing or empty zip file",
- X/* 14 */ "Output file write failure",
- X/* 15 */ "Could not create output file",
- X/* 16 */ "Invalid command arguments",
- X/* 17 */ "",
- X/* 18 */ "File not found or no read permission",
- X};
- X#else /* !GLOBALS */
- Xextern char *errors[]; /* Error messages for err() */
- X#endif /* ?GLOBALS */
- END_OF_FILE
- if test 2586 -ne `wc -c <'ziperr.h'`; then
- echo shar: \"'ziperr.h'\" unpacked with wrong size!
- fi
- # end of 'ziperr.h'
- fi
- echo shar: End of archive 10 \(of 11\).
- cp /dev/null ark10isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 11 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
-