mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			1468 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1468 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| .!
 | |
| .!  File:       ZIP.RNH
 | |
| .!
 | |
| .!  Author:     Hunter Goatley
 | |
| .!
 | |
| .!  Date:       October 22, 1991
 | |
| .!
 | |
| .!  Description:
 | |
| .!
 | |
| .!      RUNOFF source file for portable ZIP on-line help for VMS.
 | |
| .!      Adapted from MANUAL, distributed with ZIP.
 | |
| .!
 | |
| .!      To build:       $ RUNOFF ZIP.RNH
 | |
| .!                      $ LIBR/HELP/INSERT libr ZIP
 | |
| .!
 | |
| .!  Modification history:
 | |
| .!
 | |
| .!      Hunter Goatley          22-OCT-1991 20:45
 | |
| .!              Genesis.
 | |
| .!      Jean-loup Gailly        25 March 92
 | |
| .!              Adaptation to zip 1.6.
 | |
| .!      Igor Mandrichenko       9-JUN-1992
 | |
| .!              Added explanation of -V option.
 | |
| .!      Jean-loup Gailly        14 June 92
 | |
| .!              Adaptation to zip 1.8.
 | |
| .!      Jean-loup Gailly        20 Aug 92
 | |
| .!              Adaptation to zip 1.9.
 | |
| .!      Jean-loup Gailly        31 Aug 93
 | |
| .!              Adaptation to zip 2.0.
 | |
| .!      Christian Spieler       20 Sep 93
 | |
| .!              Adaptation to zip 2.0 and OpenVMS completed.
 | |
| .!      Christian Spieler       05 Dec 95
 | |
| .!              Adaptation to zip 2.1, new options.
 | |
| .!      Christian Spieler       20 Jan 96
 | |
| .!              Changed -L and -v descriptions.
 | |
| .!      Christian Spieler       11 Feb 96
 | |
| .!              Added -X option.
 | |
| .!      Onno van der Linden,
 | |
| .!      Christian Spieler       13 Mar 96
 | |
| .!              Removed -ee option.
 | |
| .!      Christian Spieler       09 Feb 96
 | |
| .!              Updated copyright notice, Zip version.
 | |
| .!      Christian Spieler       21 Jul 97
 | |
| .!              Added -P, -R, -i@, -x@ and -tt options, modified for Zip 2.2.
 | |
| .!      Christian Spieler       14 Oct 97
 | |
| .!              unified spelling of "Info-ZIP", final cleanups for 2.2.
 | |
| .!      Steven Schweda          10 May 2007
 | |
| .!              General update for version 3.0.
 | |
| .!      Ed Gordon               12 May 2007
 | |
| .!              Minor updates for version 3.0.
 | |
| .!
 | |
| .noflags
 | |
| .lm4 .rm72
 | |
| .indent -4
 | |
| 1 ZIP
 | |
| .br
 | |
| Zip is a compression and file packaging utility for several operating
 | |
| systems, including UNIX, VMS,  MSDOS, OS/2, Windows 9x/NT/XP, Minix, Atari,
 | |
| Macintosh, Amiga, and Acorn RISC OS.  It is analogous to a combination of
 | |
