.! .! 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 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" option is higly insecure, the plaintext password may be seen by others. For this reason (and because of lack of space), the "-P" 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.