.!
.! File: UNZIP_DEF.RNH
.!
.! Author: Hunter Goatley
.!
.! Date: October 23, 1991
.!
.! Description:
.!
.! RUNOFF source file for VMS on-line help for portable UnZip.
.! Adapted from UNZIP.MAN (now UNZIP.TXT).
.!
.! To build: $ REN UNZIP_DEF.RNH UNZIP.RNH
.! $ RUNOFF UNZIP.RNH
.! $ LIBR/HELP/INSERT libr UNZIP
.!
.! Modification history:
.!
.! 01-001 Hunter Goatley 23-OCT-1991 09:21
.! Genesis.
.! 01-002 Cave Newt 16-MAR-1992 22:37
.! Updated for UnZip 4.2.
.! 01-003 Igor Mandrichenko 23-MAY-1992 22:14
.! Added -X option to command syntax.
.! 01-004 Cave Newt 24-MAY-1992 13:30
.! Added UNZIP_OPTS environment variable help.
.! 01-005 Igor Mandrichenko 14-DEC-1993 18:55
.! Modified for UnZip V5.1
.! 01-006 Cave Newt 21-DEC-1993 12:38
.! Added -x option and cleaned up.
.! 01-007 Cave Newt 14-JUL-1994 09:45
.! Added -Z, -C and -L options, removed -U, minor clean-up.
.! 01-008 Cave Newt 28-JUL-1994 08:57
.! Removed semi-colons from comments.
.! 02-001 Christian Spieler 09-DEC-1995 02:25
.! Modified for UnZip 5.2.
.! 02-002 Christian Spieler 06-FEB-1996 02:25
.! Added -h "help" option.
.! 02-003 Christian Spieler 04-MAR-1997 20:25
.! Added -P "command line password" option.
.! 02-004 Christian Spieler 26-JUL-1997 00:05
.! Added Exit_Codes subtopic, explaining UnZip's VMS return codes.
.! 02-005 Christian Spieler 28-APR-2000 03:22
.! Changed references to plaintext UnZip documentation file
.! into "UNZIP.TXT".
.! 02-006 Christian Spieler 15-APR-2001 22:29
.! Added description for extended functionality of -b option.
.! 02-007 Christian Spieler 10-DEC-2001 13:58
.! Added description for new -: traverse dirs option.
.! 02-008 Christian Spieler 29-JAN-2005 01:50
.! Added description for the -T "set archive timestamp" option.
.!
.noflags
.lm4 .rm72
.indent -4
1 UNZIP
.br
UnZip is used to extract files compressed and packaged by Zip (see HELP ZIP
for information on ZIP).
.sk
For a brief help on Zip and Unzip, run each without specifying any
parameters on the command line, or specify the -h flag (but not in UnZip's
Zipinfo mode).
.sk
UNZIP will list, test, or extract from a ZIP archive. ZIP archives are commonly
found on MS-DOS systems; a VMS version of ZIP can also be found here.
.sk
Archive member extraction is implied by the absence of the -c, -p, -t, -l, -v or
-z options. All archive members are processed unless a filespec is provided to
specify a subset of the archive members.
Format:
.sk;.lm+1;.literal
UNZIP [-cfhlptTuvxz[ajnoqCLMVX]] file[.zip] [list] [-x xlist] [-d out_dir]
.end literal;.lm-1
.!------------------------------------------------------------------------------
.indent -4
2 Parameters
.sk;.indent -4
file[.zip]
.sk
File specification for the ZIP archive(s) with optional wildcards. UnZip will
perform actions specified for every zipfile matching the specification.
Default file specification is SYS$DISK:[].ZIP.
Note that self-extracting ZIP files are supported; just specify the .EXE
suffix yourself.
.sk;.indent -4
[list]
.sk
An optional list of archive members to be processed; if no list is given, all
archive members are processed. Expressions may be
used to match multiple members. Expressions should be enclosed in double-quotes
to prevent interpretation by DCL. Multiple filenames should be separated by
blanks. Each file specification is similar to a Unix egrep expression and may
contain:
.sk
.literal
* matches a sequence of 0 or more characters
? matches exactly 1 character
[...] matches any single character found inside the brackets;
ranges are specified by a beginning character, a hyphen,
and an ending character. If a '!' or '^' immediately
follows the left bracket, then any character not in the
given range is matched.
Hint: To specify a verbatim left bracket '[', the
three-character sequence "[[]" has to be used.
.end literal
.sk
.sk;.indent -4
[-x xlist]
.sk
An optional list of archive members to be excluded from processing. The xlist
overrides any files included in the normal list.
.sk;.indent -4
[-d out_dir]
.sk
Optional directory specification to be used as target root directory
for files to be extracted. Directory should be specified in "[.foo]"
format rather than "foo.dir" or "foo/" format.
.!------------------------------------------------------------------------------
.indent -4
2 Options
.br
The default action of UnZip is to extract all zipfile entries. The following
options and modifiers can be provided:
.sk;.literal
-Z ZipInfo mode
-c extract files to SYS$OUTPUT (terminal)
-f freshen existing files (replace if newer); create none
-h show brief help screen and exit quietly
-l list archive files (short format)
-p extract files to SYS$OUTPUT; no informational messages
-t test archive files
-T set zipfile timestamps to that of each archive's newest entry
-u update existing files; create new ones if needed
-v list archive files (verbose format)
-z display only the archive comment
.end literal;.sk;.literal
MODIFIERS
-a extract text files in standard VMS text file format
-aa extract all files as text
-b auto-extract only binary files in VMS fixed 512-byte record format
-bb extract all files as binary in VMS fixed 512-byte record format
-j junk paths (don't recreate archive's directory structure)
-n never overwrite existing files; don't prompt
-o OK to overwrite files without prompting
-q perform operations quietly (-qq => even quieter)
-C match filenames case-insensitively
-L convert filenames to lowercase if created under DOS, VMS, etc.
-M feed screen output through built-in "more" pager
-P<password> supply decryption password on the command line (insecure!)
-V retain (VMS) file version numbers
-X restore owner/protection info (may require privileges)
-: allow "../" path components that traverse across extract dir root
.end literal;.sk
Note that uppercase options (-C, -L, -M, -P, -T, -V and -X) must be
specified in quotes. For example:
.sk;.literal
unzip "-VX" -a zipfile
.end literal;.sk
When extracting to SYS$OUTPUT (-c or -p options) redirected to a file,
you may want to override the default text file converion by specifying
the -b option. A single "-b" option switches to "binary piping" mode
for Zip entries marked as non-text, only. To force "binary piping" mode
even for Zip file entries marked as text, the "-bb" option should be used.
(Please note that a later "-a" cancels any -b option, see below.)
.sk
The output conversion options -b and -a may be combined to perform
binary conversions on binary files and text conversion on text files.
But note: For compatibility with implementation on other systems, -b cancels
any -a option; to get the intended result, -a must be specified AFTER -b.
And, in combination, "text" recognition takes precedence; this means
that -bba (-bb -a) has the same effect as -ba (-b -a), and -aa overrides
binary conversion for ALL files.
.sk
Please note that using the "-P<password>" option is higly insecure, the
plaintext password may be seen by others. For this reason (and because of
lack of space), the "-P<password>" option is not advertised on UnZip's
online help screen.
.!------------------------------------------------------------------------------
.indent -4
2 Exit_Codes
.br
On VMS, UnZip's UNIX style exit values are mapped into proper
VMS status codes:
.sk;.literal
1 (success) normal exit,
(0x7fff0000 + 16*UnZip_errnum) -W- warnings
(0x7fff0002 + 16*UnZip_errnum) -E- normal errors
(0x7fff0004 + 16*UnZip_errnum) -F- fatal errors
.end literal;.sk
The UnZip error level (or exit code) approximates the exit
codes defined by PKWARE and takes on the following values:
.sk;.literal
VMS UnZip Type of error
severity errcode
- 0 normal; no errors or warnings detected.
W 1 one or more warning errors were encountered,
but processing completed successfully any-
way. This includes zipfiles where one or
more files was skipped due to unsupported
compression method or encryption with an
unknown password.
E 2 a generic error in the zipfile format was
detected. Processing may have completed
successfully anyway; some broken zipfiles
created by other archivers have simple work-
arounds.
F 3 a severe error in the zipfile format was
detected. Processing probably failed imme-
diately.
F 4 unzip was unable to allocate memory for one
or more buffers during program initializa-
tion.
F 5 unzip was unable to allocate memory or
unable to obtain a tty to read the decryp-
tion password(s).
F 6 unzip was unable to allocate memory during
decompression to disk.
F 7 unzip was unable to allocate memory during
in-memory decompression.
F 8 [currently not used]
E 9 the specified zipfiles were not found.
E 10 invalid options were specified on the com-
mand line.
E 11 no matching files were found.
F 50 the disk is (or was) full during extraction.
F 51 the end of the ZIP archive was encountered
prematurely.
E 80 the user aborted unzip prematurely with con-
trol-C (or similar)
E 81 no files were found due to unsupported com-
pression methods or unsupported decryption.
(If even one additional file is successfully
processed, however, the exit status is 1.)
E 82 no files were found due to bad decryption
password(s). This is also the exit status
if no files were found due to a combination
of unsupported compression and bad pass-
words. As in the previous case, however, a
single successful file will result in an
exit status of 1 instead.)
.end literal;.sk
In addition, there is a compilation option to expand upon this behavior:
An executable compiled with the option RETURN_CODES defined displays
a human-readable explanation of what the error status means.
.!------------------------------------------------------------------------------
.indent -4
2 Logical_Names
.br
UnZip allows to modify its default behaviour by specifying option defaults
via the UNZIP_OPTS logical name.
For example, the following will cause UnZip to restore owner/protection
information and perform all operations at quiet-level 1 by default:
.sk;.literal
define UNZIP_OPTS "-qX"
.end literal;.sk
Note that the quotation marks here are required to preserve lowercase options
(opposite of the command-line behavior).
To negate a default option on the command line, add one or more minus
signs before the option letter, in addition to the leading switch character
`-':
.sk;.literal
unzip --ql zipfile
.end literal
or
.literal
unzip -l-q zipfile
.end literal;.sk
At present it is not possible to decrement an option below zero--that is,
more than a few minuses have no effect.
.sk
UNZIP_OPTS may be defined as a symbol rather than a logical name, but if
both are defined, the logical name takes precedence.
.!-----------------------------------------------------------------------------
.indent -4
2 Authors
.br
Info-ZIP; currently maintained by Christian Spieler. VMS support maintained
by Christian Spieler and Hunter Goatley. Originally based on a program
by Samuel H. Smith.
.sk
VMS on-line help ported from UNZIP.TXT by Hunter Goatley.