| tar and compress and is compatible with PKZIP (Phil Katz's ZIP) for
 | |
| MSDOS systems.
 | |
| .sk
 | |
| Zip is useful for packaging a set of files for distribution, for
 | |
| archiving files, and for saving disk space by temporarily compressing
 | |
| unused files or directories.  A companion program, UnZip, unpacks Zip
 | |
| archives.
 | |
| .sk
 | |
| For brief help on Zip or UnZip, run the program without specifying any
 | |
| parameters on the command line.
 | |
| .sk
 | |
| This description covers the Zip program which uses a UNIX-style command
 | |
| line.  A separate program is available which provides a VMS-style CLI
 | |
| command line, and it has its own documentation.  Refer to the Zip
 | |
| installation instructions for details.
 | |
| .sk
 | |
| Format
 | |
| .sk;.lm+2;.literal
 | |
| ZIP [-options] archive inpath inpath ...
 | |
| .end literal;.lm-2
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Basic_Usage
 | |
| .br
 | |
| Format
 | |
| .sk;.lm+2;.literal
 | |
| ZIP [-options] archive inpath inpath ...
 | |
| .end literal;.lm-2
 | |
| .sk
 | |
| The default action of Zip is to add or replace entries in "archive" from
 | |
| the list of "inpath" file specifications, which can include directories
 | |
| and file names with VMS-style wildcards, or the special name -@ to read
 | |
| file specifications from SYS$INPUT (stdin).
 | |
| .sk
 | |
| With SET PROCESS /PARSE_STYLE = EXTENDED (available on recent non-VAX
 | |
| systems), Zip preserves the case of the command line.  Otherwise, mixed-
 | |
| or upper-case options and arguments must be quoted.  For example,
 | |
| "-V".  Examples in this document generally do not show this quotation,
 | |
| so VAX and /PARSE_STYLE = TRADITIONAL users (that is, troglodytes) will
 | |
| need to add quotation where needed when working with these examples.
 | |
| .sk
 | |
| General
 | |
| .sk
 | |
| Zip reads one or more files, compresses the data (normally), and stores
 | |
| the compressed information into a single Zip archive file, along with
 | |
| information about each file (name, path, date and time of last
 | |
| modification, protection, and check information to verify file
 | |
| integrity).  On a VMS system, Zip can also save VMS/RMS file attributes,
 | |
| allowing UnZip to restore the files without loss of important file
 | |
| attributes.  Zip can pack an entire directory structure into a Zip
 | |
| archive with a single command.
 | |
| .sk
 | |
| Compression
 | |
| .sk
 | |
| Compression ratios of 2:1 to 3:1 are common for text files.  Zip has one
 | |
| standard compression method ("deflate") and can also store files without
 | |
| compression.  Zip (and UnZip) may be built with optional support for the
 | |
| bzip2 compression method.  Then, the user may select bzip2 compression
 | |
| instead of the default "deflate" method.  Zip automatically chooses
 | |
| simple storage over compression for a file, if the specified compression
 | |
| method does not actually compress the data in that file.
 | |
| .sk
 | |
| Compatibility
 | |
| .sk
 | |
| Zip and UnZip can work with archives produced by PKZIP (supporting most
 | |
| PKZIP features up to PKZIP version 4.6), and PKZIP and PKUNZIP can work
 | |
| with archives produced by Zip (with some exceptions, notably streamed
 | |
| archives, but recent changes in the .ZIP file standard may facilitate
 | |
| better compatibility).  Zip version 3.0 is compatible with PKZIP 2.04
 | |
| and also supports the Zip64 extensions of PKZIP 4.5 which allows
 | |
| archives as well as files to exceed the previous 2 GB limit (4 GB in
 | |
| some cases).  Zip also supports bzip2 compression if the bzip2 library
 | |
| is included when Zip is built.  Note that PKUNZIP 1.10 cannot extract
 | |
| files produced by PKZIP 2.04 or Zip 3.0.  You must use PKUNZIP 2.04g or
 | |
| UnZip 5.0p1 (or later versions) to extract them.
 | |
| .sk
 | |
| Large Archives and Zip64
 | |
| .sk
 | |
| Where the operating system and C run-time support allow, Zip 3.0 and
 | |
| UnZip 6.0 (and later versions) support large files (input and archive),
 | |
| using the Zip64 extensions to the original .ZIP file format.  On VMS,
 | |
| this genarally means non-VAX systems with VMS V7.2 or later (perhaps
 | |
| requiring a C RTL ECO before VMS V7.3-2).
 | |
| .sk
 | |
| Zip automatically uses the Zip64 extensions when a file larger than 2 GB
 | |
| is added to an archive, an archive containing a Zip64 entry is updated
 | |
| (if the resulting archive still needs Zip64), the size of the archive
 | |
| will exceed 4 GB, or when the number of entries in the archive will
 | |
| exceed about 64K.  Zip64 is also used for archives streamed to a
 | |
| non-seekable output device.  You must use a 4.5 compatible UnZip to
 | |
| extract files using the Zip64 extensions such as UnZip 6.0 or later.
 | |
| .sk
 | |
| In addition, streamed archives, entries encrypted with standard
 | |
| encryption, or split archives created with the pause option may not be
 | |
| compatible with PKZIP as data descriptors are used, and PKZIP at the 
 | |
| time of this writing does not support data descriptors (but recent
 | |
| changes in the PKWare published .ZIP file standard now include some
 | |
| support for the data descriptor format Zip uses).
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 More_Usage
 | |
| .br
 | |
| Here is a very simple example of Zip use:
 | |
| .sk;.indent 10;
 | |
| $ zip stuff.zip *.*
 | |
| .sk
 | |
| This will create the Zip archive "stuff.zip" (assuming it does not
 | |
| already exist) and put all the (non-directory) files (";0") from the
 | |
| current default directory into "stuff.zip" in a compressed form.  The
 | |
| archive is opened using a default file specification of
 | |
| "SYS$DISK:[].zip", so specifying "stuff" as the archive name would also
 | |
| create (or use an existing) "stuff.zip", but specifying "stuff.other"
 | |
| would give you that name.  In general, Zip doesn't care about the type
 | |
| in the file specification, but for split archives (archives split over
 | |
| multiple files), the user should normally specify a type-less name,
 | |
| because Zip will normally generate sequentially numbered types ".z01",
 | |
| ".z02", and so on for the early splits, and then the required ".zip" for
 | |
| the last split.  These file types are required by the Zip standard for
 | |
| split archives.
 | |
| .sk
 | |
| Standard VMS wildcard expansion ($SEARCH) is used to interpret the
 | |
| "inpath" file and directory specifications, like the "*.*" in this
 | |
| example.
 | |
| .sk
 | |
| On VMS, the most natural way to archive an entire directory tree is to
 | |
| use a directory-depth wildcard ("[...]").  For example:
 | |
| .sk;.indent 10
 | |
| zip foo [...]*.*
 | |
| .sk
 | |
| This will create the file "foo.zip" containing all the files (";0") and
 | |
| directories in and below the current default directory.  A more
 | |
| UNIX-like way to do this would be to use the -r (--recurse-paths)
 | |
| option:
 | |
| .sk;.indent 10
 | |
| $ zip -r foo *.*
 | |
| .sk
 | |
| Zip avoids including its own output files when selecting files to
 | |
| include in the archive, so it should be safe, as in this case, to create
 | |
| the archive in the same drectory as the input files.
 | |
| .sk
 | |
| One or more specific files, directories, or subdirectories may also be
 | |
| specified:
 | |
| .lm +10;.literal
 | |
| zip foo.zip readme.txt [www...]*.* [.ftp...]*.* -
 | |
|  [.src]*.h [.src]*.c
 | |
| .end literal;.lm -10
 | |
| .sk
 | |
| For security reasons, paths in Zip archives are always stored as
 | |
| relative paths, so some care is needed when creating an archive so that
 | |
| it will create the intended directory structure when UnZip is used to
 | |
| unpack it.
 | |
| .sk
 | |
| To use -r with a specific directory, the name of the directory file
 | |
| itself must be specified:
 | |
| .sk;.indent 10
 | |
| zip -r foo.zip [000000]www.dir ftp.dir
 | |
| .sk
 | |
| You may want to make an archive that contains the files in [.foo], but not
 | |
| record the directory name, "foo".  You can use the -j (junk path) option
 | |
| to leave off the path:
 | |
| .sk;.indent 10
 | |
| $ zip -j foo [.foo]*.*
 | |
| .sk
 | |
| If you are short on disk space, you might not have enough room to hold
 | |
| both the original directory and the corresponding compressed Zip
 | |
| archive.  In this case, you can create the archive in steps, and use the
 | |
| -m option.  For example, if [.foo] contains the subdirectories [.tom],
 | |
| [.dick], and [.harry], you could:
 | |
| .sk
 | |
| .lm +10;.literal
 | |
| zip -m foo [.foo.tom...]*.*
 | |
| zip -m foo [.foo.dick...]*.*
 | |
| zip -m foo [.foo.harry...]*.*
 | |
| .end literal;.lm -10
 | |
| .sk
 | |
| The first command would create foo.zip, and the next two would add to
 | |
| it.  The -m option means "move", and it will cause Zip to delete all
 | |
| files added to the archive after making or updating foo.zip.  No
 | |
| deletions will be done until the Zip operation has completed with no
 | |
| errors.  This option is obviously dangerous and should be used with
 | |
| care, but it does reduce the need for free disk space.  When -m is
 | |
| used, the -T option is recommended and will test the resulting archive
 | |
| before deleting the input files.
 | |
| .sk
 | |
| If a file specification list is too long to fit conveniently on the Zip
 | |
| command line, the -@ option can be used to cause Zip to read a list of
 | |
| file specifications from SYS$INPUT (stdin).  If a DCL command procedure
 | |
| is used, the names can be specified in the procedure:
 | |
| .sk;
 | |
| .lm +10;.literal
 | |
| $ zip foo -@
 | |
| $ deck
 | |
| file_spec_1
 | |
| file_spec_2
 | |
| file_spec_3
 | |
| $ eod
 | |
| .end literal;.lm -10
 | |
| .sk
 | |
| The file specifications can also be put into a separate file, and fed
 | |
| into Zip by explicitly defining SYS$INPUT, or by using PIPE.  For
 | |
| example, with the list in foo.zfl:
 | |
| .sk;
 | |
| .lm +10;.literal
 | |
| $ define /user_mode sys$input foo.zfl
 | |
| $ zip foo -@
 | |
| .end literal;.lm -10;
 | |
| or:
 | |
| .lm +10;.literal
 | |
| $ pipe type foo.zfl | zip foo -@
 | |
| .end literal;.lm -10
 | |
| .sk
 | |
| If Zip is not able to read a file, it issues a warning but continues.
 | |
| See the -MM option for more on how Zip handles patterns that are not
 | |
| matched and files that are not readable.  If some files were skipped, a
 | |
| warning is issued at the end of the Zip operation noting how many files
 | |
| were read and how many skipped.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Comments
 | |
| .br
 | |
| One-line comments may be included in the archive for each file added,
 | |
| using the -c (--entry-comments) option.  File operations (adding,
 | |
| updating) are done first, and the user is then prompted for a one-line
 | |
| comment for each file added or updated.  Enter the comment followed by
 | |
| <Return>, or just <Return> for no comment.
 | |
| .sk
 | |
| A single multi-line comment may be included for the archive as a whole,
 | |
| using the -z (--archive-comment) option.  UnZip (including UnZip SFX)
 | |
| will display this comment when it expands the archive.  The comment is
 | |
| read from SYS$INPUT (stdin), and is terminated by the usual end-of-file
 | |
| character, CTRL/Z.  As usual, in a DCL command procedure, these data can
 | |
| be included in-line in the procedure, or a user may DEFINE SYS$INPUT to
 | |
| a file to get the comment from that file.  Where supported, the DCL PIPE
 | |
| command can also be used to redirect SYS$INPUT from a file.
 | |
| .sk
 | |
| Note that -z (--archive-comment) and -@ (read file specifications from
 | |
| SYS$INPUT (stdin)) can't be used together (successfully).
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Compression
 | |
| .br
 | |
| Zip can archive files with or without compression.  The standard
 | |
| compression method ("deflate") is compatible with all UnZip versions
 | |
| (except really old ones that only understand the "store" method). 
 | |
| Current Zip and UnZip versions may be built with optional support for
 | |
| the bzip2 compression method.  (The bzip2 method can compress better,
 | |
| especially when compressing smaller files, but uses more CPU time, and
 | |
| requires an UnZip which includes the optional bzip2 support.  See the
 | |
| installation instructions for details on adding bzip2 compression
 | |
| support at build time.)
 | |
| .sk
 | |
| Numeric compression level options control the effort put into data
 | |
| compression, with -1 being the fastest, and -9 giving the most
 | |
| compression.
 | |
| .sk
 | |
| Compression control options:
 | |
| .sk;.lm +10;.literal
 | |
| -Z mthd                      use compress method "mthd",
 | |
| --compression-method mthd    "bzip2" or "deflate" (default)
 | |
| 
 | |
| -0  (--store)                no compression
 | |
| -1  (--compress-1)           compression level 1
 | |
| -2  (--compress-2)           compression level 2
 | |
| -3  (--compress-3)           compression level 3
 | |
| -4  (--compress-4)           compression level 4
 | |
| -5  (--compress-5)           compression level 5
 | |
| -6  (--compress-6)           compression level 6
 | |
| -7  (--compress-7)           compression level 7
 | |
| -8  (--compress-8)           compression level 8
 | |
| -9  (--compress-9)           compression level 9
 | |
| .end literal;.lm -10
 | |
| .sk
 | |
| Normally, a file which is already compressed will not be compressed much 
 | |
| further (if at all) by Zip, and trying to do it can waste considerable
 | |
| CPU time.  Zip can suppress compression on files with particular types,
 | |
| specified as a colon- or semi-colon-separated list of file types:
 | |
| .sk;.indent 10
 | |
| -n type1[:type2[...]]  (--suffixes type1[:type2[...]])
 | |
| .sk
 | |
| For example:
 | |
| .sk;.indent 10
 | |
| zip -n .bz2:.gz:.jpeg:.jpg:.mp3:.zip foo [.foo]*.*
 | |
| .sk
 | |
| will put everything (";0") from [.foo] into foo.zip, but will store any
 | |
| files that end in .bz2, .gz, .jpeg, .jpg, .mp3, or .zip, without trying
 | |
| to compress them.
 | |
| .sk
 | |
| The default type list is .Z:.zip:.zoo:.arc:.lzh:.arj, and the comparison
 | |
| is case-insensitive.
 | |
| .sk
 | |
| -9 (--compress-9) will override -n (--suffixes), causing compression to
 | |
| be attempted for all files.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Encryption
 | |
| .br
 | |
| Zip offers optional encryption, using a method which by modern standards
 | |
| is generally considered to be weak.
 | |
| .sk;.literal
 | |
| -e  --encrypt
 | |
| .end literal;.br
 | |
| Encrypt new or updated archive entries using a password which is
 | |
| supplied by the user interactively on the terminal in response to a
 | |
| prompt.  (The password will not be echoed.)  If SYS$COMMAND is not a
 | |
| terminal, Zip will exit with an error.  The password is verified before
 | |
| being accepted.
 | |
| .sk;.literal
 | |
| -P password  --password password
 | |
| .end literal;.br
 | |
| Use "password" to encrypt new or updated archive entries (if any). 
 | |
| USING -P IS INSECURE!   Many multi-user operating systems provide ways
 | |
| for any user (or a privileged user) to see the current command line of
 | |
| any other user.  Even on more secure systems, there is always the threat
 | |
| of over-the-shoulder peeking.  Storing the plaintext password as part of 
 | |
| a command line in a command procedure is even less secure.  Whenever
 | |
| possible, use the non-echoing, interactive password entry method.
 | |
| .sk
 | |
| Because standard Zip encryption is weak, where security is truly
 | |
| important, use a strong encryption program, such as Pretty Good Privacy
 | |
| (PGP) or GNU Privacy Guard (GnuPG), on an archive instead of standard
 | |
| Zip encryption.  A stronger encryption method, such as AES, is planned
 | |
| for Zip 3.1.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Exit_Status
 | |
| .br
 | |
| On VMS, Zip's UNIX-style exit values are mapped into VMS-style status
 | |
| codes with facility code 1955 = %x7A3, and with the inhibit-message
 | |
| (%x10000000) and facility-specific (%x00008000) bits set:
 | |
| .sk
 | |
| .literal
 | |
|    %x17A38001                        normal exit
 | |
|    %x17A38000+ 16* Zip_error_code    warnings
 | |
|    %x17A38002+ 16* Zip_error_code    normal errors
 | |
|    %x17A38004+ 16* Zip_error_code    fatal errors
 | |
| .end literal
 | |
| .sk
 | |
| Note that multiplying the UNIX-style Zip error code by 16 places it
 | |
| conveniently in the hexadecimal representation of the VMS exit code,
 | |
| "__" in %x17A38__s, where "s" is the severity code.  For example, a
 | |
| truncated archive might cause Zip error code 2, which would be
 | |
| transformed into the VMS exit status %x17A38024.
 | |
| .sk
 | |
| The Zip VMS exit codes include severity values which approximate those
 | |
| defined by PKWARE, as shown in the following table:
 | |
| .literal
 | |
| 
 | |
|     VMS      Zip err
 | |
|   severity    code     Error description
 | |
|  ----------+---------+----------------------------------------------
 | |
|   Success       0      Normal; no errors or warnings detected.
 | |
|   Fatal         2      Unexpected end of archive.
 | |
|   Error         3      A generic error in the  archive  format  was
 | |
|                        detected.   Processing  may  have  completed
 | |
|                        successfully anyway;  some  broken  archives
 | |
|                        created by other archivers have simple work-
 | |
|                        arounds.
 | |
|   Fatal         4      Zip was unable to allocate memory for one or
 | |
|                        more  buffers during program initialization.
 | |
|   Fatal         5      A severe error in  the  archive  format  was
 | |
|                        detected.   Processing probably failed imme-
 | |
|                        diately.
 | |
|   Error         6      Entry too large to be split with zipsplit.
 | |
|   Error         7      Invalid comment format.
 | |
|   Fatal         8      Zip -T failed or out of memory.
 | |
|   Error         9      The user aborted zip prematurely  with  con-
 | |
|                        trol-C (or equivalent).
 | |
|   Fatal        10      Zip  encountered an error while using a temp
 | |
|                        file.
 | |
|   Fatal        11      Read or seek error.
 | |
|   Warning      12      Zip has nothing to do.
 | |
|   Error        13      Missing or empty zip file.
 | |
|   Fatal        14      Error writing to a file.
 | |
|   Fatal        15      Zip was unable to create a file to write to.
 | |
|   Error        16      Bad command line parameters.
 | |
|   Error        18      Zip could not open a specified file to read.
 | |
|   Fatal        19      Zip was built with options not supported  on
 | |
|                        this system
 | |
|   Fatal        20      Attempt to read unsupported Zip64 archive
 | |
| .end literal
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Extra_Fields
 | |
| .br
 | |
| The .ZIP file format allows some extra data to be stored with a file in
 | |
| the archive.  For example, where local time zone information is
 | |
| available, Zip can store UTC date-time data for files.  (Look for
 | |
| USE_EF_UT_TIME in a "zip -v" report.)  On VMS, with -V or -VV, Zip will
 | |
| also store VMS-specific file attributes.  These data are packaged as
 | |
| "extra fields" in the archive.  Some extra fields are specific to a
 | |
| particular operating system (like VMS file attributes).  Large files
 | |
| (bigger than 4GB) on any OS require an extra field to hold their 64-bit
 | |
| size data.  Depending on the capabilities of the UnZip program used to
 | |
| expand the archive, these extra fields may be used or ignored when files
 | |
| are extracted from the archive.
 | |
| .sk
 | |
| Some extra fields, like UTC date-times or VMS file attributes, are
 | |
| optional.  Others, like the Zip64 extra field which holds 64-bit sizes
 | |
| for a large file, are required.
 | |
| .sk
 | |
| The -X (--strip-extra) option suppresses the saving of any optional
 | |
| extra fields in the archive.  (Thus, -X conflicts with -V or -VV.)
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Environment
 | |
| .br
 | |
| A user can specify default command-line options and arguments by
 | |
| defining an "environment variable" (that is, a logical name or DCL
 | |
| symbol), "ZIP_OPTS" or "ZIPOPT", to specify them.  If both "ZIP_OPTS" and
 | |
| "ZIPOPT" are specified, the definition of "ZIPOPT" prevails.
 | |
| .sk
 | |
| The C RTL function getenv() is used to sense these variables, so its
 | |
| behavior determines what happens if both a logical name and a symbol are
 | |
| defined.  As of VMS V7.3, a logical name supercedes a symbol.
 | |
| .sk
 | |
| The "zip -v" report should show the perceived settings of these
 | |
| variables.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 File_Names
 | |
| .br
 | |
| Zip deals with file names in the system file system and with file names
 | |
| in Zip archives.  File names in a Zip archive are stored in a UNIX-like
 | |
| path-name format.  For example, a VMS file specification like this:
 | |
| .sk;.indent 10
 | |
| [.zip30.vms]descrip.mms
 | |
| .sk
 | |
| could appear in a Zip archive as:
 | |
| .sk;.indent 10
 | |
| zip30/vms/descrip.mms
 | |
| .sk
 | |
| For security reasons, paths in Zip archives are always stored as
 | |
| relative paths, so an absolute VMS directory specification will be
 | |
| transformed to a relative path in the archive (that is, no leading "/"). 
 | |
| For example, the following absolute directory specification would give
 | |
| the same archive path as the previous (relative) example:
 | |
| .sk;.indent 10
 | |
| [zip30.vms]descrip.mms
 | |
| .sk
 | |
| Also, device names are dropped, so the following file specification
 | |
| would also give the same archive path:
 | |
| .sk;.indent 10
 | |
| sys$sysdevice:[zip30.vms]descrip.mms
 | |
| .sk
 | |
| If an archive is intended for use with PKUNZIP under MSDOS, then the -k
 | |
| (for "Katz", --DOS-names) option should be used to attempt to adjust the
 | |
| names and paths to conform to MSDOS character-set and length
 | |
| limitations, to store only the MSDOS file attributes (just the
 | |
| owner:write attribute from VMS), and to mark the entry as made under
 | |
| MSDOS (even though it wasn't).
 | |
| .sk
 | |
| Note that file specifications in the file system must be specified using
 | |
| VMS notation, but file names in an archive must be specified using the
 | |
| UNIX-like notation used in the archive.  For example, where a BACKUP
 | |
| command might look like this:
 | |
| .sk.indent 10
 | |
| $ back [.zip30...]*.* /excl = [...vms]*.c stuff.bck /save
 | |
| .sk
 | |
| a corresponding Zip command might look like this:
 | |
| .sk;.indent 10;
 | |
| $ zip stuff.zip [.zip30...]*.* -x */vms/*.c
 | |
| .sk
 | |
| because the files to be added to the Zip archive are specified using VMS
 | |
| file specifications, but the -x (--exclude) option excludes names based
 | |
| on their archive path/file names.  Options dealing with archive names
 | |
| include -R (--recurse-patterns), -d (--delete), -i (--include), -x
 | |
| (--exclude), and -U (--copy-entries).
 | |
| .sk
 | |
| Note: By default, on VMS, archive name pattern matching (-R, -d, -i, -x,
 | |
| and -U) is case sensitive, even when the file system is not case
 | |
| sensitive (or even case preserving).  This allows accurate matching of
 | |
| mixed-case names in an archive which may have been created on a system
 | |
| with a case sensitive file system, but it can involve extra effort on
 | |
| VMS, where it may be necessary to use unnatural case names (or the same
 | |
| names in multiple cases, like "*.obj *.OBJ") for this kind of pattern
 | |
| matching to give the desired behavior.  If completely case-blind pattern
 | |
| matching behavior is desired, specify the -ic (--ignore-case) option.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 3 Case
 | |
| .br
 | |
| For better compatibility with UNIX-like systems, Zip, by default,
 | |
| down-cases ODS2 file names.  For example, the following file on an ODS2
 | |
| file system:
 | |
| .sk;.indent 10
 | |
| [.ZIP30.VMS]DESCRIP.MMS
 | |
| .sk
 | |
| would appear in an archive as:
 | |
| .sk;.indent 10
 | |
| zip30/vms/descrip.mms
 | |
| .sk
 | |
| Zip versions before 3.0 down-cased all VMS file names.  Now, various
 | |
| options give the user control over these conversions:
 | |
| .sk
 | |
| .lm +10;.literal
 | |
| -C    preserve case of all file names
 | |
| -C-   down-case all file names
 | |
| -C2   preserve case of ODS2 names
 | |
| -C2-  down-case ODS2 file names (default)
 | |
| -C5   preserve case of ODS5 names (default)
 | |
| -C5-  down-case ODS5 file names
 | |
| .end literal;.lm -10
 | |
| .sk
 | |
| Case is handled differently for archive member names, which the user
 | |
| specifies with the -R, -d, -i, -x, and -U options.  By default, on VMS,
 | |
| archive name pattern matching is case sensitive, even when the file
 | |
| system is not case sensitive (or even case preserving).  This allows
 | |
| accurate matching of mixed-case names in an archive which may have been
 | |
| created on a system with a case sensitive file system, but it can
 | |
| involve extra effort on VMS, where it may be necessary to use unnatural
 | |
| case names (or the same names in multiple cases, like "*.obj *.OBJ") for
 | |
| this kind of pattern matching to give the desired behavior.  If
 | |
| completely case-blind pattern matching behavior is desired, specify the
 | |
| -ic (--ignore-case) option.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Fixing_Damage
 | |
| .br
 | |
| Two options can be used to fix a damaged Zip archive.
 | |
| .sk;.literal
 | |
| -F  --fix
 | |
| -FF  --fixfix
 | |
| .end literal;.sk
 | |
| The -F (--fix) option can be used if some portions of the archive are
 | |
| missing, but it requires a reasonably intact central directory.  The
 | |
| input archive is scanned as usual, but zip will ignore some problems. 
 | |
| The resulting archive should  be valid, but any inconsistent entries
 | |
| will be left out.
 | |
| .sk
 | |
| If the archive is too damaged or the end (where the central directory is
 | |
| situated) has been truncated, you must use -FF (--fixfix).  This is a
 | |
| change from zip 2.32, where the -F option is able to read a truncated
 | |
| archive.  The -F option now more reliably fixes archives with minor 
 | |
| damage, and the -FF option is needed to fix archives where -F and -FF
 | |
| was used before.
 | |
| .sk
 | |
| With -FF, the archive is scanned from the beginning and Zip scans for
 | |
| special signatures to identify the limits between the archive members.
 | |
| The -F option is more reliable if the archive is not too much damaged,
 | |
| so try this option first.
 | |
| .sk
 | |
| Neither option will recover archives that have been incorrectly
 | |
| transferred, such as by FTP in ASCII mode instead of binary.  After the
 | |
| repair, the -t option of UnZip may show that some files have a bad CRC.
 | |
| Such files cannot be recovered; you can remove them from the archive
 | |
| using the -d option of Zip.
 | |
| .sk
 | |
| Because of the uncertainty of the "fixing" process, it's required
 | |
| to specify an output archive, rather than risking further damage to the
 | |
| original damaged archive.  For example, to fix the damaged archive
 | |
| foo.zip,
 | |
| .sk;.indent 10
 | |
| zip -F foo --out foo_fix
 | |
| .sk
 | |
| tries to read the entries normally, copying good entries to the new 
 | |
| archive foo_fix.zip.  If this doesn't work, as when the archive is
 | |
| truncated, or if some entries are missed because of bad central
 | |
| directory entries, try -FF:
 | |
| .sk;.indent 10
 | |
| zip -FF foo --out foo_fixfix
 | |
| .sk
 | |
| and compare the resulting archive to the archive created using -F. The
 | |
| -FF option may create an inconsistent archive.  Depending on what is
 | |
| damaged, you can then use the -F option to fix that archive.
 | |
| .sk
 | |
| A split archive with missing split files can be fixed using -F if you
 | |
| have the last split of the archive (the ".zip" file).  If this file is
 | |
| missing, you must use -FF to fix the archive, which will prompt you for
 | |
| the splits you have.
 | |
| .sk
 | |
| Currently, the fix options can't recover an entry which has a bad
 | |
| checksum or is otherwise damaged.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Log_File
 | |
| .br
 | |
| Zip normally sends messages to the user's terminal, but these may be
 | |
| also directed to a log file.
 | |
| .sk;.literal
 | |
| -la  --log-append
 | |
| .end literal;.br
 | |
| Append to an existing log file.  Default is to create a new version.
 | |
| .sk;.literal
 | |
| -lf logfilepath  --logfile-path logfilepath
 | |
| .end literal;.br
 | |
| Open a logfile at the given path.  By default, a new version will be
 | |
| created, but with the -la option an existing file will be opened and the
 | |
| new log information appended to any existing information.  Only
 | |
| warnings and errors are written to the log unless the -li option is also
 | |
| given, then all information messages are also written to the log.
 | |
| .sk;.literal
 | |
| -li  --log-info
 | |
| .end literal;.br
 | |
| Include information messages, such as file names being zipped, in the
 | |
| log.  The default is to include only the command line, any warnings
 | |
| and errors, and the final status.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Modes_of_Operation
 | |
| .br
 | |
| Zip supports two distinct types of command modes, external and 
 | |
| internal.  The external modes (update, grow, and freshen) read files
 | |
| from the file system (as well as from an existing archive) while the
 | |
| internal modes (delete and copy) operate exclusively on entries in an
 | |
| existing archive.
 | |
| .sk;.literal
 | |
| -u  --update
 | |
| .end literal;.br
 | |
| Update existing entries and add new files.  If the archive does not
 | |
| exist, create it.  This is the default mode, so -u is optional.
 | |
| .sk;.literal
 | |
| -g  --grow
 | |
| .end literal;.br
 | |
| Grow (append to) the specified Zip archive, instead of creating a new
 | |
| one.  If this operation fails, Zip attempts to restore the archive to
 | |
| its original state.  If the restoration fails, the archive might become 
 | |
| corrupted.  This option is ignored when there's no existing archive or
 | |
| when at least one archive member must be updated or deleted.
 | |
| .sk;.literal
 | |
| -f  --freshen
 | |
| .end literal;.br
 | |
| Update existing entries in an existing archive.  Does not add new files
 | |
| to the archive.
 | |
| .sk;.literal
 | |
| -d  --delete
 | |
| .end literal;.br
 | |
| Delete entries from an existing archive.
 | |
| .sk;.literal
 | |
| -DF  --difference-archive
 | |
| .end literal;.br
 | |
| Create an incremental backup-style archive, where the resulting archive 
 | |
| will contain all new and changed files since the original archive was
 | |
| created.  For this to work, the input file list and current directory 
 | |
| must be the same as during the original Zip operation.
 | |
| .sk
 | |
| For example, if the existing archive was created using
 | |
| .sk;.indent 10
 | |
| zip foo_full.zip [.foo...]*.*
 | |
| .sk
 | |
| from just above the foo directory, then the command (also from just
 | |
| above the foo directory):
 | |
| .sk;.indent 10
 | |
| zip foo_full.zip [.foo...]*.* -DF -O foo_incr.zip
 | |
| .sk
 | |
| creates the archive foo_incr.zip with just the files not in foo_full.zip
 | |
| and the files where the size or date-time of the files does not match
 | |
| that in foo_full.zip.  Note that in the "zip -DF" operation, the
 | |
| original full archive is specified as the input archive, and the -O
 | |
| (--output-file) option is used to specify the new (incremental) output
 | |
| archive.
 | |
| .sk;.literal
 | |
| -FS  --filesync
 | |
| .end literal;.br
 | |
| Delete entries in the archive that do not match files on the OS.
 | |
| Normally when an archive is updated, new files are added and changed
 | |
| files are updated but files that no longer exist on the OS are not
 | |
| deleted from the archive.  This option enables deleting of entries that
 | |
| are not matched on the OS.  Enabling this option should create archives
 | |
| that are the same as new archives, but since existing entries are copied
 | |
| instead of compressed, updating an existing archive with -FS can be much
 | |
| faster than creating a new archive.  If few files are being copied from
 | |
| the old archive, it may be faster to create a new archive instead.
 | |
| .sk
 | |
| This option deletes files from the archive.  If you need to preserve the
 | |
| original archive, make a copy of the archive first, or use the  -O
 | |
| (--output) option to output the new archive to a new file.  Even though
 | |
| it's slower, creating a new archive with a new archive name is safer, 
 | |
| avoids mismatches between archive and OS paths, and is preferred.
 | |
| .sk;.literal
 | |
| -U  --copy-entries
 | |
| .end literal;.br
 | |
| Select entries in an existing archive and copy them to a new archive. 
 | |
| Copy mode is like update mode, but entries in the existing archive are
 | |
| selected by command line patterns rather than files from the file system
 | |
| and it uses the -O (--output-file) option to write the resulting archive
 | |
| to a new file rather than updating the existing archive, leaving the
 | |
| original archive unchanged.
 | |
| .sk
 | |
| Normally, when updating an archive using relative file specifications
 | |
| ("[]", "[.xxx]", and so on), it helps to have the same default directory
 | |
| as when the archive was created, but this is not a strict requirement.
 | |
| .sk
 | |
| Date-time information in a Zip archive may be influenced by time zone.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 3 Examples
 | |
| .br
 | |
| When given the name of an existing archive, Zip will replace identically
 | |
| named entries in the archive or add entries for new names.  For example,
 | |
| if foo.zip exists and contains foo/file1 and foo/file2, and the
 | |
| directory [.foo] contains the files file1 and file3, then:
 | |
| .sk;.indent 10
 | |
| $ zip foo [.foo...]*.*
 | |
| .sk
 | |
| will replace foo/file1 in foo.zip and add foo/file3 to foo.zip.  After
 | |
| this, foo.zip contains foo/file1, foo/file2, and foo/file3, with foo/file2
 | |
| unchanged from before.  This is the default mode -u (update).
 | |
| .sk
 | |
| Update will add new entries to the archive and will replace
 | |
| existing entries only if the modified date of the file is more recent than
 | |
| the date recorded for that name in the archive.  For example:
 | |
| .sk;.indent 10
 | |
| $ zip -u stuff *.*
 | |
| .sk
 | |
| will add any new files in the current directory, and update any changed
 | |
| files in the archive stuff.zip.  Note that Zip will not try to pack
 | |
| stuff.zip into itself when you do this.  Zip avoids including its own
 | |
| output files when selecting files to include in the archive, so it
 | |
| should be safe, as in this case, to have the archive included in the
 | |
| list of input files.
 | |
| .sk
 | |
| A second mode, -f (freshen), like update will only
 | |
| replace entries with newer files.  Unlike update, however, it will not
 | |
| add files that are not already in the archive.  For example:
 | |
| .sk;.indent 10
 | |
| $ zip -f foo
 | |
| .sk
 | |
| Note that the -f option with no arguments freshens all the entries in the
 | |
| archive.  The same is true of -u, so "zip -u foo" and "zip -f foo" do
 | |
| the same thing.
 | |
| .sk
 | |
| When these options are used, Zip should be run from the same directory
 | |
| as when the original Zip command was run, so that the path names in the
 | |
| archive will continue to agree with the path names in the file system. 
 | |
| Normally, it's also a good idea to keep the other options the same (-V,
 | |
| -w, and the like), to keep the archive contents consistent.
 | |
| .sk
 | |
| The -t (--from-date) and -tt (--before-date) options can also be used
 | |
| with adding, updating, or freshening to restrict further the files to be
 | |
| included in the archive.  For example:
 | |
| .sk;.indent 10
 | |
| $ zip -rt 12071991 infamy [.FOO]*.*
 | |
| .sk
 | |
| will add all the files in [.FOO] and its subdirectories that were last
 | |
| modified on December 7, 1991, or later to the achive infamy.zip.  Dates
 | |
| can be in format mmddyyyy or yyyy-mm-dd.
 | |
| .sk
 | |
| Also, files can be explicitly excluded using the -x option:
 | |
| .sk;.indent 10
 | |
| $ zip -r foo [.FOO] -x *.obj
 | |
| .sk
 | |
| which will zip up the contents of [.FOO] into foo.zip but exclude all the
 | |
| files that end in ".obj".
 | |
| .sk
 | |
| The -d (delete) mode will remove entries from an
 | |
| archive.  An example might be:
 | |
| .sk;.indent 10
 | |
| $ zip -d foo foo/harry/*.* *.obj
 | |
| .sk
 | |
| which will remove all of the files that start with "foo/harry/" and all of
 | |
| the files that end with ".obj" (in any path).
 | |
| .sk
 | |
| The last mode, -U (--copy-entries), selects entries from an existing
 | |
| archive and copies them to a new archive.
 | |
| .sk;.indent 10
 | |
| $ zip -U foo *.obj --out fooobj
 | |
| .sk
 | |
| will copy all .obj entries from foo.zip and put them in the new archive
 | |
| fooobj.zip.
 | |
| .sk
 | |
| Note: By default, on VMS, archive name pattern matching (-R, -d, -i, -x,
 | |
| and -U) is case sensitive, even when the file system is not case
 | |
| sensitive (or even case preserving).  This allows accurate matching of
 | |
| mixed-case names in an archive which may have been created on a system
 | |
| with a case sensitive file system, but it can involve extra effort on
 | |
| VMS, where it may be necessary to use unnatural case names (or the same
 | |
| names in multiple cases, like "*.obj *.OBJ") for this kind of pattern
 | |
| matching to give the desired behavior.  If completely case-blind pattern
 | |
| matching behavior is desired, specify the -ic (--ignore-case) option.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Options_List
 | |
| .br
 | |
| "zip -h" provides a concise list of common command-line options.  "zip
 | |
| -h2" provides more details.  "zip -so" provides a list of all available
 | |
| options.  "zip -v" shows the program version and available features. 
 | |
| (The list below was derived from a "zip -so" listing.)
 | |
| .sk
 | |
| Short-form options begin with a single hyphen ("-").  Long-form option
 | |
| begin with a double hyphen ("--"), and may be abbreviated to any
 | |
| unambiguous shorter string.  For example:
 | |
| .lm +10;.literal
 | |
| -v
 | |
| --verbose
 | |
| --verb
 | |
| .end literal;.lm -10
 | |
| .sk
 | |
| To avoid confusion, if a negatable option contains an embedded hyphen
 | |
| ("-"), then avoid abbreviating it at the hyphen if you plan to negate
 | |
| it.  For example, if an option like --some-option were abbreviated to
 | |
| --some-, the parser would consider that trailing hyphen to be part of
 | |
| the option name, rather than as a negating trailing hyphen.  This
 | |
| behavior may change in the future, to interpret the trailing hyphen in
 | |
| --some- to be negating.  (So don't do it.)
 | |
| .sk
 | |
| Some options may be negated (or modified) by appending a "-":
 | |
| .lm +10;.literal
 | |
| -la-
 | |
| --show-files-
 | |
| .end literal;.lm -10
 | |
| .sk
 | |
| Some options take a value, which may immediately follow the option, or
 | |
| be separated by a space or "=".  For example:
 | |
| .lm +10;.literal
 | |
| -ttmmddyyyy
 | |
| -tt mmddyyyy
 | |
| -tt=mmddyyyy
 | |
| .end literal;.lm -10
 | |
| .sk
 | |
| .lm -4;.literal
 | |
|  Sh  Long                Description
 | |
| ----+-------------------+--------------------------------------------------
 | |
|  0   store               store (instead of compress)
 | |
|  1   compress-1          compress faster (-2, -3, -4, ...)
 | |
|  9   compress-9          compress better
 | |
|  ?                       show the Zip help screen
 | |
|  @   names-stdin         read input file patterns from SYS$INPUT (1/line)
 | |
|  A   adjust-sfx          adjust self-extracting executable
 | |
|  b   temp-path  path     use "path" directory for temporary files
 | |
|  C   preserve-case       preserve case of all file names added to archive
 | |
|  C-  preserve-case-      down-case all file names added to archive
 | |
|  C2  preserve-case-2     preserve case of ODS2 names added to archive
 | |
|  C2- preserve-case-2-    down-case ODS2 file added to archive (default)
 | |
|  C5  preserve-case-5     preserve case of ODS5 names added to archive (dflt)
 | |
|  C5- preserve-case-5-    down-case ODS5 names added to archive
 | |
|  c   entry-comments      add a comment for each entry added to archive
 | |
|  D   no-dir-entries      do not add archive entries for directories
 | |
|  DF  difference-archive  difference archive: add only changed or new files
 | |
|  d   delete              delete entries in archive
 | |
|  db  display-bytes       display running byte counts
 | |
|  dc  display-counts      display running file counts
 | |
|  dd  display-dots        display progress dots for files (dflt size = 10MB)
 | |
|  dg  display-globaldots  display progress dots for archive, not each file
 | |
|  ds  dot-size   size     set progress dot interval to "size" (MB)
 | |
|  du  display-usize       display original uncompressed size for entries
 | |
|  dv  display-volume      display volume (disk) number as in_disk>out_disk
 | |
|  e   encrypt             encrypt entries, ask for password
 | |
|  F   fix                 fix mostly intact archive (try F before FF)
 | |
|  FF  fixfix              salvage what can be salvaged (not as reliable)
 | |
|  FS  filesync            remove archive entries unmatched in file system
 | |
|  f   freshen             update existing entries (only changed files)
 | |
|  fd  force-descriptors   force data descriptors as if streaming
 | |
|  fz  force-zip64         force use of Zip64 format
 | |
|  g   grow                grow existing archive (unless updating or deleting)
 | |
|  H                       show the Zip help screen
 | |
|  h   help                show the Zip help screen
 | |
|  h2  more-help           show extended Zip help
 | |
|  i   include  pat1 [pat2 [...]]  include only names matching the patterns
 | |
|  ic  ignore-case         ignore case (case-blind archive entry name matching)
 | |
|  J   junk-sfx            junk (remove) archive preamble (unzipsfx)
 | |
|  j   junk-paths          junk (don't store) directory names, only file names
 | |
|  k   DOS-names           simulate PKZIP-made archive (DOS 8.3 names)
 | |
|  L   license             show software license
 | |
|  l   to-crlf             translate end-of-lines (LF -> CRLF)
 | |
|  la  log-append          append to existing log file
 | |
|  lf  logfile-path  lfile  log to log file at lfile (default: new version)
 | |
|  li  log-info            include informational messages in log
 | |
|  ll  from-crlf           translate end-of-lines (CRLF -> LF)
 | |
|  MM  must-match          input file spec must exist (wildcards must match)
 | |
|  m   move                delete files added to archive
 | |
|  n   suffixes  sfx1[:sfx2[...]]  don't compress files with these suffixes
 | |
|  nw  no-wild             no wildcards during add or update
 | |
|  O   output-file  ozf  use "ozf" as the output archive (dflt = inp archive)
 | |
|  o   latest-time         set archive date-time to match oldest entry
 | |
|  P   password  password  encrypt with supplied "password" string
 | |
|  q   quiet               quiet operation (no info messages)
 | |
|  R   recurse-patterns    recurse into subdirs from cur dir, match names only
 | |
|  r   recurse-paths       recurse into directories from specified path pats
 | |
|  s   split-size  size    split archive at "size" (K/MB)  (0: don't split)
 | |
|  sb  split-bell          ring terminal bell at pause for split medium change
 | |
|  sc  show-command        show command line
 | |
|  sd  show-debug          show debug messages
 | |
|  sf  show-files          show files to process (only)
 | |
|  so  show-options        show list of all command-line options
 | |
|  sp  split-pause         pause to select split destination(s)
 | |
|  sv  split-verbose       be verbose about creating splits
 | |
|  T   test                test archive integrity (runs UnZip -T)
 | |
|  t   from-date  mmddyyyy  only do files since (at or after) "mmddyyyy"
 | |
|  tt  before-date  mmddyyyy  only do files before "mmddyyyy"
 | |
|  u   update              update changed files, add new files (default mode)
 | |
|  V   VMS-portable        save VMS file attributes
 | |
|  VV  VMS-specific        save VMS file attributes and all allocated blocks
 | |
|  v   verbose             verbose messages (print version info if only arg)
 | |
|  w   VMS-versions        save VMS version numbers in archive
 | |
|  ww  VMS-dot-versions    save VMS version numbers as ".nnn", not ";nnn"
 | |
|  X   strip-extra         strip all but critical extra fields
 | |
|  X-  strip-extra-        keep all extra fields
 | |
|  x   exclude  pat1 [pat2 [...]]  exclude all names matching the patterns
 | |
|  Z   compression-method mthd  use compress method "mthd" (bzip2 or deflate)
 | |
|  z   archive-comment     ask for archive comment
 | |
| .end literal;.lm +4
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Miscellaneous_Options
 | |
| .sk;.literal
 | |
| -D  --no-dir-entries
 | |
| .end literal;.br
 | |
| Do not create entries in the archive for directories.  By default,
 | |
| directory entries are added to an archive, so that their attributes can
 | |
| be saved in the archive.  When an archive is created using -D, UnZip
 | |
| will still create directories as needed (subject to user control), but
 | |
| they will get the default attributes (date-time, permissions, ...) on
 | |
| the destination system, rather than their original atributes.
 | |
| .sk;.literal
 | |
| -MM  --must-match
 | |
| .end literal;.br
 | |
| All input patterns must match at least one file and all input files 
 | |
| found must be readable.  Normally when an input pattern does not match
 | |
| a file the "name not matched" warning is issued and when an input
 | |
| file has been found but later is missing or not readable a "missing or
 | |
| not readable" warning is issued.  In either case Zip continues
 | |
| creating the archive, with missing or unreadable new files being skipped 
 | |
| and files already in the archive remaining unchanged.  After the
 | |
| archive is created, if any files were not readable zip returns the OPEN
 | |
| error code (18 on most systems) instead of the normal success return (0
 | |
| on most systems).  With -MM, Zip exits as soon as an input pattern
 | |
| is not matched (whenever the "name not matched" warning would be issued)
 | |
| or when an input file is not readable. In either case Zip exits with
 | |
| an OPEN error and no archive is created.
 | |
| .sk
 | |
| This option is useful when a known list of files is to be zipped so any
 | |
| missing or unreadable files should result in an error.  It may be less
 | |
| useful when used with wildcards, but Zip will still exit with an error
 | |
| if any input pattern doesn't match at least  one file or if any
 | |
| matched files are unreadable.  If you want to create the archive anyway
 | |
| and only need to know if files were skipped, then don't use -MM and just
 | |
| check the exit status.  Also, a log file (see -lf (--logfile-path))
 | |
| could be useful.
 | |
| .sk;.literal
 | |
| -O out_file  --output-file out_file
 | |
| .end literal;.br
 | |
| Process the archive changes as usual, but instead of updating the
 | |
| existing archive, send the output to a new archive, "out_file".  The
 | |
| output archive specified must be a different file from the input
 | |
| archive.
 | |
| .sk
 | |
| This option can be used to create updated split archives.  It can
 | |
| also be used with -U to copy entries from an existing archive to
 | |
| a new archive.  See the EXAMPLES section below.
 | |
| .sk
 | |
| Another use is converting zip files from one split size to
 | |
| another.  For instance, to convert an archive with 700MB CD splits
 | |
| to one with 2GB DVD splits, can use:
 | |
| .sk;.indent 10
 | |
| zip -s 2g cd-split.zip --out dvd-split.zip
 | |
| .sk
 | |
| which uses copy mode.  See -U below.  Also:
 | |
| .sk;.indent 10
 | |
| zip -s 0 split.zip --out unsplit.zip
 | |
| .sk
 | |
| will convert a split archive to a single-file archive.
 | |
| .sk
 | |
| Copy mode will convert stream entries (using data descriptors and which
 | |
| may be incompatible with some unzip programs) to normal entries (which
 | |
| should be compatible with all unzip programs), except if standard
 | |
| encryption was  used.  For archives with encrypted entries, zipcloak
 | |
| will decrypt the entries and convert them to normal entries.
 | |
| .sk;.literal
 | |
| -o  --latest-time
 | |
| .end literal;.br
 | |
| Set the modification date-time of the Zip archive file to the latest
 | |
| (newest) modification date-time found among the entries in the zip
 | |
| archive.  This can be used without any other operations, if
 | |
| desired.  For example:
 | |
| .sk;.indent 10
 | |
| zip -o foo
 | |
| .sk
 | |
| will change the modification date-time of foo.zip to the latest time of
 | |
| the entries in foo.zip.
 | |
| .sk;.literal
 | |
| -q  --quiet
 | |
| .end literal;.br
 | |
| Quiet mode.  Eliminates informational messages and comment prompts. 
 | |
| This mode may be useful in command procedures, or if the Zip operation
 | |
| is being performed as a background task ("$ spawn/nowait zip -q foo
 | |
| *.c").
 | |
| .sk
 | |
| .sk;.literal
 | |
| -T  --test
 | |
| .end literal;.br
 | |
| Test the integrity of a zip archive (the new one, if -O (--output-file)
 | |
| is specified).  If the check fails, the old zip file is unchanged  and
 | |
| (with the -m option) no input files are removed.
 | |
| .sk
 | |
| Implementation
 | |
| .br
 | |
| "zip -T" actually runs an "unzip -t" command to do the testing, so UnZip
 | |
| must be installed properly for this to work.
 | |
| .sk;.literal
 | |
| -TT unzip_cmd  --unzip-command unzip_cmd
 | |
| .end literal;.br
 | |
| Specify the actual UnZip command, "unzip_cmd" (normally a DCL symbol) to
 | |
| use for "zip -T".  This can be useful if multiple versions of UnZip are
 | |
| installed on a system, and the default DCL symbol "UNZIP" would run the
 | |
| wrong one (or the logical name DCL$PATH would lead to the wrong one).
 | |
| .sk
 | |
| In "unzip_cmd", the string "{}" is replaced by the temporary name of the
 | |
| archive to be tested, otherwise the name of the archive is appended
 | |
| to the end of the command.  The exit status is checked for success severity.
 | |
| .sk;.literal
 | |
| -v  --verbose
 | |
| .end literal;.br
 | |
| Verbose mode or print diagnostic version info.
 | |
| .sk
 | |
| Normally, when applied to real operations, this option enables the 
 | |
| display of a progress indicator during compression (see -dd for more on
 | |
| dots) and requests verbose diagnostic info about archive structure
 | |
| oddities.
 | |
| .sk
 | |
| When -v is the only command line argument, a diagnostic report is
 | |
| displayed, showing:
 | |
| .lm +3;.br;.indent -2
 | |
| o Copyright and other legal notices
 | |
| .br;.indent -2
 | |
| o Program name, version, and release date
 | |
| .br;.indent -2
 | |
| o Pointers to Info-ZIP FTP and Web sites
 | |
| .br;.indent -2
 | |
| o Program build information (compiler type and version, OS version, and
 | |
| the compilation date
 | |
| .br;.indent -2
 | |
| o Optional features enabled at compile-time
 | |
| .br;.indent -2
 | |
| o Environment variable definitions (ZIP_OPTS, ZIPOPT)
 | |
| .lm -3;.br
 | |
| .sk
 | |
| This information should be included in bug reports.
 | |
| .sk;.literal
 | |
| -y  --symlinks
 | |
| .end literal;.br
 | |
| Store symbolic links as such in the Zip archive, instead of compressing
 | |
| and storing the file referred to by the link.  A symbolic link normally
 | |
| requires less storage than the actual file, both in the archive, and on
 | |
| the destination file system.
 | |
| .sk
 | |
| On VMS, symbolic links are supported on ODS5 disks where the C RTL
 | |
| supports symbolic links.  Full support for symbolic links seems to
 | |
| require VMS V8.3, but a Zip program supporting symbolic links may be
 | |
| built on VMS V7.3-2.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Progress_Display
 | |
| .br
 | |
| Various options control the display of progress messages during Zip
 | |
| operation.
 | |
| .sk;.literal
 | |
| -db  --display-bytes
 | |
| .end literal;.br
 | |
| Display running byte counts showing the bytes processed and the bytes to
 | |
| go.
 | |
| .sk;.literal
 | |
| -dc  --display-counts
 | |
| .end literal;.br
 | |
| Display running count of entries processed and entries to go.
 | |
| .sk;.literal
 | |
| -dd  --display-dots
 | |
| .end literal;.br
 | |
| Display dots while each entry is processed (except on ports that have 
 | |
| their own progress indicator).  See -ds below for setting dot size.  The
 | |
| default is a dot every 10 MB of input file processed.  The -v
 | |
| (--verbose) option also displays dots and used to at a higher rate than
 | |
| this (at the same rate as in previous versions of Zip) but this rate has
 | |
| been changed to the new 10 MB default, and is also controlled by -ds.
 | |
| .sk;.literal
 | |
| -dg  --display-globaldots
 | |
| .end literal;.br
 | |
| Display progress dots for the archive instead of for each file.  The
 | |
| command
 | |
| .sk;.indent 10
 | |
| zip -qdgds 10m
 | |
| .sk
 | |
| will turn off most output except dots every 10 MB.
 | |
| .sk;.literal
 | |
| -ds size  --dot-size size
 | |
| .end literal;.br
 | |
| Set amount of input file processed for each dot displayed.  See -dd to
 | |
| enable displaying dots.  Setting this option implies -dd.  "size" is in
 | |
| the format "nm" where n is a number and m is a multiplier.  Currently
 | |
| "m" can be k (KB), m (MB), g (GB), or t (TB), so if "n" is 100 and "m"
 | |
| is k, "size" would be 100k which is 100KB.  The default is 10MB.
 | |
| .sk
 | |
| The -v (--verbose) option also displays dots and used to default to a
 | |
| higher rate than this (at the same rate as in previous versions of Zip)
 | |
| but now the default is 10 MB and the -v dots are also controlled by this
 | |
| option.  A "size" of 0 turns dots off.
 | |
| .sk
 | |
| This option does not control the dots from the "Scanning files" message 
 | |
| as Zip scans for input files.  The dot size for that is fixed at 2
 | |
| seconds or a fixed number of entries, whichever is longer.
 | |
| .sk;.literal
 | |
| -du  --display-usize
 | |
| .end literal;.br
 | |
| Display the uncompressed size of each entry.
 | |
| .sk;.literal
 | |
| -dv  --display-volume
 | |
| .end literal;.br
 | |
| Display the volume (disk) number each entry is being written to.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Self_Extracting_Archives
 | |
| .br
 | |
| A self-extracting archive (SFX) comprises a normal Zip archive appended
 | |
| to a special UnZip program (such as UNZIPSFX.EXE) for the intended
 | |
| target system.
 | |
| .sk
 | |
| The UnZip distribution includes a VMS command procedure,
 | |
| [,vms]makesfx.com, which can be used directly or adapted to create an
 | |
| SFX archive from a normal Zip archive.
 | |
| .sk
 | |
| The .ZIP file format includes offsets to data structures in the archive,
 | |
| and these offsets are measured from the start of the archive file. 
 | |
| Appending an archive to an UnZip SFX executable effectively moves the
 | |
| start of the archive file.  That makes the original offsets wrong, and
 | |
| that will cause the UnZip SFX program to emit warning messages when it
 | |
| tries to unpack the archive.  Zip -A can be used to adjust these offsets
 | |
| in a self-extracting archive.  For example, to adjust the offsets in
 | |
| foo.sfx_exe:
 | |
| .sk;.indent 10
 | |
| zip -A foo.sfx_exe
 | |
| .sk
 | |
| Similarly, the UnZip SFX program can be removed from a self-extracting
 | |
| archive (and the offsets in the archive restored) using the -J
 | |
| (--junk-sfx) option.  For example:
 | |
| .sk;.indent 10
 | |
| zip -J foo.sfx_exe
 | |
| .sk
 | |
| Note that a self-extracting archive contains a normal Zip archive, and a
 | |
| normal UnZip program can be used to expand it in the normal way.  You
 | |
| may get a warning about extra bytes at the beginning of the archive (the
 | |
| UnZip SFX program), but UnZip should work properly after that.  This
 | |
| allows data in a self-extracting archive to be accessed on any system,
 | |
| not just the target system where its embedded UnZip SFX program runs.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Split_Archives
 | |
| .br
 | |
| Beginning with version 3.0, Zip supports split archives.  A split
 | |
| archive is one which is divided into multiple files, usually to allow it
 | |
| to be stored on multiple storage media (floppy diskettes, CD-ROMs, or
 | |
| the like) when a single medium would be too small to contain the whole
 | |
| archive.  (Note that split archives are not just unitary archives split
 | |
| into pieces, as the .ZIP file format includes offsets to data structures
 | |
| in the archive, and for a split archive these are based on the start of
 | |
| each split, not on the start of the whole archive.  Concatenating the
 | |
| pieces will invalidate these offsets, but UnZip can usually deal with
 | |
| it.  Zip will usually refuse to process such a spliced archive unless
 | |
| the -FF fix option is used to fix the offsets.)
 | |
| .sk
 | |
| For a split archive with, say, 20 split files, the files are typically
 | |
| named ARCHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19, ARCHIVE.zip, where
 | |
| "ARCHIVE" is the archive name specified by the user on the Zip command
 | |
| line.  Note that the last split file is the ".zip" file.  In contrast,
 | |
| "spanned" archives are the original multi-disk archive generally
 | |
| requiring floppy disks and using volume labels to store disk numbers. 
 | |
| Zip supports split archives but not spanned archives, though a procedure
 | |
| exists for converting split archives of the right size to spanned
 | |
| archives.  The reverse is also true, where each file of a spanned
 | |
| archive can be copied in order to files with the above names to create a
 | |
| split archive.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 3 Options
 | |
| .br
 | |
| Use "-s size" to create a split archive (and to set the split size). 
 | |
| The size is given as a number followed optionally by a multiplier suffix
 | |
| of k (KB), m (MB, the default if no suffix is specified), g (GB), or t
 | |
| (TB).  (All are powers of 1024, not 1000).  64K is the minimum split
 | |
| size.  For example, the following command could be used to create a
 | |
| split archive called "foo" from the contents of the "bar" directory with
 | |
| splits of 670MB, which might be useful for burning on CDs:
 | |
| .sk;.indent 10
 | |
| zip -s 670m foo [.bar...]*.*
 | |
| .sk
 | |
| Using -s without -sp as above creates all the splits in the directory
 | |
| specified by "foo", in this case the current default directory.  This 
 | |
| split mode updates the splits as the archive is being created, requiring
 | |
| all splits to remain writable, but creates split archives that are
 | |
| readable by any UnZip that supports split archives.  See -sp below for
 | |
| enabling split pause mode which allows splits to be written directly to
 | |
| removable media.
 | |
| .sk
 | |
| The -sv option can be used to enable verbose splitting and display
 | |
| details of how the splitting is being done.  The -sb option can be used
 | |
| to ring the terminal bell when Zip pauses for the next split
 | |
| destination.
 | |
| .sk
 | |
| The -sp option can be used to pause Zip between splits to allow 
 | |
| changing removable media, for example, but read the descriptions and
 | |
| warnings for both -s and -sp below.
 | |
| .sk
 | |
| Though Zip does not update split archives, Zip provides the option
 | |
| -O (--output-file) to allow split archives to be updated and saved in a
 | |
| new archive.  For example:
 | |
| .sk;.indent 10
 | |
| zip inarchive.zip foo.c bar.c -O outarchive.zip
 | |
| .sk
 | |
| reads archive inarchive.zip, even if split, adds the files foo.c and
 | |
| bar.c, and writes the resulting archive to outarchive.zip.  If
 | |
| inarchive.zip is split, then outarchive.zip defaults to the same split
 | |
| size.  Be aware that outarchive.zip and any split files that are created
 | |
| with it are always overwritten without warning.  This may be changed in 
 | |
| the future.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Temporary_Files
 | |
| .br
 | |
| When creating a new archive or normally when changing an existing
 | |
| archive, Zip will write a temporary file in the archive destination
 | |
| directory ("ZIxxxxxxxx", where "xxxxxxxx" is the hexadecimal process ID)
 | |
| with the new contents.  Then, if and when the Zip job has completed with
 | |
| no errors, it will rename the temporary file to the specified archive
 | |
| name (replacing the old archive, if any).
 | |
| .sk
 | |
| You can use the -b (--temp-path) option to specify a different path
 | |
| (device and/or directory) for the temporary file, but specifying a
 | |
| different device will force Zip to copy the temporary file to its final
 | |
| destination instead of simply renaming it, and that copying will take
 | |
| more time than renaming, especially for a large archive.  For example:
 | |
| .sk;.indent 10
 | |
| $ zip -b disk$scratch:[tmp] stuff *
 | |
| .sk
 | |
| will cause Zip to put its temporary files in the directory
 | |
| "disk$scratch:[tmp]", copying the temporary file back to the current
 | |
| directory as stuff.zip when it's complete.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Text_Files
 | |
| .br
 | |
| Zip offers some options to help deal with line endings in text files. 
 | |
| These may have limited utility on VMS.
 | |
| .sk;.literal
 | |
| -l  --to-crlf
 | |
| .end literal;.br
 | |
| Translate the UNIX end-of-line character LF (CR on MAC) into the MSDOS
 | |
| convention CR-LF.  This option should not be used on binary files.  This
 | |
| option can be used on UNIX if the Zip file is intended for PKUNZIP under
 | |
| MSDOS.  If the input files already contain CR-LF, this option adds an
 | |
| extra CR.  This ensure that "unzip -a" on Unix will get back an exact
 | |
| copy of the original file, to undo the effect of "zip -l".  See -ll
 | |
| below for the binary checks.
 | |
| .sk;.literal
 | |
| -ll  --from-crlf
 | |
| .end literal;.br
 | |
| Translate the MSDOS end-of-line CR LF into UNIX LF (CR on MAC).  This
 | |
| option should not be used on binary files.  This option can be used on
 | |
| MSDOS if the Zip archive is intended for UnZip under UNIX.
 | |
| .sk
 | |
| For both -l and -ll, if the file is converted and the file is later
 | |
| determined to be binary, a warning is issued and the file is probably
 | |
| corrupted.  If Zip with -l or -ll detects binary (non-text) in the first
 | |
| buffer read from a file, it issues a warning and skips line-ending
 | |
| conversion on the file, avoiding corruption.  This check seems to catch
 | |
| all binary files tested, but the original check remains and if a
 | |
| converted file is later determined to be binary, that warning is still
 | |
| issued.  The algorithm now being used for binary detection should allow
 | |
| line-ending conversion of text files in UTF-8 and similar encodings.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 VMS_Specifics
 | |
| .br
 | |
| VMS File Attributes
 | |
| .sk;.literal
 | |
| -V  --VMS-portable
 | |
| -VV --VMS-specific
 | |
| .end literal;.br
 | |
| The -V and -VV options cause Zip to store VMS file atributes (such as
 | |
| file organization, record format, carriage control, and so on) in
 | |
| VMS-specific "extra fields" in an archive along with the usual data. 
 | |
| These extra fields are ignored on non-VMS systems, but on a VMS system,
 | |
| they allow UnZip to restore the files with their VMS attributes intact.
 | |
| .sk
 | |
| With -V, Zip ignores any data in the file after the end-of-file (EOF)
 | |
| point (defined by FAT$L_EFBLK and FAT$W_FFBYTE), which works well for
 | |
| well-formed files (that is, those with no valid data beyond EOF). 
 | |
| Portable-format files (Stream_LF, fixed-512) archived with -V should be
 | |
| extracted properly on a non-VMS system.  Files with more complex
 | |
| structures, such as indexed files and files with embedded byte counts
 | |
| or other such data may be of limited use on other systems.  (UnZip on
 | |
| non-VMS systems may be able to extract various VMS-format text files,
 | |
| however.)
 | |
| .sk
 | |
| With -VV, Zip processes all allocated blocks for the file (including
 | |
| those beyond EOF).  When extracted on a VMS system, the original file
 | |
| should be reproduced with as much fidelity as possible, but on a non-VMS
 | |
| system, most files will be seen as corrupt because of the data from
 | |
| beyond EOF.
 | |
| .sk
 | |
| VMS File Version Numbers
 | |
| .sk;.literal
 | |
| -w  --VMS-versions
 | |
| -ww  --VMS-dot-versions
 | |
| .end literal;.br
 | |
| By default, for compatibility with non-VMS systems, Zip strips VMS file
 | |
| version numbers from the names stored in an archive.  The -w
 | |
| (--VMS-versions) option causes Zip to retain file version numbers on
 | |
| names in an archive. Without -w, a version number wildcard (";*") can
 | |
| cause errors when multiple versions of a single file are treated as
 | |
| multiple files with the same name.
 | |
| .sk
 | |
| For better compatibility with non-VMS systems where semi-colons are less
 | |
| popular in file names, the -ww (--VMS-dot-versions) option stores the
 | |
| file version numbers with a dot (".nnn") instead of a semi-colon
 | |
| (";nnn").
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Copyright_and_License
 | |
| .br
 | |
| Zip has an option to display its copyright and license.
 | |
| .sk;.literal
 | |
| -L  --license
 | |
| .end literal;.br
 | |
| The license is reproduced below.
 | |
| .sk.lm +3
 | |
| This is version 2007-Mar-4 of the Info-ZIP license. The definitive
 | |
| version of this document should be available at
 | |
| ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely and a copy
 | |
| at http://www.info-zip.org/pub/infozip/license.html.
 | |
| .lm -3;.sk
 | |
| --------------------------------------------------------
 | |
| .sk
 | |
| Copyright (c) 1990-2007 Info-ZIP.  All rights reserved.
 | |
| .sk
 | |
| For the purposes of this copyright and license, "Info-ZIP" is defined as
 | |
| the following set of individuals:
 | |
| .sk;.lm +3
 | |
|      Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois,
 | |
|      Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth,
 | |
|      Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz,
 | |
|      David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko,
 | |
|      Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs,
 | |
|      Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda,
 | |
|      Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren,
 | |
|      Rich Wales, Mike White.
 | |
| .lm -3;.sk
 | |
| This software is provided "as is," without warranty of any kind, express
 | |
| or implied.  In no event shall Info-ZIP or its contributors be held
 | |
| liable for any direct, indirect, incidental, special or consequential
 | |
| damages arising out of the use of or inability to use this software.
 | |
| .sk
 | |
| Permission is granted to anyone to use this software for any purpose,
 | |
| including commercial applications, and to alter it and redistribute it
 | |
| freely, subject to the above disclaimer and the following restrictions:
 | |
| .sk;.lm +7;.indent -4
 | |
|     1. Redistributions of source code (in whole or in part) must retain
 | |
|        the above copyright notice, definition, disclaimer, and this list
 | |
|        of conditions.
 | |
| .sk;.indent -4
 | |
|     2. Redistributions in binary form (compiled executables and libraries)
 | |
|        must reproduce the above copyright notice, definition, disclaimer,
 | |
|        and this list of conditions in documentation and/or other materials
 | |
|        provided with the distribution.  The sole exception to this condition
 | |
|        is redistribution of a standard UnZipSFX binary (including SFXWiz) as
 | |
|        part of a self-extracting archive; that is permitted without inclusion
 | |
|        of this license, as long as the normal SFX banner has not been removed
 | |
|        from the binary or disabled.
 | |
| .sk;.indent -4
 | |
|     3. Altered versions -- including, but not limited to, ports to new operating
 | |
|        systems, existing ports with new graphical interfaces, versions with
 | |
|        modified or added functionality, and dynamic, shared, or static library
 | |
|        versions not from Info-ZIP -- must be plainly marked as such and must not
 | |
|        be misrepresented as being the original source or, if binaries,
 | |
|        compiled from the original source.  Such altered versions also must not
 | |
|        be misrepresented as being Info-ZIP releases -- including, but not
 | |
|        limited to, labeling of the altered versions with the names "Info-ZIP"
 | |
|        (or any variation thereof, including, but not limited to, different
 | |
|        capitalizations), "Pocket UnZip," "WiZ" or "MacZip" without the
 | |
|        explicit permission of Info-ZIP.  Such altered versions are further
 | |
|        prohibited from misrepresentative use of the Zip-Bugs or Info-ZIP
 | |
|        e-mail addresses or the Info-ZIP URL(s), such as to imply Info-ZIP
 | |
|        will provide support for the altered versions.
 | |
| .sk;.indent -4
 | |
|        4. Info-ZIP retains the right to use the names "Info-ZIP", "Zip",
 | |
|        "UnZip", "UnZipSFX", "WiZ", "Pocket UnZip", "Pocket Zip", and
 | |
|        "MacZip" for its own source and binary releases.
 | |
| .lm -7;.sk
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Acknowledgements
 | |
| .br
 | |
|        Thanks to R. P. Byrne for his Shrink.Pas program, which
 | |
|        inspired this project, and from which the shrink algorithm
 | |
|        was stolen; to Phil Katz for placing in the public domain
 | |
|        the zip file format, compression format, and .ZIP filename
 | |
|        extension, and for accepting minor changes to the file
 | |
|        format; to Steve Burg for clarifications on the deflate
 | |
|        format; to Haruhiko Okumura and Leonid Broukhis for providing
 | |
|         some useful ideas for the compression algorithm; to
 | |
|        Keith Petersen, Rich Wales, Hunter Goatley and Mark Adler
 | |
|        for providing a mailing list and ftp site for the Info-ZIP
 | |
|        group to use; and most importantly, to the Info-ZIP group
 | |
|        itself (listed in the file infozip.who) without whose
 | |
|        tireless testing and bug-fixing efforts a portable zip
 | |
|        would not have been possible.  Finally we should thank
 | |
|        (blame) the first Info-ZIP moderator, David Kirschbaum,
 | |
|        for getting us into this mess in the first place.
 | |
| .!------------------------------------------------------------------------------
 | |
| .indent -4
 | |
| 2 Bugs
 | |
| .br
 | |
| All bug reports, patches, or suggestions should go to zip-bugs via the
 | |
| web site contact form at http://www.Info-ZIP.org.  Patches should be
 | |
| sent as unified or context diffs only (diff -u or diff -c).
 | |
| .sk
 | |
| Any bug report should include the Zip version, any special compilation
 | |
| options (see "zip -v" report), the host system type and operating system
 | |
| version, and any other relevant information (compiler version, lunar
 | |
| phase, ...).  
 | |
| .!------------------------------------------------------------------------------
 |