Windows, but not tested. (extract.c, fileio.c, globals.c, globals.h,
process.c, unix/unix.c, unix/unxcfg.h, unzip.c, unzpriv.h) [SMS]
- Added tentative, experimental-grade support for segmented
- (multi-part) archives. Patch contributed by pstodulk.
+ (multi-part) archives. Patch contributed by Petr Stodulka.
Forum topic: http://www.info-zip.org/phpBB3/viewtopic.php?f=4&t=455
Currently, only multiple segment files on one volume ("split"
archive), with name extensions ".z01", ".z02", ..., ".zip" are
supported; multiple volumes ("spanned" archive) are not.
(extract.c, fileio.c, globals.c, globals.h, process.c, unzip.c,
- unzpriv.h, vms/vms.c, zipinfo.c, zos/vmmvs.c) [pstodulk, SMS]
+ unzpriv.h, vms/vms.c, zipinfo.c, zos/vmmvs.c) [Petr Stodulka, SMS]
+
+6.10c17 (18 Mar 2015)
+ - No news.
+
+6.10c18 (20 Mar 2015):
+ - No news.
Bugs fixed:
reorganization changed some variable names in non-Windows-specific
modules. (consts.h, extract.c, globals.h, unix/unix.c, unzip.c,
unzpriv.h, vms/vms.c) [SMS]
+
+6.10c17 (18 Mar 2015)
+ - Added a type cast to clear a compiler complaint. (fileio.c) [SMS]
+ - Changed an archive size variable type from z_uint4 to zoff_t for
+ better agreement with run-time seek/tell functions. (globals.h) [SMS]
+
+6.10c18 (18 Mar 2015)
+ - Repaired damage to REENTRANT-sensitive code (such as the Windows DLL)
+ in versions 6.10c16 and 6.10c17. (extract.c, fileio.c, process.c)
+ [SMS]
+ - Missing initialization of some variables related to segmented
+ archives could cause spurious error messages: "error: Unexpected
+ end-of-file reading XXX.zip." (globals.c, unzpriv.h) [Petr Stodulka,
+ SMS]
+
+++ /dev/null
-1 UnZip\r
-\r
- UnZip lists, tests, or extracts files from a ZIP archive (an archive\r
- format commonly used on many different systems). The default\r
- behavior (with no options) is to extract into the current directory\r
- (and subdirectories below it) all files from the specified ZIP\r
- archive. A companion program, Zip, creates ZIP archives.\r
-\r
- Info-ZIP UnZip and Zip were intended to be compatible with archives\r
- created by PKWARE's PKZIP and PKUNZIP programs (originally for\r
- MS-DOS), but in many cases the program options or default behaviors\r
- differ. Nowadays, many other programs are available which work with\r
- ZIP archives.\r
-\r
- This help file describes the Unix-style command-line edition of\r
- UnZip. A VMS CLI edition is also available, with a separate help\r
- file.\r
-\r
- Format\r
-\r
- unzip [ unzip_options ] [ file[.zip] ] [ member ... ]\r
- unzip -Z [ zipinfo_options ] [ file[.zip] ] [ member ... ]\r
-\r
- Note: Beginning with UnZip version 6.10, the old command-line\r
- parser has been replaced by one like the one used in Zip. One\r
- significant change is that option negation now uses a TRAILING\r
- hyphen ("-"), so, for example, -B- negates the -B option. This\r
- change was made because a double hyphen ("--") now introduces a long\r
- option.\r
-\r
- To display the basic built-in help, use the command:\r
- unzip -h\r
-\r
- To display the extended built-in help, use the command:\r
- unzip -hh\r
-\r
- The built-in help may be more current than this help file,\r
- especially between full product releases.\r
-\r
- To list all available options for a particular UnZip program, use\r
- the command:\r
- unzip --show-options\r
-\r
- This report will not include any options which are available only on\r
- other system types, or options which must be enabled at build-time\r
- but were not enabled in the particular UnZip program being used.\r
-2 Command_Parameters\r
-\r
-file[.zip]\r
-\r
- File path/name of a ZIP archive. A wildcard name may be used to\r
- specify multiple ZIP archives to be processed in one command. On\r
- VMS systems, any of the standard wildcards for a directory/file\r
- specification may be used: "...", "*", or "%" (or, since VMS V7.2,\r
- "?"). The default archive file specification is ".ZIP".\r
-\r
- Note that a ".zip" or ".ZIP" file type on an archive is merely a\r
- convention, not a requirement. For example, a self-extracting ZIP\r
- archive named "fred" or "fred.exe" could be processed as if it were\r
- an ordinary archive; just specify the actual file name with its\r
- actual name ending (if any), whatever that may be.\r
-\r
-member ...\r
-\r
- An optional list of archive members to be processed, separated by\r
- spaces. If no member list is specified, then all archive members\r
- are processed. Unix-like ("globbing") wildcard patterns may be used\r
- to match multiple members:\r
-\r
- * Matches a sequence of 0 or more characters.\r
- ? Matches exactly 1 character.\r
- [...] Matches any single character found inside the brackets.\r
- Ranges are specified by a beginning character, a hyphen, and\r
- an ending character. If an exclamation point ("!") or a\r
- caret ("^") follows the left bracket, then the range of\r
- characters within the brackets is complemented. That is,\r
- anything except the characters inside the brackets is\r
- considered a match. To specify a literal left bracket, use\r
- the three-character sequence "[[]".\r
-2 Options_Primary_Mode\r
- Options in this group specify the primary mode of operation of\r
- UnZip. Only one of these primary mode options may be specified.\r
-\r
- Note that uppercase options (like -T) must be specified in quotes\r
- (unless SET PROCESS/PARSE_STYLE=EXTENDED is set). For example:\r
-\r
- unzip "-VX" -a zipfile\r
-3 -c\r
--c\r
---to-stdout\r
-\r
- Primary Mode. Extract files to stdout/screen. This option is\r
- similar to the -p option except that the name of each file is\r
- displayed as it is extracted, and the -a option is allowed, which\r
- can provide automatic ASCII-EBCDIC conversion, where appropriate.\r
-3 -f\r
--f\r
---freshen\r
-\r
- Primary Mode. Freshen existing files. That is, extract only those\r
- files that already exist on disk and that are newer than the disk\r
- copies. By default UnZip queries before overwriting, but the -o\r
- option may be used to suppress the queries.\r
-3 -h\r
--h\r
---help\r
-\r
- Primary Mode. Display brief (roughly 24 lines) usage instructions.\r
- See also -hh.\r
-3 -hh\r
--hh\r
---long-help\r
-\r
- Primary Mode. Display extended help (more complete usage\r
- instructions). See also -h.\r
-3 -l\r
--l\r
---list\r
-\r
- Primary Mode. List archive members. By default, a brief format is\r
- used, which includes the following items: member name, uncompressed\r
- file size ("Length"), and modification date-time of the member. A\r
- summary is included at the end of the report, showing total size and\r
- count for all the members in the report. Specifying a member list\r
- limits the report to those members.\r
-\r
- Adding -v (--verbose) to an "unzip -l" command line adds the\r
- following items to the report: compression method, compressed size\r
- ("Size"), compression ratio, and 32-bit CRC.\r
-\r
- In contrast to some other programs, UnZip does not include the\r
- 12-byte encryption header in the compressed size values for a\r
- Traditionally encrypted member. Therefore, compressed size and\r
- compression ratio figures are independent of the member's encryption\r
- status and show the correct compression performance. (The complete\r
- size of the encrypted compressed data stream for archive members is\r
- reported by the more verbose ZipInfo reports. See ZipInfo.\r
-\r
- If UnZip was built with OS2_EAS enabled, then the -l report also\r
- includes the sizes of stored OS/2 extended attributes (EAs) and OS/2\r
- access control lists (ACLs). In addition, the archive comment and\r
- individual member comments (if any) are displayed.\r
-\r
- If a file was archived from a single-case file system (for example,\r
- the old MS-DOS FAT file system) and the -L option was given, the\r
- filename is converted to lowercase and is shown prefixed with a\r
- caret (^).\r
-\r
- Note: If only -v (--verbose) is specified with an archive name,\r
- then UnZip acts as if "-l -v" were specified, and a detailed listing\r
- is generated.\r
-3 --license\r
-\r
- Primary Mode. Display the Info-ZIP license.\r
-3 -p\r
--p\r
---pipe-to-stdout\r
-\r
- Primary Mode. Extract files to stdout (pipe). Only the actual file\r
- data for the members are sent to stdout (no file names, or other\r
- information, as would be displayed with -c, and the files are always\r
- extracted in binary format, just as they are stored (no\r
- conversions).\r
-3 -T\r
--T\r
---timestamp-new\r
-\r
- Primary Mode. Set the timestamp on the archive(s) to that of the\r
- newest file in each one. This corresponds to Zip's -go option,\r
- except that it can be used on wildcard archives (for example, "unzip\r
- -T *.zip"), and is much faster.\r
-3 -t\r
--t\r
---test\r
-\r
- Primary Mode. Test archive members. Testing means that each\r
- archive member is extracted in memory (expanding and decrypting, as\r
- needed), but not written to a file. The resulting CRC (cyclic\r
- redundancy check, an enhanced checksum) of the extracted data is\r
- then compared with the original file's stored CRC value, and an\r
- error message is emitted if a CRC mismatch is detected.\r
-\r
- Adding -v to -t adds some diagnostic information to the report for\r
- archive members with LZMA or PPMd compression.\r
-3 -u\r
--u\r
---update\r
-\r
- Primary mode. Update existing files and create new ones if needed.\r
- This mode performs the same function as the Freshen (-f) mode,\r
- extracting (with query) files that are newer than those with the\r
- same name on disk, but it also extracts those files that do not\r
- already exist on disk.\r
-3 -v\r
--v\r
---verbose\r
-\r
- Primary mode (when alone) or option. When used as a primary mode\r
- (alone), and no archive is specified, an "unzip -v" command\r
- generates a report showing the program version, build options, and\r
- relevant envrironment variables.\r
-\r
- When used with some other primary mode option, -v can make output\r
- more verbose (detailed).\r
-\r
- If no other primary mode is specified, and an archive is specified,\r
- then UnZip acts as if "-l -v" were specified, and a detailed listing\r
- is generated. See -l.\r
-3 -z\r
--z\r
---zipfile-comment\r
-\r
- Primary mode. Display only the archive comment.\r
-2 Options_Ordinary\r
- Options in this group modify the operation of UnZip.\r
-\r
- Note that uppercase options (like -V) must be specified in quotes\r
- (unless SET PROC/PARSE=EXTEND is set). For example:\r
-\r
- unzip "-VX" -a zipfile\r
-\r
-3 -2\r
--2\r
---force-ods2\r
-\r
- [VMS] Convert extracted file names to ODS2-compatible names, even on\r
- an ODS5 file system. By default, if the destination file system is\r
- ODS5, case is preserved, and extended file name characters are\r
- caret-escaped as needed, while if the destination file system is\r
- ODS2, invalid characters are replaced by underscores.\r
-3 -A\r
--A\r
---api-help\r
-\r
- [OS/2, Unix DLL] Print extended help for the DLL's application\r
- programming interface (API).\r
-3 -a\r
--a\r
---ascii\r
-\r
- Convert text files. Ordinarily, all files are extracted exactly as\r
- they are stored, byte-for-byte. With -a, line endings in a text\r
- file are adjusted to the local standard as the file is extracted.\r
- When appropriate, ASCII<-->EBCDIC conversion is also done.\r
-\r
- Zip (or a similar archiving program) identifies files as "binary" or\r
- "text" when they are archived. (A short-format ZipInfo report\r
- denotes a binary file with a "b", and a text file with a "t".) Zip's\r
- identification of text files may not be perfect, so UnZip prints\r
- "[binary]" or "[text]" as a visual check for each file it extracts\r
- with -a. The -aa option forces all files to be extracted (and\r
- converted) as text, regardless of the supposed file type.\r
-\r
- [VMS] On VMS, for archives with VMS attribute information (made with\r
- "zip -V"), files are always created with their original record\r
- formats. For archives without VMS attribute information (not made\r
- with "zip -V"), all files are normally created with Stream_LF record\r
- format. With -a, text files are normally created with\r
- variable-length record format, but adding -S gives them Stream_LF\r
- record format. With -aa, all files are treated as text files. See\r
- also -b and -S.\r
-3 -B\r
--B\r
---backup\r
-\r
- [when built with UNIXBACKUP enabled] Save a backup copy of each\r
- overwritten file. The backup file gets the name of the target file\r
- with a tilde and optionally a unique sequence number (up to 5\r
- digits) appended. The sequence number is appended whenever another\r
- file with the original name plus tilde already exists. When used\r
- together with the "overwrite all" option, -o, numbered backup files\r
- are never created. In this case, all backup files are named as the\r
- original file with an appended tilde, and existing backup files are\r
- deleted without notice. This feature works similarly to the default\r
- behavior of emacs(1) in many locations.\r
-\r
- Example: the old copy of "foo" is renamed to "foo~".\r
-\r
- Warning: Users should be aware that the -B option does not prevent\r
- loss of existing data under all circumstances. For example, when\r
- UnZip is run in overwrite-all mode, an existing "foo~" file is\r
- deleted before UnZip attempts to rename "foo" to "foo~". When this\r
- rename attempt fails (because of a file lock, insufficient\r
- privileges, or any other reason), the extraction of "foo~" gets\r
- cancelled, but the old backup file is already lost. A similar\r
- scenario takes place when the sequence number range for numbered\r
- backup files gets exhausted (99999, or 65535 for 16-bit systems).\r
- In this case, the backup file with the maximum sequence number is\r
- deleted and replaced by the new backup version without notice.\r
-3 -b\r
--b\r
---binary\r
-\r
- [Tandem, VMS] Selects the file record format used when extracting\r
- binary files. -b may conflict or interact with -a in different ways\r
- on different system types. -b is ignored on systems other than\r
- Tandem and VMS.\r
-\r
- Zip (or a similar archiving program) identifies files as "binary" or\r
- "text" when they are archived. (A short-format ZipInfo report\r
- denotes a binary file with a "b", and a text file with a "t".)\r
-\r
- [Tandem] Force the creation files with filecode type 180 ('C') when\r
- extracting archive members marked as "text". (On Tandem, -a is\r
- enabled by default, see above).\r
-\r
- [VMS] On VMS, for archives with VMS attribute information (made with\r
- "zip -V"), files are always created with their original record\r
- formats. For archives without VMS attribute information (not made\r
- with "zip -V"), files are normally created with Stream_LF record\r
- format. With -b, binary files are created with fixed-length,\r
- 512-byte record format. With -bb, all files are created with\r
- fixed-length, 512-byte record format. When extracting to standard\r
- output (-c or -p option in effect), the default conversion of text\r
- record delimiters is disabled for binary files (with -b), or for all\r
- files (with -bb).\r
-3 -C\r
--c\r
---ignore-case ([CMS, MVS] --CMS-MVS-lower)\r
-\r
- Use case-insensitive name matching for names in the member list and\r
- the -x excluded-member list on the command line. By default,\r
- case-sensitive matching is done. For example, specifying "makefile"\r
- on the command line will match only "makefile" in the archive, not\r
- "Makefile" or "MAKEFILE". On many systems, the local file system is\r
- case-insensitive, so case-insensitive name matching would be more\r
- natural. With -C, "makefile" would match "makefile", "Makefile", or\r
- "MAKEFILE".\r
-\r
- -C does not affect the search for the ZIP archive file(s), nor the\r
- matching of archive members to existing files on the extraction\r
- path. So, on a case-sensitive file system, UnZip will never try to\r
- overwrite a file "FOO" when extracting a member named "foo"!\r
-3 -c\r
--c\r
---to-stdout\r
-\r
- Primary Mode. Extract files to stdout/screen. For details, see\r
- Options_Primary_Mode.\r
-3 -D\r
--D\r
---dir-timestamps\r
-\r
- Control timestamps on extracted files and directories. By default,\r
- UnZip restores timestamps for extracted files, but not for\r
- directories it creates. Specifying -D tells UnZip not to restore\r
- any timestamps. Specifying -D- tells UnZip to restore timestamps\r
- for directories as well as other items. -D- works only on systems\r
- that support setting timestamps for directories (currently ATheOS,\r
- BeOS, MacOS, OS/2, Unix, VMS, Win32). On other systems, -D- has no\r
- effect.\r
-\r
- [Non-VMS] Timestamp restoration behavior changed between UnZip\r
- versions 6.00 and 6.10. The following table shows the effects of\r
- various -D options for both versions.\r
-\r
- UnZip version |\r
- 6.00 | 6.10 | Restore timestamps on:\r
- -----------+-----------+------------------------\r
- -DD | -D | Nothing.\r
- -D | (default) | Files, not directories.\r
- (default) | -D- | Files and directories.\r
-\r
- [VMS] The old behavior on VMS was the same as the new behavior on\r
- all systems. (The old negated --D option is now -D-, because of\r
- changes to the command-line parser.)\r
-3 -d\r
--d dest_dir\r
---extract-dir dest_dir\r
-\r
- Specifies a destination directory for extracted files. By default,\r
- files are extracted (and subdirectories created) in the current\r
- directory. With "-d dest_dir", extraction is done into the\r
- specified directory, instead. See also -da.\r
-\r
- The option and directory may be concatenated without any white space\r
- between them, but this may cause normal shell behavior to be\r
- suppressed. For example, "-d ~" (tilde) is expanded by Unix shells\r
- into the name of the user's home directory, but "-d~" is treated as\r
- a literal "~" subdirectory of the current directory.\r
-\r
- [VMS] On VMS, only a VMS-style device:[directory] specification is\r
- permitted.\r
-3 -d\r
--da[=reuse]\r
---auto-extract-dir[=reuse]\r
-\r
- Specifies a destination directory for extracted files which is\r
- derived from the base name of the archive. By default, files are\r
- extracted (and subdirectories created) in the current default\r
- directory. With -da, UnZip automatically derives a subdirectory\r
- name from the archive name, creates that subdirectory, and extracts\r
- files into that subdirectory.\r
-\r
- For example, with -da, extraction of "fred.zip" is done into\r
- subdirectory "[.fred]" instead of into the current directory. (On\r
- non-VMS, systems, subdirectory "fred".)\r
-\r
- For greater safety, by default, UnZip will refuse to extract into an\r
- automatic extraction directory which already exists. Specifying the\r
- optional keyword "reuse" will allow an existing directory to be\r
- used.\r
-\r
- If -da is specified as a default option in an environment variable,\r
- it can be overridden by either a negated -da- option or an explicit\r
- "-d dest_dir" option. See also -d.\r
-3 -f\r
--f\r
---freshen\r
-\r
- Primary Mode. Freshen existing files. For details, see\r
- Options_Primary_Mode.\r
-3 -h\r
--h\r
---help\r
-\r
- Primary Mode. Display brief (roughly 24 lines) usage instructions.\r
- For details, see Options_Primary_Mode.\r
-3 -hh\r
--hh\r
---long-help\r
-\r
- Primary Mode. Display complete usage instructions. For details,\r
- see Options_Primary_Mode.\r
-3 -i\r
--i\r
---no-mac-ef-names\r
-\r
- [MacOS (pre-OS-X)] Ignore filenames stored in MacOS extra fields.\r
- Instead, the most compatible filename stored in the generic part of\r
- the member's header is used.\r
-3 -J\r
--J\r
---junk-attrs\r
-\r
- [BeOS] Junk file attributes. The file's BeOS file attributes are\r
- not restored, only the file's data.\r
-\r
- [MacOS] Ignore MacOS extra fields. All Macintosh-specific info is\r
- skipped. AppleDouble files are restored as separate files.\r
-3 -j\r
--j[=depth]\r
---junk-dirs[=depth]\r
-\r
- Junk directories on extracted files. With -j, all directory\r
- information is stripped from an archive member name, so all files\r
- are extracted into the destination directory. (See also -d.)\r
-\r
- If a depth ("=depth", where "depth" is a positive integer) is\r
- specified, then that number of directory levels will be stripped\r
- from an archive member name. For example, an archive member like\r
- "a/b/c/d/ee.txt" would normally be extracted as "[.a.b.c.d]ee.txt".\r
- With -j, it would be extracted as "ee.txt". With -j=2, the first\r
- two directory levels would be stripped, so it would be extracted as\r
- "[.c.d]ee.txt".\r
-3 --jar\r
-\r
- Treat archive(s) as Java JAR. Over-simplification in Java JAR\r
- archives can cause UnZip to transform UTF-8 file names according to\r
- inappropriate (MS-DOS) rules, yielding corrupt names on extracted\r
- files (typically those with ASCII codes 128-255). Archives\r
- containing a Java "CAFE" extra field should be detected\r
- automatically, and handled correctly, but not all JAR archives\r
- include that extra field. Specifying --jar tells UnZip to expect\r
- UTF-8 file names, regardless of whether the archive contains a\r
- "CAFE" extra field.\r
-3 -K\r
--K\r
---keep-s-attrs\r
-\r
- [AtheOS, BeOS, Unix] Retain SUID/SGID/Tacky permission bits. By\r
- default, these permission bits are cleared, for security reasons.\r
-3 -k\r
---keep-permissions\r
-\r
- [AtheOS, BeOS, Unix, VMS] Control how archived permissions or\r
- protections are restored on extracted files and directories.\r
-\r
- By default, archived permissions are restored with some limitations.\r
- On AtheOS, BeOS, and Unix, the current umask value is applied (to\r
- the normal user/group/other permissions). On VMS, the current\r
- default protection is applied to the UIC-based (SOGW) protections.\r
-\r
- With -k, the archived permissions are restored without regard to the\r
- Unix umask or VMS default protection. (This was the default\r
- behavior in UnZip versions before 6.10.)\r
-\r
- With -k-, the archived permissions are ignored, so only the Unix\r
- umask or VMS default protection is effective. (On VMS, directories\r
- are always created without any Delete access.)\r
-\r
- On AtheOS, BeOS, and Unix, the SUID/SGID/Tacky permission bits are\r
- controlled by the -K/--keep-s-attrs option, regardless of the\r
- -k/--keep-permissions setting.\r
-3 -ka\r
---keep-acl [VMS] Restore ACLs on extracted files and directories.\r
-3 -L\r
--L\r
---lowercase-names\r
-\r
- Convert to lowercase any filename originating on an uppercase-only\r
- operating system or file system. (This was UnZip's default behavior\r
- in versions before 5.11. The current default behavior is the same\r
- as the old behavior with the -U option. -U is now used for another\r
- purpose.)\r
-\r
- Depending on the archiver, files archived from single-case file\r
- systems (old MS-DOS FAT, VMS ODS2, and so on) may be stored as\r
- all-uppercase names; this can be ugly or inconvenient when\r
- extracting to a case-preserving file system such as OS/2 HPFS or a\r
- case-sensitive one such as on Unix. By default UnZip lists and\r
- extracts such filenames exactly as they're stored (excepting\r
- truncation, conversion of unsupported characters, an so on). With\r
- -L, the names of all files from certain systems will be converted to\r
- lowercase. With -LL, all file names will be down-cased, regardless\r
- of the originating file system.\r
-3 -l\r
--l\r
---list\r
-\r
- Primary Mode. List archive members. For details, see\r
- Options_Primary_Mode.\r
-3 -M\r
--M ([CMS,MVS] Or: " -m )\r
---more\r
-\r
- Pipe all output through an internal pager similar to the Unix\r
- more(1) command. At the end of a screenful of output, UnZip pauses\r
- with a "--More--" prompt; the next screenful may be viewed by\r
- pressing the Enter (Return) key or the space bar. UnZip can be\r
- terminated by pressing the "q" key and, on some systems, the\r
- Enter/Return key. Unlike Unix more(1), there is no\r
- forward-searching or editing capability. Also, UnZip doesn't notice\r
- if long lines wrap at the edge of the screen, effectively resulting\r
- in the printing of two or more lines and the likelihood that some\r
- text will scroll off the top of the screen before being viewed. If\r
- the actual number of lines on the screen can not be determined, 24\r
- lines will be assumed.\r
-3 -mc\r
--mc\r
---member-counts\r
-\r
- Control inclusion of separate member counts for directories, files,\r
- and links, after the totals summary at the end of the report. By\r
- default, they are included. Use "-mc-" or "--member-counts-" to\r
- suppress them. See also -t.\r
-3 -N\r
--N\r
---comment-to-note\r
-\r
- [Amiga] Extract member comments as Amiga filenotes. Member comments\r
- are created with the -c option of Zip, or with the -N option of the\r
- Amiga port of Zip, which stores filenotes as comments.\r
-3 -n\r
--n\r
---never-overwrite\r
-\r
- When extracting, never overwrite existing files. If a file already\r
- exists, skip the extraction of that file without asking. See also\r
- -o (--overwrite).\r
-\r
- By default, UnZip queries the user before extracting any file that\r
- already exists. The user may choose to overwrite only the current\r
- file, overwrite all files, skip extraction of the current file, skip\r
- extraction of all existing files, or rename the current file (choose\r
- a new name for the extracted file).\r
-\r
- [VMS] On VMS, the usual query choices are to create a new version of\r
- an existing file, to skip extraction, or to rename the current file.\r
- In the case where an archive member name includes a version number,\r
- and -V ("retain VMS file version numbers") is in effect, then an\r
- additional query choice is offered: to overwrite the existing file.\r
-3 -O\r
--O\r
---oem-char-set char_set\r
-\r
- [Unix] Select OEM character set char_set.\r
-3 -o\r
--o\r
---overwrite\r
-\r
- Always overwrite existing files without prompting. This is a\r
- dangerous option, so use it with care. (It is often used with -f,\r
- however, and is the only way to overwrite directory EAs on OS/2.)\r
-\r
- By default, UnZip queries the user before extracting any file that\r
- already exists.\r
-\r
- [Non-VMS] On non-VMS systems, the user may choose to overwrite only\r
- the current file, overwrite all files, skip extraction of the\r
- current file, skip extraction of all existing files, or rename the\r
- current file (choose a new name for the extracted file).\r
-\r
- [VMS] On VMS, the usual query choices are to create a new version of\r
- an existing file, to skip extraction, or to rename the current file.\r
- In the case where an archive member name includes a version number,\r
- and -V ("retain VMS file version numbers") is in effect, then an\r
- additional query choice is offered: to overwrite the existing file.\r
- In this case, -o selects the "new version" choice, and -oo (or "-o\r
- -o") selects the "overwrite" choice.\r
-3 -P\r
--P password\r
---password password\r
-\r
- Use "password" to decrypt encrypted archive members (if any). THIS\r
- IS INSECURE! Many multi-user operating systems provide ways for any\r
- user to see the current command line of any other user. Even on\r
- stand-alone systems, there is always the threat of over-the-shoulder\r
- peeking. Storing the plaintext password as part of a command line\r
- in an automated script can be even less secure, Whenever possible,\r
- use the non-echoing, interactive prompt to enter passwords. Where\r
- security is truly important, use a strong encryption method, such as\r
- AES, instead of the relatively weak encryption provided by\r
- Traditional ZIP encryption. Or, use an external encryption program,\r
- such as GnuPG, before archiving the file. (Note that Zip will\r
- probably not be able to do significant compression on a file which\r
- has already been encrypted.)\r
-3 -p\r
--p\r
---pipe-to-stdout\r
-\r
- Primary Mode. Extract files to stdout (pipe). For details, see\r
- Options_Primary_Mode.\r
-3 -q\r
--q\r
---quiet\r
-\r
- Perform operations quietly. (-qq: even more quietly). By default,\r
- UnZip prints the names of the files it's extracting or testing, the\r
- extraction methods, any member or archive comments that may be\r
- stored in the archive, and possibly a summary when finished with\r
- each archive. The -q[q] options suppress the printing of some or\r
- all of these messages.\r
-3 -r\r
--r\r
---remove-exts\r
-\r
- [Tandem] Remove file extensions.\r
-3 -S\r
--S\r
---streamlf\r
-\r
- [VMS] Use Stream_LF record format when converting extracted text\r
- files (-a, -aa), instead of the text-file default, variable-length\r
- record format.\r
-\r
- [VMS] On VMS, for archives with VMS attribute information (made with\r
- "zip -V"), files are always created with their original record\r
- formats. For archives without VMS attribute information (not made\r
- with "zip -V"), all files are normally created with Stream_LF record\r
- format. With -a, text files are normally created with\r
- variable-length record format, but adding -S gives them Stream_LF\r
- record format. With -aa, all files are treated as text files. See\r
- also -a and -b.\r
-3 -s\r
--s\r
---space-to-uscore\r
-\r
- [OS/2, NT, MS-DOS] Convert spaces in filenames to underscores.\r
- Because all these operating systems allow spaces in filenames, UnZip\r
- normally extracts filenames with spaces intact (for example, "EA\r
- DATA. SF"). Working with such file names can be awkward, however,\r
- so -s can be used to replace spaces with underscores.\r
-3 -sc\r
--sc\r
---show-command\r
-\r
- Show processed command line (options, arguments), and then exit.\r
-\r
- Strictly speaking this is a primary-mode option, but it's intended\r
- for use in program development, not in normal use.\r
-3 -si\r
--si\r
---show-pid\r
-\r
- [Non-VMS] Show the UnZip program's process ID (pid) before\r
- performing any other work. This value can then be used in a "kill\r
- -USR1 pid" command to trigger a user-triggered progress report.\r
-3 -so\r
--so\r
---show-options\r
-\r
- Display all valid program options, then exit.\r
-\r
- Strictly speaking this is a primary-mode option, but it's intended\r
- for use in program development, not in normal use.\r
-3 -T\r
--T\r
---timestamp-new\r
-\r
- Primary Mode. Set the timestamp on the archive(s) to that of the\r
- newest file in each one. For details, see Options_Primary_Mode.\r
-3 -t\r
--t\r
---test\r
-\r
- Primary Mode. Test archive members. For details, see\r
- Options_Primary_Mode.\r
-3 -U\r
--U\r
---unicode\r
-\r
- [UNICODE_SUPPORT] Control UTF-8 handling. When UNICODE_SUPPORT is\r
- available, -U forces UnZip to escape all non-ASCII characters from\r
- UTF-8 coded filenames as "#Uxxxx' (for UCS-2 characters, or\r
- "#Lxxxxxx" for Unicode codepoints needing 3 octets). This option is\r
- mainly provided for debugging purpose when the fairly new UTF-8\r
- support is suspected to mangle up extracted filenames.\r
-\r
- -UU disables the recognition of UTF-8 encoded filenames. The\r
- handling of filename codings within UnZip falls back to the behavior\r
- of previous versions.\r
-\r
- [old, obsolete usage] Leave filenames uppercase if created on\r
- MS-DOS, VMS, and so on. See -L.\r
-3 -u\r
--u\r
---update\r
-\r
- Primary mode. Update existing files and create new ones if needed.\r
- For details, see Options_Primary_Mode.\r
-3 -V\r
--V\r
---keep-versions\r
-\r
- [Non-CMS-MVS] Retain VMS file version numbers. VMS files can be\r
- stored with a version number, in the format "file.type;##", where\r
- "##" is a decimal number. By default the ";##" version numbers are\r
- stripped, but this option allows them to be retained. (On file\r
- systems that limit filenames to particularly short lengths, the\r
- version numbers may be truncated or stripped regardless of this\r
- option.)\r
-\r
- [Non-VMS] Note that before UnZip version 6.10, on a non-VMS system,\r
- a file with a name like "fred;123" would, by default, be extracted\r
- as "fred", even if the file did not originate on a VMS system (so\r
- that ";123" was probably not really a VMS version number).\r
- Beginning with UnZip version 6.10, the default behavior is to strip\r
- VMS version numbers only from files which were archived on a VMS\r
- system. To restore the old behavior, and always strip apparent VMS\r
- version numbers, explicitly negate the option: "-V-".\r
-3 -v\r
--v\r
---verbose\r
-\r
- When used with some primary mode option, -v can make output more\r
- verbose. See also Primary Mode options, and -l in particular.\r
-\r
- Note: If only -v (--verbose) is specified with an archive name,\r
- then UnZip acts as if "-l -v" were specified, and a detailed listing\r
- is generated.\r
-3 -W\r
--W\r
---wild-no-span\r
-\r
- [WILD_STOP_AT_DIR] (Valid when the program was built with the C\r
- macro WILD_STOP_AT_DIR defined.) By default, the wildcard characters\r
- "?" (single-character wildcard) and "*" (multi-character wildcard)\r
- match any character in a member path/name. "-W" modifies the\r
- pattern-matching behavior for archive members so that both "?"\r
- (single-character wildcard) and "*" (multi-character wildcard) do\r
- not match the directory separator character "/". (The two-character\r
- sequence "**" acts as a multi-character wildcard that includes the\r
- directory separator in its matched characters.) For example, with\r
- "-W":\r
-\r
- "*.c" matches "foo.c" but not "mydir/foo.c"\r
- "**.c" matches both "foo.c" and "mydir/foo.c"\r
- "*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c"\r
- "??*/*" matches "ab/foo" and "abc/foo"\r
- but not "a/foo" or "a/b/foo"\r
-\r
- This modified behavior is equivalent to the pattern matching style\r
- used by the shells of some of UnZip's supported target OSs (one\r
- example is Acorn RISC OS). This option may not be available on\r
- systems where the Zip archive's internal directory separator\r
- character "/" is allowed as regular character in native operating\r
- system filenames.\r
-\r
- [non-VMS] Currently, UnZip uses the same pattern matching rules for\r
- both wildcard archive file name specifications and archive member\r
- selection patterns on most system types. For systems allowing "/"\r
- as regular filename character, the -W option would not work as\r
- expected on a wildcard file name specification.\r
-3 -X\r
--X\r
---restore-info\r
-\r
- [VMS, Unix, OS/2, NT, Tandem] Restore owner/protection info (UICs\r
- and ACL entries on VMS, or user and group info (UID/GID) on Unix, or\r
- access control lists (ACLs) on certain network-enabled versions of\r
- OS/2 (Warp Server with IBM LAN Server/Requester 3.0 to 5.0; Warp\r
- Connect with IBM Peer 1.0), or security ACLs on Windows NT.) In most\r
- cases this will require special system privileges, and doubling the\r
- option (-XX) on NT instructs UnZip to use privileges for extraction;\r
- but on Unix, for example, a user who belongs to several groups can\r
- restore files owned by any of those groups, so long as the user IDs\r
- match the user's own. Note that ordinary file attributes are always\r
- restored. This option applies only to optional, extra ownership\r
- info available on some operating systems. (NT's access control\r
- lists do not appear to be especially compatible with OS/2's, so no\r
- attempt is made at cross-platform portability of access privileges.\r
- It is not clear under which conditions this would ever be useful\r
- anyway.)\r
-3 -x\r
--x member ...\r
---exclude member ...\r
-\r
- An optional list of archive members to be excluded from processing.\r
- Because wildcard characters normally match "/" directory separators\r
- (for exceptions see the option -W), this option may be used to\r
- exclude any files that are in subdirectories. For example, "unzip\r
- foo *.[ch] -x */*" would extract all C source files (*.c, *.h) in\r
- the main directory, but none in any subdirectories. Without the -x\r
- option, all C source files in all directories within the archive\r
- would be extracted.\r
-\r
- When the program sees -x (--exclude) on a command line, it stops\r
- scanning for options, and treats every succeeding item as an archive\r
- member name. To avoid confusion between member names and command\r
- options, it's simplest to specify -x (--exclude) and its member list\r
- as the last items on a command line. Alternatively, the special\r
- name "@" can be used to terminate the member list (and cause the\r
- program to resume scanning for options). That is, the following two\r
- commands are equivalent:\r
-\r
- unzip fred.zip -b -x file1 file2 file3\r
- unzip fred.zip -x file1 file2 file3 @ -b\r
-3 -Y\r
--Y\r
---dot-version\r
-\r
- [VMS] Treat archive member name endings of ".nnn" (where "nnn" is a\r
- decimal number) as if they were VMS version numbers (";nnn"). (The\r
- default is to treat them as file types.) For example:\r
-\r
- "a.b.3" -> "a.b;3"\r
-3 -Z\r
--Z\r
---zipinfo-mode\r
-\r
- ZipInfo mode. If the first option on the command line is -Z, then\r
- the program runs in ZipInfo mode, which is used to display\r
- information about an archive and its members. Remaining options are\r
- interpreted as ZipInfo options. See ZipInfo_mode.\r
-3 -z\r
--z\r
---zipfile-comment\r
-\r
- Primary mode. Display only the archive comment. For details, see\r
- Options_Primary_Mode.\r
-3 -$\r
--$\r
---volume-labels\r
-\r
- [MS-DOS, OS/2, NT] Restore the volume label if the extraction medium\r
- is removable (for example, a diskette). Doubling the option (-$$)\r
- allows fixed media (hard disks) to be labeled as well. By default,\r
- volume labels are ignored.\r
-3 -/\r
--/\r
---extensions\r
-\r
- [Acorn] Overrides the extension list supplied by the Unzip$Ext\r
- environment variable. During extraction, filename extensions that\r
- match one of the items in this extension list are swapped in front\r
- of the base name of the extracted file.\r
-3 -:\r
--:\r
---do-double-dots\r
-\r
- [all but Acorn, VM/CMS, MVS, Tandem] Allows UnZip to extract archive\r
- members into locations outside of the current extraction destination\r
- directory (and its subdirectories).\r
-\r
- For security reasons, UnZip normally removes "parent directory" path\r
- components ("../") from the path names of archive members as they\r
- are extracted. This safety feature (new for version 5.50) prevents\r
- UnZip from accidentally writing files to directories outside the\r
- current destination directory tree. The -: option sets UnZip back\r
- to its previous, more liberal behavior, allowing exact extraction of\r
- archives that use "../" path components to create multiple directory\r
- trees at or above the level of the destination directory.\r
-\r
- This option does not enable writing explicitly to the root directory\r
- ("/"). To achieve this, it is necessary to set the extraction\r
- target folder to "/" (by using an option like "-d /"). However,\r
- when the -: option is specified, it is still possible implicitly to\r
- write to the root directory if member paths specifying enough "../"\r
- path components.\r
-\r
- Use this option with extreme caution.\r
-3 -^\r
--^\r
---control-in-name\r
-\r
- [Unix] Allow control characters in file names of extracted ZIP\r
- archive members. On Unix, a file name may contain any (8-bit)\r
- character code with the two exceptions of "/" (the directory\r
- delimiter) and NUL (0x00, the C string-termination character),\r
- unless the specific file system has more restrictive conventions.\r
- Generally, this allows embedding ASCII control characters or escape\r
- sequences in file names. However, this feature allows the use of\r
- malicious file names which can cause various kinds of bad trouble\r
- when displayed on a user's terminal/emulator. (Even a file name\r
- with unprintable but otherwise harmless characters can cause\r
- problems for users.)\r
-\r
- For these reasons, by default, UnZip applies a filter that removes\r
- potentially dangerous control characters from the extracted file\r
- names. The -^ option overrides this filter in the rare case that\r
- embedded filename dangerous control characters are to be\r
- intentionally restored.\r
-2 Environment_Options\r
- UnZip's default behavior may be modified by placing command-line\r
- options in an environment variable. This can be done with any\r
- option, but it is probably most useful options like -a (auto-convert\r
- text files), -L (downcase file names from systems with all uppercase\r
- file names), -C (use case-insensitive name matching), -q (quiet), -o\r
- (always overwrite), or -n (never overwrite).\r
-\r
- For UnZip, the environment variable name on VMS is UNZIP_OPTS\r
- (non-VMS: UNZIP). The name on VMS is different to avoid conflict\r
- with a foreign-command DCL symbol, UNZIP. For compatibility with\r
- Zip, if UNZIP_OPTS is not defined, then UnZip will use UNZIPOPT the\r
- same way.\r
-\r
- For ZipInfo ("unzip -Z"), the environment variable name on VMS is\r
- ZIPINFO_OPTS (non-VMS: ZIPINFO). For compatibility with Zip, if\r
- ZIPINFO_OPTS is not defined, then ZipInfo will use ZIPINFOOPT the\r
- same way.\r
-\r
- For example, to make UnZip act as quietly as possible, only\r
- reporting errors, one could use commands like the following:\r
-\r
- Unix Bourne (or similar) shell:\r
- UNZIP='-q -q'; export UNZIP\r
-\r
- Unix C shell:\r
- setenv UNZIP '-q -q'\r
-\r
- OS/2 or MS-DOS:\r
- set UNZIP="-q -q"\r
-\r
- VMS (with quotation to preserve lower case in DCL):\r
- define UNZIP_OPTS "-q -q" ! Logical name, or\r
- UNZIP_OPTS = "-q -q" ! DCL symbol. (Either works.)\r
-\r
- Environment options are treated the same as any other command-line\r
- options, except that they are effectively the first options on the\r
- command line. To override an environment option, one may use an\r
- explicit option to cancel or override it. For example, to override\r
- one of the "quiet" flags in the example above, use a command like:\r
-\r
- unzip -q- [other options] archive.zip\r
-\r
- The leading hyphen is the normal option character, and the trailing\r
- one negates the option, canceling one level of quietness. To cancel\r
- multiple "quiet" flags, use multiple -q- options:\r
-\r
- unzip -t -q- -q- archive\r
- unzip -q- -q- -t archive\r
-\r
- Note that multiple one-character options like "-q" and "-q" can be\r
- combined into a single "-qq", but it's generally clearer to keep\r
- each instance of each option separate. Similarly, negated\r
- one-character options can be combined, as with "-q-q-", but "-q-\r
- -q-" is generally clearer.\r
-\r
- The examples show short (one-character) options, but long ("--")\r
- options are also allowed.\r
-2 Encryption_Decryption\r
- Zip and UnZip have long supported a relatively weak encryption\r
- method, which we call Traditional ZIP encryption. The source code\r
- for Traditional encryption is included in the source kits, and\r
- support for Traditional encryption is enabled by default.\r
- (Build-time C macro: CRYPT_TRAD.)\r
-\r
- Beginning with UnZip version 6.10 and Zip version 3.1, these\r
- programs also offer a stronger, Advanced Encryption Standard (AES)\r
- encryption method, which we call AES WinZip/Gladman (AES_WG)\r
- encryption. (The encryption code was supplied by Brian Gladman, and\r
- the archive format is intended to be compatible with that used by\r
- the WinZip program. WinZip is a registered trademark of WinZip\r
- International LLC.) The source code for AES_WG encryption is\r
- distributed in a separate kit (for export control reasons), and\r
- support for AES_WG encryption must be enabled explicitly at build\r
- time. (Build-time C macro: CRYPT_AES_WG.) See the INSTALL file in\r
- the source kit for details on how to enable AES_WG encryption (or\r
- how to disable Traditional encryption).\r
-\r
- For details on the WinZip AES scheme, see:\r
- http://www.winzip.com/aes_info.htm\r
-\r
- For information on the separate AES_WG source kit, see:\r
- ftp://ftp.info-zip.org/pub/infozip/crypt/\r
- ftp://ftp.info-zip.org/pub/infozip/crypt/README_AES_WG.txt\r
-\r
- Normally, encryption passwords are supplied by the user\r
- interactively when requested by the program. See the -P option for\r
- a (less secure) method of specifying a password on the command line.\r
-\r
- With Traditional encryption, when decrypting, a password will be\r
- checked against header data, and used if it appears to be correct.\r
- The correct password will always check out against the header data,\r
- but there is a 1-in-256 chance that an incorrect password will as\r
- well. (This is a security feature of the PKWARE archive format; it\r
- helps prevent brute-force attacks that might otherwise gain a large\r
- speed advantage by testing only the header.) In the case that an\r
- incorrect password is given but it passes the header test anyway,\r
- either an incorrect CRC will be generated for the extracted data or\r
- else UnZip will fail during the extraction because the "decrypted"\r
- bytes do not constitute a valid compressed data stream.\r
-\r
- If the first password fails the header check on some file, UnZip\r
- will prompt for another password, and so on until all files are\r
- extracted. If a password is not known, entering a null password\r
- (that is, just a carriage return or "Enter") is taken as a signal to\r
- skip all further prompting. Only unencrypted files in the\r
- archive(s) will thereafter be extracted. (The situation is actually\r
- a little more complicated. Some old versions of Zip and ZipCloak\r
- allowed null passwords, so UnZip checks each encrypted file to see\r
- if the null password works. This may result in "false positives"\r
- and extraction errors, as noted above.)\r
-\r
- Archives encrypted with 8-bit-character passwords (for example,\r
- passwords with accented European characters) may not be portable\r
- across systems or to other archivers. This problem stems from the\r
- use of multiple encoding methods for such characters, including\r
- Latin-1 (ISO 8859-1) and OEM code page 850. DOS PKZIP 2.04g uses\r
- the OEM code page; Windows PKZIP 2.50 uses Latin-1 (and is therefore\r
- incompatible with DOS PKZIP; Info-ZIP uses the OEM code page on DOS,\r
- OS/2 and Win3.x ports but ISO coding (Latin-1 etc.) everywhere else;\r
- and Nico Mak's WinZip 6.x does not allow 8-bit-character passwords\r
- at all. UnZip 5.3 (or newer) attempts to use the default character\r
- set first (e.g., Latin-1), followed by the alternate one (e.g., OEM\r
- code page) to test passwords. On EBCDIC systems, if both of these\r
- fail, EBCDIC encoding will be tested as a last resort. (EBCDIC is\r
- not tested on non-EBCDIC systems, because there are no known\r
- archivers that encrypt using EBCDIC encoding.) ISO character\r
- encodings other than Latin-1 are not supported. The new addition of\r
- (partial) Unicode (UTF-8) support in UnZip 6.0 has not yet been\r
- adapted to the encryption password handling in UnZip. On systems\r
- that use UTF-8 as native character encoding, UnZip simply tries\r
- decryption with the native UTF-8 encoded password; the built-in\r
- attempts to check the password in translated encoding have not yet\r
- been adapted for UTF-8 support and will consequently fail.\r
-2 Examples\r
- To use UnZip to extract all members of the archive letters.zip into\r
- the current directory and subdirectories below it, creating any\r
- subdirectories as necessary:\r
-\r
- unzip letters\r
-\r
- To extract all members of letters.zip into the current directory\r
- only:\r
-\r
- unzip -j letters\r
-\r
- To test letters.zip, printing only a summary message indicating\r
- whether the archive is OK or not:\r
-\r
- unzip -t -q letters\r
-\r
- To test all ".zip" archives in the current directory, printing only\r
- the summaries:\r
-\r
- unzip -t -q *.zip\r
-\r
- (On a Unix system, the wildcard archive name would typically need to\r
- be quoted to keep a a Unix shell from expanding ("globbing") it.\r
- This is not necessary on VMS.)\r
-\r
- The following command extracts to standard output all members of\r
- letters.zip whose names end in ".tex", auto-converting to the local\r
- end-of-line convention, in Stream_LF record format, and piping the\r
- output into TYPE /PAGE:\r
-\r
- pipe unzip -c -a -S letters *.tex | type /page sys$input\r
-\r
- To extract from source.zip all Fortran and C source files (*.f, *.c,\r
- *.h) and Makefile into the SYS$SCRATCH directory:\r
-\r
- unzip source.zip *.[fch] Makefile -d sys$scratch\r
-\r
- To extract all FORTRAN and C source files, regardless of case (for\r
- example, both *.c and *.C, and any makefile, Makefile, MAKEFILE or\r
- similar):\r
-\r
- unzip -C source.zip *.[fch] makefile -d sys$scratch\r
-\r
- The following command extracts only newer versions of the files\r
- already in the current directory, without querying. (Note: Be\r
- careful of extracting in one timezone an archive created in another.\r
- ZIP archives created by Zip versions before 2.1 contain no timezone\r
- information, and a "newer" file from an eastern timezone may, in\r
- fact, be older):\r
-\r
- unzip -f -o sources\r
-\r
- To extract newer versions of the files already in the current\r
- directory and to create any files not already there (same caveat as\r
- previous example):\r
-\r
- unzip -u -o sources\r
-\r
- To display a configuration report showing the program version, the\r
- OS and compiler used to build it, a list of optional features\r
- enabled at build time, and the values of all the relevant\r
- environment variables:\r
-\r
- unzip -v\r
-\r
- In the last five examples, assume that UNZIP_OPTS is set to -q. To\r
- do a (singly) quiet listing:\r
-\r
- unzip -l file.zip\r
-\r
- To do a doubly quiet listing:\r
-\r
- unzip -l -q file.zip\r
-\r
- (Note that the ".zip" is generally not necessary.) To do a standard\r
- listing:\r
-\r
- unzip -l -q- file.zip\r
-\r
- or:\r
-\r
- unzip -lq- file.zip\r
-\r
- or:\r
-\r
- unzip -q-l file.zip\r
-\r
-2 Exit_Status\r
- UnZip's exit status approximates the exit codes defined by PKWARE.\r
- On VMS, UnZip's UNIX-style exit values are translated into VMS-style\r
- status codes with facility code 1954 = %x7A2, and with the\r
- inhibit-message (%x10000000) and facility-specific (%x00008000) bits\r
- set:\r
-\r
- %x17A28001 normal exit\r
- %x17A28000 + 16*UnZip_error_code warnings\r
- %x17A28002 + 16*UnZip_error_code normal errors\r
- %x17A28004 + 16*UnZip_error_code fatal errors\r
-\r
- Note that multiplying the UNIX-style UnZip error code by 16 places\r
- it conveniently in the hexadecimal representation of the VMS exit\r
- code, "__" in %x17A28__s, where "s" is the severity code. For\r
- example, a missing archive might cause UnZip error code 9, which\r
- would be transformed into the VMS exit status %X17A28092.\r
-\r
- The UnZip VMS exit codes include severity values which approximate\r
- those defined by PKWARE, as shown in the following table:\r
-\r
- VMS UnZip\r
- severity err code Error description\r
- ----------+----------+----------------------------------------------\r
- Success 0 Normal. No errors or warnings detected.\r
- Warning 1 One or more warnings were encountered, but\r
- processing completed successfully. This\r
- includes archives where one or more (but not\r
- all) files were skipped because of an\r
- unsupported compression or encryption method,\r
- or a bad encryption password.\r
- Error 2 Error in the archive format. Processing may\r
- or may not have completed successfully.\r
- Fatal 3 Severe error in the archive format.\r
- Processing probably failed immediately.\r
- Fatal 4 Memory allocation failed in program\r
- initialization.\r
- Fatal 5 Memory allocation or terminal I/O failed in\r
- password processing.\r
- Fatal 6 Memory allocation failed while decompressing\r
- to disk.\r
- Fatal 7 Memory allocation failed while decompressing\r
- in memory.\r
- Fatal 8 Memory allocation failed. (Currently not\r
- used.)\r
- Error 9 Specified archive files were not found.\r
- Error 10 Invalid command-line options or parameters.\r
- Error 11 No matching files were found.\r
- Fatal 50 Disk (file system) filled during extraction.\r
- Fatal 51 Unexpected end-of-file while reading the\r
- archive.\r
- Error 80 User interrupt (Ctrl/C).\r
- Error 81 No files were processed, because of\r
- unsupported compression or encryption\r
- methods.\r
- Error 82 No files were processed, because of bad\r
- encryption password(s).\r
- Fatal 83 Large-file archive could not be processed by\r
- this small-file program.\r
-2 Bugs\r
- Multi-part archives are not yet supported, except in conjunction\r
- with Zip. (All parts must be concatenated together in order, and\r
- then "zip -F" (for Zip 2.x) or "zip -FF" (for Zip 3.x) must be\r
- performed on the concatenated archive in order to "fix" it. Also,\r
- zip 3.0 and later can combine multi-part (split) archives into a\r
- combined single-file archive using "zip -s- inarchive -O\r
- outarchive". See the zip manual page for more information.) This\r
- may be corrected in the next major release.\r
-\r
- Archives read from standard input are not yet supported, except with\r
- UnZip (and then only the first member of the archive can be\r
- extracted).\r
-\r
- Archives encrypted with 8-bit-character passwords (such as passwords\r
- with accented European characters) may not be portable across\r
- systems and/or other archivers. See also Encryption_Decryption.\r
-\r
- UnZip's -M ("--more") option tries to take into account automatic\r
- wrapping of long lines. However, the code may fail to detect the\r
- correct wrapping locations. First, TAB characters (and similar\r
- control sequences) are not taken into account, they are handled as\r
- ordinary printable characters. Second, depending on the actual\r
- system type, UnZip may not detect the true terminal/emulator\r
- geometry, but instead may rely on "commonly used" default\r
- dimensions. The correct handling of tabs would require the\r
- implementation of a query for the actual tab setup on the output\r
- terminal/emulator.\r
-\r
- [Unix] Unix special files such as FIFO buffers (named pipes), block\r
- devices and character devices are not restored even if they are\r
- somehow represented in the archive, nor are hard-linked files\r
- relinked. Basically, the only file types restored by UnZip are\r
- regular files, directories, and symbolic (soft) links.\r
-\r
- [OS/2] Extended attributes for existing directories are only updated\r
- if the -o ("--overwrite") option is given. This is a limitation of\r
- the operating system; because directories only have a creation time\r
- associated with them, UnZip has no way to determine whether the\r
- stored attributes are newer or older than those on disk. In\r
- practice this may mean a two-pass approach is required: first\r
- unpack the archive normally (with or without freshening/updating\r
- existing files), then overwrite just the directory entries (for\r
- example, "unzip -o foo */").\r
-\r
- Note that uppercase options (-C, -D, -L, -M, -P, -S, -T, -V, -X, -Y,\r
- and -Z) must be specified in quotes (unless SET PROC/PARSE=EXTEND is\r
- set). For example:\r
-\r
- unzip "-VX" -a zipfile\r
-\r
- When extracting to SYS$OUTPUT (-c or -p options) redirected to a\r
- file, you may want to override the default text file conversion by\r
- specifying the -b option. A single "-b" option switches to "binary\r
- piping" mode for Zip entries marked as non-text, only. To force\r
- "binary piping" mode even for Zip file entries marked as text, the\r
- "-bb" option should be used. (Please note that a later "-a" cancels\r
- any -b option, see below.)\r
-\r
- The output conversion options -b and -a may be combined to perform\r
- binary conversions on binary files and text conversion on text\r
- files. But note: For compatibility with implementation on other\r
- systems, -b cancels any -a option; to get the intended result, -a\r
- must be specified AFTER -b. And, in combination, "text" recognition\r
- takes precedence; this means that -bba (-bb -a) has the same effect\r
- as -ba (-b -a), and -aa overrides binary conversion for ALL files.\r
-\r
- The conversion option -S is only effective when used together with\r
- -a or -aa. When specified, "text" files are written in Stream_LF\r
- record format instead of the VMS default of Variable-Length record\r
- format. (When no conversion options are specified, all non-VMS\r
- entries are always written as Stream_LF files.)\r
-\r
- Please note that using the "-P<password>" option is higly insecure,\r
- the plaintext password may be seen by others. For this reason (and\r
- because of lack of space), the "-P<password>" option is not\r
- advertised on UnZip's online help screen.\r
-2 URL\r
- The Info-ZIP main Web page is:\r
- http://www.info-zip.org/\r
-\r
- FTP access is available, too:\r
- ftp://ftp.info-zip.org/pub/infozip/\r
-2 ZipInfo_mode\r
- If the first option on the UnZip command line is "-Z", then the\r
- program runs in ZipInfo mode. Remaining options are interpreted as\r
- ZipInfo options.\r
-\r
- ZipInfo reports detailed information about a ZIP archive and its\r
- members. This information may include file access permissions,\r
- compression method, encryption method, version and operating system\r
- (or file system) of the archive-creating program, and so on. The\r
- default behavior (with no options) is to show a single-line entry\r
- for each member in the archive, with a header and a trailer\r
- providing summary information for the entire archive. The format is\r
- a cross between Unix "ls -l" and "unzip -lv" output. See\r
- Detailed_Description. ZipInfo is the same program as UnZip. (On\r
- Unix, "zipinfo" may be a link to "unzip". On VMS, "zipinfo" is\r
- normally a DCL symbol defined as "''unzip' -Z".) However, ZipInfo\r
- support may have been disabled when UnZip was built.\r
-\r
- Format\r
-\r
- zipinfo [ zipinfo_options ] [ file[.zip] ] [ member ... ]\r
- unzip -Z [ zipinfo_options ] [ file[.zip] ] [ member ... ]\r
-3 Command_Parameters\r
-\r
-file[.zip]\r
-\r
- File path/name of a ZIP archive. A wildcard name may be used to\r
- specify multiple ZIP archives to be processed in one command. On\r
- VMS systems, any of the standard wildcards for a directory/file\r
- specification may be used: "...", "*", or "%" (or, since VMS V7.2,\r
- "?"). The default archive file specification is "[]*.ZIP".\r
-\r
- Note that a ".zip" or ".ZIP" file type on an archive is merely a\r
- convention, not a requirement. For example, a self-extracting ZIP\r
- archive named "fred" or "fred.exe" could be processed as if it were\r
- an ordinary archive; just specify the actual file name with its\r
- actual name ending (if any), whatever that may be.\r
-\r
-member ...\r
-\r
- An optional list of archive members to be processed, separated by\r
- spaces. Unix-like ("globbing") wildcard patterns may be used to\r
- match multiple members:\r
-\r
- * Matches a sequence of 0 or more characters.\r
- ? Matches exactly 1 character.\r
- [...] Matches any single character found inside the brackets.\r
- Ranges are specified by a beginning character, a hyphen, and\r
- an ending character. If an exclamation point ("!") or a\r
- caret ("^") follows the left bracket, then the range of\r
- characters within the brackets is complemented. That is,\r
- anything except the characters inside the brackets is\r
- considered a match. To specify a literal left bracket, use\r
- the three-character sequence "[[]".\r
-3 Options_Primary_Format\r
- Options in this group (-1, -2, -l, -m, -s, -v) specify the primary\r
- report format of ZipInfo. Only one of these primary format options\r
- may be specified.\r
-4 -1\r
--1\r
---names-only\r
-\r
- Primary Format. Show member names only, one per line. This option\r
- excludes all others, and the report does not include headers,\r
- trailers, or archive comments. This format may be useful with Unix\r
- shell (or other) scripts.\r
-4 -2\r
--2\r
---names-mostly\r
-\r
- Primary Format. Show member names only, one per line (as with\r
- "-1"), but allow headers (-h), trailers (-t), and archive comments\r
- (-z), if requested explicitly.\r
-4 -l\r
--l\r
---long-list\r
-\r
- Primary Format. Show member info in long Unix "ls -l" format. Like\r
- the -m format, except that the compressed size (in bytes) is printed\r
- instead of the compression ratio.\r
-4 -m\r
--m\r
---medium-list\r
-\r
- Primary Format. Show member info in medium-length Unix "ls -l"\r
- format. Like the -s format, except that the compression factor,\r
- expressed as a percentage, is also included.\r
-4 -s\r
--s\r
---short-list\r
-\r
- Primary Format. Show member info in short Unix "ls -l" format.\r
- This is the default behavior, unless -h or -t is specified.\r
-4 -v\r
--v\r
---verbose\r
-\r
- Primary Format. The verbose report is very detailed, and mostly\r
- self-explanatory, but it does assume some familiarity with the ZIP\r
- archive format. It also includes the archive comment, if any.\r
- Extra fields in the central directory are broken dowm into\r
- subfields, with brief descriptions of recognized subfields (or\r
- abbreviated dumps of unrecognized subfields).\r
-3 Options_Ordinary\r
- Options in this group modify the operation or report format of\r
- ZipInfo.\r
-4 -C\r
--C\r
---ignore-case ([CMS, MVS] --CMS-MVS-lower)\r
-\r
- Use case-insensitive name matching for names in the member list and\r
- the -x excluded-member list on the command line. By default,\r
- case-sensitive matching is done. For example, specifying "makefile"\r
- on the command line will match only "makefile" in the archive, not\r
- "Makefile" or "MAKEFILE". On many systems, the local file system is\r
- case-insensitive, so case-insensitive name matching would be more\r
- natural. With -C, "makefile" would match "makefile", "Makefile", or\r
- "MAKEFILE".\r
-\r
- /CASE_MATCH does not affect the search for the ZIP archive file(s).\r
-4 -h\r
--h\r
---header\r
-\r
- Include a header in the report, showing the archive name, the\r
- archive size (in bytes), and the number of members in the archive.\r
-\r
- For the Unix-format reports (options -l, -m, -s), the header is\r
- included by default, if no archive members are specified. If -h is\r
- specified alone, that is, without one of the Unix-format options,\r
- and without a member list, then only the header lines will be put\r
- out.\r
-4 -M\r
--M ([CMS,MVS] Or: -m)\r
---more\r
-\r
- Pipe all output through an internal pager similar to the Unix\r
- more(1) command. At the end of a screenful of output, Zipinfo\r
- pauses with a "--More--" prompt; the next screenful may be viewed by\r
- pressing the Enter (Return) key or the space bar. ZipInfo can be\r
- terminated by pressing the "q" key, or, on some systems, the\r
- Enter/Return key. Unlike Unix more(1), there is no\r
- forward-searching or editing capability. Also, ZipInfo doesn't\r
- notice if long lines wrap at the edge of the screen, effectively\r
- resulting in the printing of two or more lines and the likelihood\r
- that some text will scroll off the top of the screen before being\r
- viewed. If the actual number of lines on the screen can not be\r
- determined, 24 lines will be assumed.\r
-4 -T\r
--T\r
---decimal-time\r
-\r
- Show the file date-times in a sortable, all-numeric,\r
- "YYYYMMDD.hhmmss" format. The default date format is an\r
- alpha-numeric "YY-Mmm-DD hh:mm". For example ("-s", "-s -T"):\r
-\r
- -rw-a-- 3.1 fat 211916 tx defX 10-Jun-18 00:27 zip31c/zip.c\r
- -rw-a-- 3.1 fat 211916 tx defX 20100618.002703 zip31c/zip.c\r
-4 -t\r
--t\r
---totals\r
-\r
- Include a totals summary at the end of the report, showing the\r
- number of members in the report, the sum of their uncompressed\r
- sizes, the sum of their compressed sizes, and the compression factor\r
- as a percentage.\r
-\r
- For the Unix-format reports (options -l, -m, -s), the totals summary\r
- is included by default, if no archive members are specified. If -t\r
- is specified alone, that is, without one of the Unix-format options,\r
- and without a member list, then only the totals summary trailer\r
- lines will be put out.\r
-\r
- The total "bytes compressed" reported includes only the actual data,\r
- not the ZIP archive meta-data, so the size of the archive will\r
- always be greater than this value.\r
-\r
- See also -mc.\r
-4 -U\r
--U\r
---unicode\r
-\r
- [UNICODE_SUPPORT] Control UTF-8 handling. When UNICODE_SUPPORT is\r
- available, -U forces ZipInfo to escape all non-ASCII characters from\r
- UTF-8 coded filenames as "#Uxxxx" (for UCS-2 characters, or\r
- "#Lxxxxxx" for Unicode codepoints needing 3 octets). This option is\r
- mainly provided for debugging purpose when the fairly new UTF-8\r
- support is suspected of damaging extracted filenames.\r
-\r
- -UU disables the recognition of UTF-8 encoded filenames. The\r
- handling of filename codings within ZipInfo falls back to the\r
- behavior of pre-Unicode versions.\r
-4 -W\r
--W\r
---wild-no-span\r
-\r
- [WILD_STOP_AT_DIR] (Valid when the program was built with the C\r
- macro WILD_STOP_AT_DIR defined.) By default, the wildcard characters\r
- "?" (single-character wildcard) and "*" (multi-character wildcard)\r
- match any character in a member path/name. "-W" modifies the\r
- pattern-matching behavior for archive members so that both "?"\r
- (single-character wildcard) and "*" (multi-character wildcard) do\r
- not match the directory separator character "/". (The two-character\r
- sequence "**" acts as a multi-character wildcard that includes the\r
- directory separator in its matched characters.) For example, with\r
- "-W":\r
-\r
- "*.c" matches "foo.c" but not "mydir/foo.c"\r
- "**.c" matches both "foo.c" and "mydir/foo.c"\r
- "*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c"\r
- "??*/*" matches "ab/foo" and "abc/foo"\r
- but not "a/foo" or "a/b/foo"\r
-\r
- This modified behavior is equivalent to the pattern matching style\r
- used by the shells of some of UnZip's supported target OSs (one\r
- example is Acorn RISC OS). This option may not be available on\r
- systems where the Zip archive's internal directory separator\r
- character "/" is allowed as regular character in native operating\r
- system filenames. (Currently, UnZip uses the same pattern matching\r
- rules for both wildcard archive file name specifications and archive\r
- member selection patterns on most system types. For systems\r
- allowing "/" as regular filename character, the -W option would not\r
- work as expected on a wildcard file name specification.)\r
-4 -x\r
--x member ...\r
---exclude member ...\r
-\r
- An optional list of archive members to be excluded from processing.\r
- Because wildcard characters normally match "/" directory separators\r
- (for exceptions see the option -W), this option may be used to\r
- exclude any files that are in subdirectories. For example, "unzip\r
- foo *.[ch] -x */*" would extract all C source files (*.c, *.h) in\r
- the main directory, but none in any subdirectories. Without the -x\r
- option, all C source files in all directories within the archive\r
- would be extracted.\r
-\r
- When the program sees -x (--exclude) on a command line, it stops\r
- scanning for options, and treats every succeeding item as an archive\r
- member name. To avoid confusion between member names and command\r
- options, it's simplest to specify -x (--exclude) and its member list\r
- as the last items on a command line. Alternatively, the special\r
- name "@" can be used to terminate the member list (and cause the\r
- program to resume scanning for options). That is, the following two\r
- commands are equivalent:\r
-\r
- zipinfo fred.zip -2 -t -x file1 file2 file3\r
- zipinfo fred.zip -x file1 file2 file3 @ -2 -t\r
-4 -z\r
--z\r
---zipfile-comment\r
-\r
- Include the archive comments (if any) in the report.\r
-3 Detailed_Description\r
- ZipInfo has three basic report formats, providing different degrees\r
- of detail in the information about the members of an archive: a\r
- simple list of names (-1, -2), a Unix ls-style listing (-l, -m, -s),\r
- and a very detailed analysis (-v). Some of the information, such as\r
- file sizes, is easy to interpret. Some of the information involves\r
- fairly obscure details of ZIP archive structure. ZIP archive\r
- structure is documented in the PKWARE Inc. APPNOTE.TXT:\r
- http://www.pkware.com/documents/casestudies/APPNOTE.TXT\r
-\r
- The table below shows some typical -l report entries:\r
-\r
- Perm/Prot Zver Ofs UncSize At CmpSize Cmth ModDate Mtime Name\r
- ----------+----+---+-------+--+-------+----+---------------+----------\r
- -rw-a-- 3.1 fat 211916 tx 53467 defX 10-Jun-18 00:27 zip3/zip.c\r
- -rwxr-x--- 3.1 unx 709 Tx 311 aesw 11-Aug-21 22:20 endian.c\r
- RWED,RE, 3.1 vms 6656 bx 2295 defN 07-Aug-15 14:12 it/T.EXE;8\r
-\r
- Field 1 (Perm/Prot) shows the file permission/protection attributes,\r
- formatted according to the original operating system or file system\r
- where the archive was created.\r
-\r
- Field 2 (Zver) shows the (approximate) version of the Zip program\r
- which created the archive.\r
-\r
- Field 3 (Ofs) shows the original operating system where the archive\r
- was created, or the file system on which the member file was stored.\r
-\r
- Field 4 (UncSize) shows the original, uncompressed file size.\r
-\r
- Field 5 (At) shows some archive member attributes, as detailed in\r
- the tables below. The first character indicates whether a file was\r
- binary or text, and whether it was encrypted. The second character\r
- indicates the presence of a data descriptor and/or an extra field in\r
- the member data.\r
-\r
- | File Type Extra Field |\r
- First char | binary text yes no | Second char\r
- --------------+-------+----- ------+-----+--------------------\r
- Encrypted no | b t x - | no Data Descriptor\r
- yes | B T X l | yes\r
-\r
- A Data Descriptor holds CRC and size data at an alternate place in\r
- the archive (after processed member data instead of before), and is\r
- normally used when the archiving program can't seek in the output\r
- archive data/file. An Extra Field can hold a wide variety of data,\r
- including 64-bit file sizes, many kinds of OS-specific attribute\r
- data, UTC times, and so on.\r
-\r
- Field 6 (CmpSize) shows the compressed file size. With -m, this\r
- field shows the compression fraction as a percentage. With -s (the\r
- default), this field is omitted. This compressed size value (unlike\r
- the one in an "unzip -l" report) includes all the overhead resulting\r
- from Traditional encryption.\r
-\r
- Field 7 (Cmth) shows the compression method used. Note that AES_WG\r
- encryption is treated as a compression method here. Not all of the\r
- methods shown in the table below are supported. (Some are\r
- obsolete.)\r
-\r
- Num Abbr Name, description\r
- ----+----+------------------------------------------------------------\r
- 0 stor Store (no compression)\r
- 1 shrk Shrink\r
- 2 re:1 Reduce (factor 1)\r
- 3 re:2 Reduce (factor 2)\r
- 4 re:3 Reduce (factor 3)\r
- 5 re:4 Reduce (factor 4)\r
- 6 i#:# Implode (dictonary_size:Shannon-Fano_trees)\r
- 7 tokn Tokenize\r
- 8 def# Deflate (N: normal, X: maximum, F: fast, S: super-fast)\r
- 9 d64# Deflate64 (N: normal, X: maximum, F: fast, S: super-fast)\r
- 10 dcli PKWARE Data Compression Library Imploding - IBM TERSE (old)\r
- 12 bzp2 bzip2\r
- 14 lzma LZMA\r
- 18 ters IBM TERSE (new)\r
- 19 lz77 IBM LZ77 z Architecture (PFS)\r
- 96 jpeg JPEG\r
- 97 wavp WavPack\r
- 98 ppmd PPMd version I, Rev 1\r
- 99 aesw AES_WG encryption\r
-\r
- Fields 8 and 9 (ModDate, Mtime) show the file modification date-time\r
- (MS-DOS format, local time).\r
-\r
- Field 10 (Name) shows the file path/name.\r
-3 Environment_Options\r
- ZipInfo's default behavior may be modified by placing command-line\r
- options in an environment variable. This can be done with any\r
- option, but it is probably most useful options like -T (decimal time\r
- format) or one of the non-default Unix format options: -l, -m.\r
-\r
- For ZipInfo ("unzip -Z"), the environment variable name on VMS is\r
- ZIPINFO_OPTS (non-VMS: ZIPINFO). For compatibility with Zip, if\r
- ZIPINFO_OPTS is not defined, then ZipInfo will use ZIPINFOOPT the\r
- same way.\r
-\r
- For example, to make the default format the long Unix format instead\r
- of the short Unix format, one could use commands like the following:\r
-\r
- Unix Bourne (or similar) shell:\r
- ZIPINFO='-l'; export UNZIP\r
-\r
- Unix C shell:\r
- setenv ZIPINFO '-l'\r
-\r
- OS/2 or MS-DOS:\r
- set ZIPINFO="-l"\r
-\r
- VMS (with quotation to preserve lower case in DCL):\r
- define ZIPINFO_OPTS "-l" ! Logical name, or\r
- ZIPINFO_OPTS = "-l" ! DCL symbol. (Either works.)\r
-\r
- Environment options are treated the same as any other command-line\r
- options, except that they are effectively the first options on the\r
- command line. To override an environment option, one may use an\r
- explicit option to cancel or override it. For example, to disable\r
- the totals trailer line by default, one could use commands like the\r
- following:\r
-\r
- Unix Bourne (or similar) shell:\r
- ZIPINFO='-t-'; export ZIPINFO\r
-\r
- Unix C shell:\r
- setenv ZIPINFO '-t-'\r
-\r
- VMS (with quotation to preserve lower case in DCL):\r
- define ZIPINFO_OPTS "-t-" ! Logical name, or\r
- ZIPINFO_OPTS = "-t-" ! DCL symbol. (Either works.)\r
-\r
- The examples show short (one-character) options, but long ("--")\r
- options are also allowed.\r
-3 Examples\r
- To get a basic, short-format listing of the complete contents of a\r
- ZIP archive zip31c.zip, with both header and totals lines, use only\r
- the archive name as an argument to zipinfo:\r
-\r
- zipinfo zip31c.zip\r
- zipinfo zip31c\r
-\r
- To produce a basic, long-format listing (not verbose), including\r
- header and totals lines, use -l:\r
-\r
- zipinfo -l zip31c.zip\r
-\r
- To list the complete contents of the archive without header and\r
- totals lines, either negate the -h and -t options or else specify\r
- the contents explicitly:\r
-\r
- zipinfo -h- -t- zip31c.zip\r
- zipinfo zip31c.zip *\r
-\r
- (On a Unix system, the wildcard member name would typically need to\r
- be quoted to keep a a Unix shell from expanding ("globbing") it.\r
- This is not necessary on VMS.)\r
-\r
- To list information on a single archive member, in medium format,\r
- specify the member name explicitly:\r
-\r
- zipinfo -m unzip60.zip */unshrink.c\r
-\r
- When any member name is specified, the header and totals trailer\r
- are, by default, not included in the report, but explicitly\r
- specifying -h and/or -t will restore them. For example:\r
-\r
- zipinfo -m -t unzip610b.zip *.[ch] */Make*\r
-\r
- On a Unix system, one could use the -T option along with an external\r
- sorting program (and another filter like "head" or "tail") to get a\r
- listing of the least or most recently modified files in the archive:\r
-\r
- zipinfo -l -T -h- -t- zip31c.zip | sort -k 8 | head -12\r
- zipinfo -l -T -h- -t- zip31c.zip | sort -r -k 8 | head -12\r
-\r
- The "sort" option "-k 8" tells it to sort on field 8, which is the\r
- date-time field in a long- or medium-format (-l, -m) ZipInfo report.\r
- (Use "-k 7" for the short (-s) format.) The -r option reverses the\r
- default smallest-to-largest sort order.\r
-3 Bugs\r
- As with UnZip, ZipInfo's -M ("--more") option is overly simplistic\r
- in its handling of screen output. As noted above, it fails to\r
- detect the wrapping of long lines and may thereby cause lines at the\r
- top of the screen to be scrolled off before being read. ZipInfo\r
- should detect and treat each occurrence of line-wrap as one\r
- additional line printed. This requires knowledge of the screen's\r
- width as well as its height. In addition, ZipInfo should detect the\r
- true screen geometry on all systems.\r
-\r
- The interactions among the various listing format, header, and\r
- trailer options (-h, -l, -m, -s, -t) are unnecessarily complex and\r
- should be simplified, despite the potential disruption to current\r
- users.\r
-3 URL\r
- The Info-ZIP main Web page is:\r
- http://www.info-zip.org/\r
-\r
- FTP access is available, too:\r
- ftp://ftp.info-zip.org/pub/infozip/\r
+++ /dev/null
-1 UNZIP\r
- UnZip lists, tests, or extracts files from a ZIP archive (an\r
- archive format commonly used on many different systems). The\r
- default behavior (with no options) is to extract into the current\r
- directory (and subdirectories below it) all files from the\r
- specified ZIP archive. A companion program, Zip, creates ZIP\r
- archives.\r
-\r
- Info-ZIP UnZip and Zip were intended to be compatible with archives\r
- created by PKWARE's PKZIP and PKUNZIP programs (originally for\r
- MS-DOS), but in many cases the program options or default behaviors\r
- differ. Nowadays, many other programs are available which work\r
- with ZIP archives.\r
-\r
- This help file describes the VMS CLI edition of UnZip. A\r
- Unix-style command-line edition is also available, with a separate\r
- help file.\r
-\r
- The VMS CLI edition of UnZip adds a command-line translator to the\r
- normal UnZip program. This translator transforms a set of\r
- VMS-style qualifiers and parameters into an equivalent set of\r
- Unix-style options and parameters, and then passes those\r
- transformed arguments to UnZip's standard Unix-style command-line\r
- processor. The documentation often shows the related Unix-style\r
- options in parentheses after a VMS-style qualifier. For example:\r
- /HELP (-h, -hh).\r
-\r
- Format:\r
-\r
- UNZIP [/unzip_qualifiers] [file[.zip]] [member [,...]]\r
-\r
- UNZIP /ZIPINFO [/zipinfo_qualifiers] [file[.zip]] [member [,...]]\r
-\r
- ZIPINFO [/zipinfo_qualifiers] [file[.zip]] [member [,...]]\r
-\r
- To display the basic built-in help, use the command:\r
-\r
- UNZIP /HELP\r
-\r
- To display the extended built-in help, use the command:\r
-\r
- UNZIP /HELP=EXTENDED\r
-\r
- The built-in help may be more current than this help file,\r
- especially between full product releases.\r
-\r
- The VMS CLI edition of the program can also provide built-in help\r
- on the Unix-style command-line edition; just use the "-h" or "-hh"\r
- options.\r
-2 Command_Parameters\r
- file[.zip]\r
-\r
- File path/name of a ZIP archive. A wildcard name may be used to\r
- specify multiple ZIP archives to be processed in one command.\r
- On VMS systems, any of the standard wildcards for a\r
- directory/file specification may be used: "...", "*", or "%"\r
- (or, since VMS V7.2, "?"). The default archive file\r
- specification is ".ZIP".\r
-\r
- Note that a ".zip" or ".ZIP" file type on an archive is merely a\r
- convention, not a requirement. For example, a self-extracting\r
- ZIP archive named "fred" or "fred.exe" could be processed as if\r
- it were an ordinary archive; just specify the actual file name\r
- with its actual name ending (if any), whatever that may be.\r
-\r
- member [,...]\r
-\r
- An optional list of archive members to be processed, separated\r
- by commas. If no member list is specified, then all archive\r
- members are processed. Unix-like ("globbing") wildcard patterns\r
- may be used to match multiple members:\r
-\r
- * Matches a sequence of 0 or more characters.\r
- ? Matches exactly 1 character.\r
- [...] Matches any single character found inside the brackets.\r
- Ranges are specified by a beginning character, a hyphen,\r
- and an ending character. If an exclamation point ("!")\r
- or a caret ("^") follows the left bracket, then the\r
- range of characters within the brackets is complemented.\r
- That is, anything except the characters inside the\r
- brackets is considered a match. To specify a literal\r
- left bracket, use the three-character sequence "[[]".\r
-2 Qualifiers_Primary_mode\r
- Qualifiers in this group specify the primary mode of operation of\r
- UnZip. Only one of these primary mode qualifiers may be specified.\r
-3 /COMMENT (-z)\r
- Primary mode. Display only the archive comment.\r
-3 /FRESHEN (-f)\r
- Primary Mode. Freshen existing files. That is, extract only those\r
- files that already exist on disk and that are newer than the disk\r
- copies. By default UnZip queries before overwriting, but the\r
- /EXISTING (-o) option may be used to suppress the queries.\r
-3 /HELP (-h, -hh)\r
- /HELP [=NORMAL]\r
- /HELP=EXTENDED\r
-\r
- Primary Mode. Display brief (roughly 24 lines) usage instructions\r
- (NORMAL, the default), or EXTENDED help (more complete usage\r
- instructions).\r
-3 /LICENSE (--license)\r
- Primary Mode. Display the Info-ZIP license.\r
-3 /LIST (-l)\r
- Primary Mode. List archive members. By default, a brief format is\r
- used, which includes the following items: member name,\r
- uncompressed file size ("Length"), and modification date-time of\r
- the member. A summary is included at the end of the report,\r
- showing total size and count for all the members in the report.\r
- Specifying a member list limits the report to those members.\r
-\r
- Adding /VERBOSE to an "UNZIP /LIST" command line adds the following\r
- items to the report: compression method, compressed size ("Size"),\r
- compression ratio, and 32-bit CRC.\r
-\r
- In contrast to some other programs, UnZip does not include the\r
- 12-byte encryption header in the compressed size values for a\r
- Traditionally encrypted member. Therefore, compressed size and\r
- compression ratio figures are independent of the member's\r
- encryption status and show the correct compression performance.\r
- (The complete size of the encrypted compressed data stream for\r
- archive members is reported by the more verbose ZipInfo reports.\r
- See ZipInfo.\r
-\r
- If UnZip was built with OS2_EAS enabled, then the /LIST report also\r
- includes the sizes of stored OS/2 extended attributes (EAs) and\r
- OS/2 access control lists (ACLs). In addition, the archive comment\r
- and individual member comments (if any) are displayed.\r
-\r
- If a file was archived from a single-case file system (for example,\r
- the old MS-DOS FAT file system) and the /NAMES=DOWNCASE option was\r
- given, the filename is converted to lowercase and is shown prefixed\r
- with a caret (^).\r
-\r
- Note: If only /VERBOSE is specified with an archive name, then\r
- UnZip acts as if "/LIST /VERBOSE" were specified, and a detailed\r
- listing is generated.\r
-3 /PIPE (-p)\r
- Primary Mode. Extract files to stdout (pipe). Only the actual\r
- file data for the members are sent to stdout (no file names, or\r
- other information, as would be displayed with /SCREEN (-c), and the\r
- files are always extracted in binary format, just as they are\r
- stored (no conversions). See also /SCREEN.\r
-3 /SCREEN (-c)\r
- Primary Mode. Extract files to stdout/screen. This option is\r
- similar to the /PIPE (-p) option except that the name of each file\r
- is displayed as it is extracted, and the /TEXT (-a) option is\r
- allowed, which can provide automatic ASCII-EBCDIC conversion, where\r
- appropriate. See also /PIPE.\r
-3 /TEST (-t)\r
- Primary Mode. Test archive members. Testing means that each\r
- archive member is extracted in memory (expanding and decrypting, as\r
- needed), but not written to a file. The resulting CRC (cyclic\r
- redundancy check, an enhanced checksum) of the extracted data is\r
- then compared with the original file's stored CRC value, and an\r
- error message is emitted if a CRC mismatch is detected.\r
-\r
- Adding /VERBOSE (-v) to /TEST adds some diagnostic information to\r
- the report for archive members with LZMA or PPMd compression.\r
-3 /TIMESTAMP (-T)\r
- Primary Mode. Set the timestamp on the archive(s) to that of the\r
- newest file in each one. This corresponds to Zip's /APPEND /LATEST\r
- (-go) option, except that it can be used on wildcard archives (for\r
- example, "unzip -T *.zip"), and is much faster.\r
-3 /UPDATE (-u)\r
- Primary mode. Update existing files and create new ones if needed.\r
- This mode performs the same function as the Freshen (/FRESHEN, -f)\r
- mode, extracting (with query) files that are newer than those with\r
- the same name on disk, but it also extracts those files that do not\r
- already exist on disk.\r
-3 /VERBOSE (-v)\r
-\r
- Primary mode (when alone) or option. When used as a primary mode\r
- (alone), and no archive is specified, an "UNZIP /VERBOSE" command\r
- generates a report showing the program version, build options, and\r
- relevant envrironment variables.\r
-\r
- When used with some other primary mode option, /VERBOSE can make\r
- output more verbose (detailed).\r
-\r
- If no other primary mode is specified, and an archive is specified,\r
- then UnZip acts as if "/LIST /VERBOSE" were specified, and a\r
- detailed listing is generated. See Qualifiers_Primary_mode,\r
- particularly /LIST.\r
-2 Qualifiers_Ordinary\r
- Qualifiers in this group modify the operation of UnZip.\r
-3 /AUTO_DIRECTORY (-da)\r
- /NOAUTO_DIRECTORY (default)\r
- /AUTO_DIRECTORY[=REUSE]\r
-\r
- Specifies a destination directory for extracted files which is\r
- derived from the base name of the archive. By default, files are\r
- extracted (and subdirectories created) in the current default\r
- directory. With /AUTO_DIRECTORY, UnZip automatically derives a\r
- subdirectory name from the archive name, creates that subdirectory,\r
- and extracts files into that subdirectory.\r
-\r
- For example, with /AUTO_DIRECTORY, extraction of "fred.zip" is done\r
- into subdirectory "[.fred]" instead of into the current directory.\r
- (On non-VMS systems, subdirectory "fred".)\r
-\r
- Using this option can help to avoid cluttering the current\r
- directory with files extracted from an archive whose structure does\r
- not include a top-level directory.\r
-\r
- If -da is specified as a default option in an environment variable,\r
- it can be overridden by either a /NOAUTO_DIRECTORY qualifier or an\r
- explicit /DIRECTORY=dest_dir qualifier. See also /DIRECTORY.\r
-3 /BINARY (-b, -bb)\r
- /BINARY[=keyword]\r
- /NOBINARY (Default.)\r
-\r
- Selects the file record format used when extracting binary files.\r
-\r
- The optional keywords are:\r
-\r
- ALL Extract all files with fixed-length, 512-byte record\r
- format. (-bb)\r
- AUTO Extract binary files with fixed-length, 512-byte\r
- record format. (Default value keyword: "/BINARY" is\r
- equivalent to "/BINARY=AUTO".) (-b)\r
- NONE Same as /NOBINARY. Extract binary files with\r
- Stream_LF record format. (Default condition.)\r
-\r
- Zip (or a similar archiving program) identifies files as "binary"\r
- or "text" when they are archived. (A short-format ZipInfo report\r
- denotes a binary file with a "b", and a text file with a "t".)\r
-\r
- [VMS] On VMS, for archives with VMS attribute information (made\r
- with "zip -V", "ZIP /VMS"), files are always created with their\r
- original record formats. For archives without VMS attribute\r
- information (not made with "zip -V", "ZIP /VMS"), files are\r
- normally created with Stream_LF record format. With\r
- /BINARY[=AUTO], binary files are created with fixed-length,\r
- 512-byte record format. With /BINARY=ALL, all files are created\r
- with fixed-length, 512-byte record format. When extracting to\r
- standard output (/PIPE or /SCREEN in effect), the default\r
- conversion of text record delimiters is disabled for binary files\r
- (with /BINARY[=AUTO]), or for all files (with /BINARY=ALL).\r
-\r
- /BINARY may conflict or interact with /TEXT. A combination of\r
- /BINARY[=AUTO] and /TEXT[=AUTO] is allowed. (See /TEXT.)\r
-3 /BRIEF\r
- Deprecated. Ignored. A no-op place-holder, originally intended as\r
- an opposite of /FULL (also deprecated). See\r
- Qualifiers_Primary_mode, particularly /LIST and /VERBOSE.\r
-3 /CASE_INSENSITIVE (-C)\r
- /CASE_INSENSITIVE\r
- /NOCASE_INSENSITIVE (default)\r
-\r
- Deprecated. Use /MATCH=CASE.\r
-\r
- With /CASE_INSENSITIVE, match member names case-blindly.\r
-3 /DIRECTORY (-d)\r
- /DIRECTORY=dest_dir\r
-\r
- Specifies a destination directory for extracted files. By default,\r
- files are extracted (and subdirectories created) in the current\r
- default directory. With "/DIRECTORY=dest_dir", extraction is done\r
- into the specified directory, instead.\r
-\r
- [VMS] On VMS, only a VMS-style device:[directory] specification is\r
- permitted.\r
-3 /DOT_VERSION (-Y)\r
- [VMS] Treat archive member name endings of ".nnn" (where "nnn" is a\r
- decimal number) as if they were VMS version numbers (";nnn"). (The\r
- default is to treat them as file types.) For example:\r
-\r
- "a.b.3" -> "a.b;3"\r
-3 /EXCLUDE (-x)\r
- /EXCLUDE=(member [,...])\r
-\r
- An optional list of archive members to be excluded from processing.\r
- Because wildcard characters normally match "/" directory separators\r
- (for exceptions see /MATCH=[NO]WILD_MATCH_SLASH (-W)), this option\r
- may be used to exclude any files that are in subdirectories. For\r
- example,\r
- UNZIP foo *.[ch] /EXCLUDE = */*\r
- would extract all C source files (*.c, *.h) in the main directory,\r
- but none in any subdirectories. Without the /EXCLUDE option, all C\r
- source files in all directories within the archive would be\r
- extracted.\r
-\r
- Note that archive members are specified using the Unix-style names\r
- which are used in ZIP archives, not VMS-style names.\r
-3 /EXISTING (-n, -o)\r
- /EXISTING[=keyword]\r
-\r
- Specifies the action when extracting files, and a file already\r
- exists.\r
-\r
- The optional keywords are:\r
-\r
- NEW_VERSION Create a new version of an existing file. (-o)\r
- OVERWRITE Overwrite an existing file. (-oo)\r
- NOEXTRACT Do not extract. Leave an existing file intact. (-n)\r
-\r
- By default, UnZip queries the user before extracting any file that\r
- already exists.\r
-\r
- [Non-VMS] On non-VMS systems, the user may choose to overwrite only\r
- the current file, overwrite all files, skip extraction of the\r
- current file, skip extraction of all existing files, or rename the\r
- current file (choose a new name for the extracted file).\r
-\r
- [VMS] On VMS, the usual query choices are to create a new version\r
- of an existing file, to skip extraction, or to rename the current\r
- file. In the case where an archive member name includes a version\r
- number, and /VERSION (-V, "retain VMS file version numbers") is in\r
- effect, then an additional query choice is offered: to overwrite\r
- the existing file.\r
-3 /FULL (-v)\r
- /FULL\r
- /FULL=DIAGNOSTICS\r
-\r
- Deprecated. Adds detail to a /LIST report. See\r
- Qualifiers_Primary_mode, particularly /LIST and /VERBOSE, and\r
- Qualifiers_Ordinary, particularly /VERBOSE.\r
-3 /JAR (--jar)\r
- Treat archive(s) as Java JAR. Over-simplification in Java JAR\r
- archives can cause UnZip to transform UTF-8 file names according to\r
- inappropriate (MS-DOS) rules, yielding corrupt names on extracted\r
- files (typically those with ASCII codes 128-255). Archives\r
- containing a Java "CAFE" extra field should be detected\r
- automatically, and handled correctly, but not all JAR archives\r
- include that extra field. Specifying /JAR tells UnZip to expect\r
- UTF-8 file names, regardless of whether the archive contains a\r
- "CAFE" extra field.\r
-3 /JUNK_DIRS (-j)\r
- /NOJUNK_DIRS (Default.)\r
- /JUNK_DIRS[=depth]\r
-\r
- Junk directories on extracted files. With /JUNK_DIRS, all\r
- directory information is stripped from an archive member name, so\r
- all files are extracted into the destination directory. (See also\r
- /DIRECTORY.)\r
-\r
- If a depth ("=depth", where "depth" is a positive integer) is\r
- specified, then that number of directory levels will be stripped\r
- from an archive member name. For example, an archive member like\r
- "a/b/c/d/ee.txt" would normally be extracted as "[.a.b.c.d]ee.txt".\r
- With /JUNK_DIRS, it would be extracted as "ee.txt". With\r
- /JUNK_DIRS=2, the first two directory levels would be stripped, so\r
- it would be extracted as "[.c.d]ee.txt".\r
-3 /LOWERCASE (-L)\r
- /[NO]LOWERCASE\r
-\r
- Deprecated. Use /NAMES=[NO]DOWNCASE.\r
-\r
- /LOWERCASE: Convert to lowercase any filename originating on an\r
- uppercase-only operating system or file system.\r
-\r
- /NOLOWERCASE: Do not convert to lowercase any filename originating\r
- on an uppercase-only operating system or file system.\r
-\r
- See also /UPPERCASE, which is also deprecated.\r
-3 /MATCH (-C, -W)\r
- /MATCH=(keyword, ...)\r
-\r
- Specifies name-matching behavior for names in the member list and\r
- the /EXCLUDE excluded-member list on the command line.\r
-\r
- The optional keywords and values are:\r
-\r
- CASE=BLIND Name matching is case-insensitive. (-C)\r
- CASE=SENSITIVE Name matching is case-sensitive. (Default.)\r
-\r
- By default, case-sensitive matching is done. For example,\r
- specifying "makefile" on the command line will match only\r
- "makefile" in the archive, not "Makefile" or "MAKEFILE". On many\r
- systems, the local file system is case-insensitive, so\r
- case-insensitive name matching would be more natural. With\r
- /MATCH=CASE=BLIND, "makefile" would match "makefile", "Makefile",\r
- or "MAKEFILE".\r
-\r
- /MATCH does not affect the search for the ZIP archive file(s), nor\r
- the matching of archive members to existing files on the extraction\r
- path. So, on a case-sensitive file system, UnZip will never try to\r
- overwrite a file "FOO" when extracting a member named "foo"!\r
-\r
- [WILD_STOP_AT_DIR] If the C macro WILD_STOP_AT_DIR is defined at\r
- build time, then an additional keyword is allowed:\r
-\r
- NOWILD_MATCH_SLASH Wildcards stop at directory slash. (-W)\r
- WILD_MATCH_SLASH Wildcards match directory slash. (Default.)\r
-\r
- By default, the wildcard characters "?" (single-character wildcard)\r
- and "*" (multi-character wildcard) match any character in a member\r
- path/name. /MATCH=NOWILD_MATCH_SLASH (-W) modifies the\r
- pattern-matching behavior for archive members so that both "?"\r
- (single-character wildcard) and "*" (multi-character wildcard) do\r
- not match the directory separator character "/". (The\r
- two-character sequence "**" acts as a multi-character wildcard that\r
- includes the directory separator in its matched characters.) For\r
- example, with /MATCH=NOWILD_MATCH_SLASH:\r
-\r
- "*.c" matches "foo.c" but not "mydir/foo.c"\r
- "**.c" matches both "foo.c" and "mydir/foo.c"\r
- "*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c"\r
- "??*/*" matches "ab/foo" and "abc/foo"\r
- but not "a/foo" or "a/b/foo"\r
-\r
- This modified behavior is equivalent to the pattern matching style\r
- used by the shells of some of \fIUnZip\fP's supported target OSs\r
- (one example is Acorn RISC OS). This option may not be available\r
- on systems where the Zip archive's internal directory separator\r
- character "/" is allowed as regular character in native operating\r
- system filenames.\r
-\r
- [non-VMS] (Currently, UnZip uses the same pattern matching rules\r
- for both wildcard archive file name specifications and archive\r
- member selection patterns on most system types. For systems\r
- allowing "/" as regular filename character, the -W option would not\r
- work as expected on a wildcard file name specification.)\r
-3 /NAMES (-0 -2, -L, -s)\r
- /NAMES\r
- /NAMES=(keyword, ...)\r
-\r
- Selects name transformations during extraction. The keywords are:\r
-\r
- [NO]CHAR_SET CHAR_SET: Use CP850 character-set mapping on names\r
- of archive members which originated on a FAT or\r
- NTFS file system. (Default condition.)\r
- NOCHAR_SET: Do not map these archive member names.\r
- DOWNCASE Convert filenames from all-uppercase operating\r
- systems to lowercase. (-L)\r
- DOWNCASE=ALL Convert all filenames to lowercase. (-LL)\r
- ODS2 Restrict names to ODS2 conventions, regardless\r
- of the destination file system. (Invalid\r
- character -> "_".) (-2)\r
- [NO]SPACES SPACES: Permit space characters in (ODS5) names.\r
- (Default condition.)\r
- NOSPACES: Change spaces to underscores. (-s)\r
-\r
- The default is to use ODS5-compatible file names (including spaces)\r
- when the destination file system is ODS5, and to convert the names\r
- to ODS2-compatible names when the destination file system is ODS2.\r
-3 /OVERWRITE (-n, -o)\r
- /[NO]OVERWRITE\r
-\r
- Deprecated. Use /EXISTING.\r
-\r
- /OVERWRITE is equivalent to /EXISTING=NEW_VERSION.\r
- /NOOVERWRITE is equivalent to /EXISTING=NOEXTRACT.\r
-3 /PAGE (-M)\r
- Pipe all output through an internal pager similar to the Unix\r
- more(1) command. At the end of a screenful of output, UnZip pauses\r
- with a "--More--" prompt; the next screenful may be viewed by\r
- pressing the Enter (Return) key or the space bar. UnZip can be\r
- terminated by pressing the "Q" key and, on some systems, the\r
- Enter/Return key. Unlike Unix more(1), there is no\r
- forward-searching or editing capability. Also, UnZip doesn't\r
- notice if long lines wrap at the edge of the screen, effectively\r
- resulting in the printing of two or more lines and the likelihood\r
- that some text will scroll off the top of the screen before being\r
- viewed. If the actual number of lines on the screen can not be\r
- determined, 24 lines will be assumed.\r
-3 /PASSWORD (-P)\r
- /PASSWORD=password\r
-\r
- Use "password" to decrypt encrypted archive members (if any). THIS\r
- IS INSECURE! Many multi-user operating systems provide ways for\r
- any user to see the current command line of any other user. Even\r
- on stand-alone systems, there is always the threat of\r
- over-the-shoulder peeking. Storing the plaintext password as part\r
- of a command line in an automated script can be even less secure,\r
- Whenever possible, use the non-echoing, interactive prompt to enter\r
- passwords. Where security is truly important, use a strong\r
- encryption method, such as AES, instead of the relatively weak\r
- encryption provided by Traditional ZIP encryption. Or, use an\r
- external encryption program, such as GnuPG, before archiving the\r
- file. (Note that Zip will probably not be able to do significant\r
- compression on a file which has already been encrypted.)\r
-3 /QUIET (-q, -qq)\r
- /QUIET[=SUPER]\r
-\r
- Perform operations quietly. (/QUIET=SUPER: even more quietly).\r
-\r
- By default, UnZip prints the names of the files it's extracting or\r
- testing, the extraction methods, any member or archive comments\r
- that may be stored in the archive, and possibly a summary when\r
- finished with each archive. The /QUIET[=SUPER] options suppress\r
- the printing of some or all of these messages.\r
-3 /RESTORE (-D, -k, -ka, -X)\r
- /RESTORE[=(keyword, ...)]\r
-\r
- Selects restoration options for some meta-data. The optional\r
- keywords are:\r
-\r
- ACL Restore file ACL settings. (-ka)\r
- OWNER Restore file owner/UIC settings. (-X)\r
- PROTECTION = LIMITED Restore file UIC-based (SOGW) protection\r
- settings, respecting the current default\r
- protection. (Default.)\r
- PROTECTION = ORIGINAL Restore file UIC-based (SOGW) protection\r
- settings, ignoring the current default\r
- protection. (-k)\r
- NOPROTECTION Do not restore file UIC-based (SOGW) protection settings.\r
- The current default protection is used. (-k-)\r
- NODATE Do not restore any timestamps.\r
- DATE=ALL Restore timestamps for all extracted entries,\r
- files and directories.\r
- DATE=FILES Restore timestamps for extracted files. (Default.)\r
-\r
- By default, on VMS, UnZip restores the original date-time\r
- attributes for files, but not for directories. This agrees with\r
- the behavior of VMS BACKUP (and UnZip versions before 5.52 where\r
- the capability to restore directory timestamps was added).\r
-\r
- For compatibility with UnZip versions before 6.0 (5.53), the\r
- following deprecated short forms are still accepted:\r
-\r
- Deprecated form: Modern form:\r
- /RESTORE /RESTORE=PROTECTION\r
- /NORESTORE /RESTORE=NOPROTECTION\r
-3 /TEXT (-a, -aa, -S)\r
-\r
- /TEXT[=(keyword, ...)]\r
- /NOTEXT (Default.)\r
-\r
- The optional keywords are:\r
-\r
- ALL Extract all files with variable-length record format.\r
- Adjust line endings to local standard, and convert\r
- EBCDIC to ASCII, as needed. (-aa)\r
- AUTO Extract text files with variable-length record format.\r
- Adjust line endings to local standard, and convert\r
- EBCDIC to ASCII, as needed. (Default value keyword:\r
- "/TEXT" is equivalent to "/TEXT=AUTO".) (-a)\r
- NONE Same as /NOTEXT. Extract text files with Stream_LF\r
- record format without conversions. (Default\r
- condition.)\r
- STMLF Use Stream_LF record format for text files (instead of\r
- variable-length record format) when ALL or AUTO is in\r
- effect. Adjust line endings to local standard, and\r
- convert EBCDIC to ASCII, as needed. (-S)\r
-\r
- Selects the file record format, character encoding, and line-ending\r
- type used when extracting text files.\r
-\r
- Zip (or a similar archiving program) identifies files as "binary"\r
- or "text" when they are archived. (A short-format ZipInfo report\r
- denotes a binary file with a "b", and a text file with a "t".)\r
- Zip's identification of text files may not be perfect, so UnZip\r
- prints "[binary]" or "[text]" as a visual check for each file it\r
- extracts with /TEXT. /TEXT=ALL forces all files to be extracted\r
- (and converted) as text, regardless of the supposed file type.\r
-\r
- [VMS] On VMS, for archives with VMS attribute information (made\r
- with "zip -V", "ZIP /VMS"), files are always created with their\r
- original record formats. For archives without VMS attribute\r
- information (not made with "zip -V", "ZIP /VMS"), all files are\r
- normally created with Stream_LF record format. With /TEXT[=AUTO],\r
- text files are normally created with variable-length record format,\r
- but adding STMLF gives them Stream_LF record format. Additionally,\r
- line endings (CR, LF, CR+LF, ..) are adjusted to the local\r
- standard, and EBCDIC is converted to ASCII. With /TEXT=ALL, all\r
- files are treated as text files, and processed as described above.\r
-\r
- See also /BINARY.\r
-3 /TRAVERSE_DIRS (-:)\r
- /[NO]TRAVERSE_DIRS (Default: /NOTRAVERSE_DIRS.)\r
-\r
- Allows UnZip to extract archive members into locations outside of\r
- the current extraction destination directory (and its\r
- subdirectories).\r
-\r
- For security reasons, UnZip normally removes "parent directory"\r
- path components ("../") from the path names of archive members as\r
- they are extracted. This safety feature (new for version 5.50)\r
- prevents UnZip from accidentally writing files to directories\r
- outside the current destination directory tree. /TRAVERSE_DIRS\r
- sets UnZip back to its previous, more liberal behavior, allowing\r
- exact extraction of archives that use "../" path components to\r
- create multiple directory trees at or above the level of the\r
- destination directory.\r
-\r
- Use this option with extreme caution.\r
-3 /UPPERCASE (-L)\r
- /[NO]UPPERCASE\r
-\r
- Deprecated. Use /NAMES=[NO]DOWNCASE.\r
-\r
- /UPPERCASE: Do not convert to lowercase any filename originating\r
- on an uppercase-only operating system or file system.\r
-\r
- /NOUPPERCASE: Convert to lowercase any filename originating on an\r
- uppercase-only operating system or file system.\r
-\r
- See also /LOWERCASE, which is also deprecated.\r
-3 /VERBOSE (-v)\r
- /VERBOSE[=(keyword, ...)]\r
-\r
- The optional keywords are:\r
-\r
- NORMAL Make a report more detailed/verbose. (Default value\r
- keyword: "/VERBOSE" is equivalent to\r
- "/VERBOSE=NORMAL".) (-v)\r
- MORE Enable special developer I/O diagnostics. See below.\r
- (-vv)\r
- COMMAND Enable special developer CLI diagnostics. See below.\r
-\r
- MORE and NORMAL may not be specified together. (MORE implies\r
- NORMAL.)\r
-\r
- When used with some primary mode options, /VERBOSE can make output\r
- more detailed/verbose. See also Qualifiers_Primary_mode,\r
- particularly /LIST.\r
-\r
- If no other primary mode is specified, and an archive is specified,\r
- then UnZip acts as if "/LIST /VERBOSE" were specified, and a\r
- detailed listing is generated. See Qualifiers_Primary_mode,\r
- particularly /LIST and /VERBOSE.\r
-\r
- /VERBOSE=MORE ("-vv") enables some VMS-specific I/O diagnostic\r
- messages, and is intended for use in program development, not in\r
- normal use.\r
-\r
- /VERBOSE=COMMAND causes UnZip to show the translated Unix-style\r
- command-line argument vector before processing it, and is intended\r
- for use in program development, not in normal use.\r
- /VERBOSE=COMMAND has no Unix-style equivalent.\r
-3 /VERSION (-V)\r
- [Non-CMS-MVS] Retain VMS file version numbers. VMS files can be\r
- stored with a version number, in the format "file.type;##", where\r
- "##" is a decimal number. By default the ";##" version numbers are\r
- stripped, but this option allows them to be retained. (On file\r
- systems that limit filenames to particularly short lengths, the\r
- version numbers may be truncated or stripped regardless of this\r
- option.)\r
-\r
- [Non-VMS] Note that before UnZip version 6.10, on a non-VMS system,\r
- a file with a name like "fred;123" would, by default, be extracted\r
- as "fred", even if the file did not originate on a VMS system (so\r
- that ";123" was probably not really a VMS version number).\r
- Beginning with UnZip version 6.10, the default behavior is to strip\r
- VMS version numbers only from files which were archived on a VMS\r
- system. To restore the old behavior, and always strip apparent VMS\r
- version numbers, explicitly negate the option: "-V-".\r
-3 /ZIPINFO (-Z)\r
- ZipInfo mode. With /ZIPINFO, the program runs in ZipInfo mode,\r
- which is used to display information about an archive and its\r
- members. Remaining options are interpreted as ZipInfo options. If\r
- used, /ZIPINFO must be the first qualifier on the command line.\r
- See ZipInfo_mode.\r
-2 Environment_Options\r
- UnZip's default behavior may be modified by placing Unix-style\r
- command-line options in an environment variable. (The VMS CLI\r
- translator acts only on the command line itself, not on the\r
- environment variables.) This can be done with any option, but it is\r
- probably most useful options like -a (/TEXT, auto-convert text\r
- files), -L (/NAMES, downcase file names from systems with all\r
- uppercase file names), -C (/MATCH=CASE=BLIND, use case-insensitive\r
- name matching), -q (/QUIET, quiet), -o (/EXISTING, always\r
- overwrite), or -n (/EXISTING, never overwrite).\r
-\r
- For UnZip, the environment variable name on VMS is UNZIP_OPTS\r
- (non-VMS: UNZIP). The name on VMS is different to avoid conflict\r
- with a foreign-command DCL symbol, UNZIP. For compatibility with\r
- Zip, if UNZIP_OPTS is not defined, then UnZip will use UNZIPOPT the\r
- same way.\r
-\r
- For ZipInfo ("UNZIP /ZIPINFO"), the environment variable name on\r
- VMS is ZIPINFO_OPTS (non-VMS: ZIPINFO). For compatibility with\r
- Zip, if ZIPINFO_OPTS is not defined, then ZipInfo will use\r
- ZIPINFOOPT the same way.\r
- For example, to make UnZip act as quietly as possible, only\r
- reporting errors, one could use commands like the following (with\r
- quotation to preserve lower case in DCL):\r
-\r
- define UNZIP_OPTS "-q -q" ! Logical name, or\r
- UNZIP_OPTS = "-q -q" ! DCL symbol. (Either works.)\r
-\r
- Environment options are treated the same as any other Unix-style\r
- command-line options, except that they are effectively the first\r
- options on the command line. Generally, the VMS CLI translator\r
- will override an environment option if an explicit corresponding\r
- VMS-style qualifier is specified.\r
-\r
- The examples show short (one-character) options, but long ("--")\r
- options are also allowed.\r
-2 Encryption_Decryption\r
- Zip and UnZip have long supported a relatively weak encryption\r
- method, which we call Traditional ZIP encryption. The source code\r
- for Traditional encryption is included in the source kits, and\r
- support for Traditional encryption is enabled by default.\r
- (Build-time C macro: CRYPT_TRAD.)\r
-\r
- Beginning with UnZip version 6.10 and Zip version 3.1, these\r
- programs also offer a stronger, Advanced Encryption Standard (AES)\r
- encryption method, which we call AES WinZip/Gladman (AES_WG)\r
- encryption. (The encryption code was supplied by Brian Gladman,\r
- and the archive format is intended to be compatible with that used\r
- by the WinZip program. WinZip is a registered trademark of WinZip\r
- International LLC.) The source code for AES_WG encryption is\r
- distributed in a separate kit (for export control reasons), and\r
- support for AES_WG encryption must be enabled explicitly at build\r
- time. (Build-time C macro: CRYPT_AES_WG.) See the INSTALL file in\r
- the source kit for details on how to enable AES_WG encryption (or\r
- how to disable Traditional encryption).\r
-\r
- For details on the WinZip AES scheme, see:\r
- http://www.winzip.com/aes_info.htm\r
-\r
- For information on the separate AES_WG source kit, see:\r
- ftp://ftp.info-zip.org/pub/infozip/crypt/\r
- ftp://ftp.info-zip.org/pub/infozip/crypt/README_AES_WG.txt\r
-\r
- Normally, encryption passwords are supplied by the user\r
- interactively when requested by the program. See /PASSWORD for a\r
- (less secure) method of specifying a password on the command line.\r
-\r
- With Traditional encryption, when decrypting, a password will be\r
- checked against header data, and used if it appears to be correct.\r
- The correct password will always check out against the header data,\r
- but there is a 1-in-256 chance that an incorrect password will as\r
- well. (This is a security feature of the PKWARE archive format; it\r
- helps prevent brute-force attacks that might otherwise gain a large\r
- speed advantage by testing only the header.) In the case that an\r
- incorrect password is given but it passes the header test anyway,\r
- either an incorrect CRC will be generated for the extracted data or\r
- else UnZip will fail during the extraction because the "decrypted"\r
- bytes do not constitute a valid compressed data stream.\r
-\r
- If the first password fails the header check on some file, UnZip\r
- will prompt for another password, and so on until all files are\r
- extracted. If a password is not known, entering a null password\r
- (that is, just a carriage return or "Enter") is taken as a signal\r
- to skip all further prompting. Only unencrypted files in the\r
- archive(s) will thereafter be extracted. (The situation is\r
- actually a little more complicated. Some old versions of Zip and\r
- ZipCloak allowed null passwords, so UnZip checks each encrypted\r
- file to see if the null password works. This may result in "false\r
- positives" and extraction errors, as noted above.)\r
-\r
- Archives encrypted with 8-bit-character passwords (for example,\r
- passwords with accented European characters) may not be portable\r
- across systems or to other archivers. This problem stems from the\r
- use of multiple encoding methods for such characters, including\r
- Latin-1 (ISO 8859-1) and OEM code page 850. DOS PKZIP 2.04g uses\r
- the OEM code page; Windows PKZIP 2.50 uses Latin-1 (and is\r
- therefore incompatible with DOS PKZIP; Info-ZIP uses the OEM code\r
- page on DOS, OS/2 and Win3.x ports but ISO coding (Latin-1 etc.)\r
- everywhere else; and Nico Mak's WinZip 6.x does not allow\r
- 8-bit-character passwords at all. UnZip 5.3 (or newer) attempts to\r
- use the default character set first (e.g., Latin-1), followed by\r
- the alternate one (e.g., OEM code page) to test passwords. On\r
- EBCDIC systems, if both of these fail, EBCDIC encoding will be\r
- tested as a last resort. (EBCDIC is not tested on non-EBCDIC\r
- systems, because there are no known archivers that encrypt using\r
- EBCDIC encoding.) ISO character encodings other than Latin-1 are\r
- not supported. The new addition of (partial) Unicode (UTF-8)\r
- support in UnZip 6.0 has not yet been adapted to the encryption\r
- password handling in UnZip. On systems that use UTF-8 as native\r
- character encoding, UnZip simply tries decryption with the native\r
- UTF-8 encoded password; the built-in attempts to check the password\r
- in translated encoding have not yet been adapted for UTF-8 support\r
- and will consequently fail.\r
-2 Examples\r
- To use UnZip to extract all members of the archive letters.zip into\r
- the current directory and subdirectories below it, creating any\r
- subdirectories as necessary:\r
-\r
- unzip letters\r
-\r
- To extract all members of letters.zip into the current directory\r
- only:\r
-\r
- unzip /junk_dirs letters\r
-\r
- To test letters.zip, printing only a summary message indicating\r
- whether the archive is OK or not:\r
-\r
- unzip /test /quiet letters\r
-\r
- To test all ".zip" archives in the current directory, printing only\r
- the summaries:\r
-\r
- unzip /test /quiet *.zip\r
-\r
- (On a Unix system, the wildcard member name would typically need to\r
- be quoted to keep a a Unix shell from expanding ("globbing") it.\r
- This is not necessary on VMS. However, a name with a slash ("/")\r
- character, such as "*/zip*.*", must be quoted. Otherwise, DCL may\r
- interpret the slash as introducing a qualifier, causing unexpected\r
- behavior or an "%CLI-W-IVQUAL, unrecognized qualifier" error.)\r
-\r
- The following command extracts to standard output all members of\r
- letters.zip whose names end in ".tex", auto-converting to the local\r
- end-of-line convention, in Stream_LF record format, and piping the\r
- output into TYPE /PAGE:\r
-\r
- pipe unzip /screen /text=(auto, stmlf) letters *.tex | \\r
- type /page sys$input\r
-\r
- To extract from source.zip all Fortran and C source files (*.f,\r
- *.c, *.h) and Makefile into the SYS$SCRATCH directory:\r
-\r
- unzip source.zip *.[fch] Makefile /directory = sys$scratch\r
-\r
- To extract all FORTRAN and C source files, regardless of case (for\r
- example, both *.c and *.C, and any makefile, Makefile, MAKEFILE or\r
- similar):\r
-\r
- unzip -C source.zip *.[fch] makefile /directory = sys$scratch\r
-\r
- The following command extracts only newer versions of the files\r
- already in the current directory, without querying. (Note: Be\r
- careful of extracting in one timezone an archive created in\r
- another. ZIP archives created by Zip versions before 2.1 contain\r
- no timezone information, and a "newer" file from an eastern\r
- timezone may, in fact, be older):\r
-\r
- unzip /freshen /existing=new_version sources\r
-\r
- To extract newer versions of the files already in the current\r
- directory and to create any files not already there (same caveat as\r
- previous example):\r
-\r
- unzip /update /existing=new_version sources\r
-\r
- To display a configuration report showing the program version, the\r
- OS and compiler used to build it, a list of optional features\r
- enabled at build time, and the values of all the relevant\r
- environment variables:\r
-\r
- unzip /verbose\r
-2 Exit_Status\r
- UnZip's exit status approximates the exit codes defined by PKWARE.\r
- On VMS, UnZip's UNIX-style exit values are translated into\r
- VMS-style status codes with facility code 1954 = %x7A2, and with\r
- the inhibit-message (%x10000000) and facility-specific (%x00008000)\r
- bits set:\r
-\r
- %x17A28001 normal exit\r
- %x17A28000 + 16*UnZip_error_code warnings\r
- %x17A28002 + 16*UnZip_error_code normal errors\r
- %x17A28004 + 16*UnZip_error_code fatal errors\r
-\r
- Note that multiplying the UNIX-style UnZip error code by 16 places\r
- it conveniently in the hexadecimal representation of the VMS exit\r
- code, "__" in %x17A28__s, where "s" is the severity code. For\r
- example, a missing archive might cause UnZip error code 9, which\r
- would be transformed into the VMS exit status %X17A28092.\r
-\r
- The UnZip VMS exit codes include severity values which approximate\r
- those defined by PKWARE, as shown in the following table:\r
-\r
- VMS UnZip\r
- severity err code Error description\r
- ----------+----------+----------------------------------------------\r
- Success 0 Normal. No errors or warnings detected.\r
- Warning 1 One or more warnings were encountered, but\r
- processing completed successfully. This\r
- includes archives where one or more (but not\r
- all) files were skipped because of an\r
- unsupported compression or encryption method,\r
- or a bad encryption password.\r
- Error 2 Error in the archive format. Processing may\r
- or may not have completed successfully.\r
- Fatal 3 Severe error in the archive format.\r
- Processing probably failed immediately.\r
- Fatal 4 Memory allocation failed in program\r
- initialization.\r
- Fatal 5 Memory allocation or terminal I/O failed in\r
- password processing.\r
- Fatal 6 Memory allocation failed while decompressing\r
- to disk.\r
- Fatal 7 Memory allocation failed while decompressing\r
- in memory.\r
- Fatal 8 Memory allocation failed. (Currently not\r
- used.)\r
- Error 9 Specified archive files were not found.\r
- Error 10 Invalid command-line options or parameters.\r
- Error 11 No matching files were found.\r
- Fatal 50 Disk (file system) filled during extraction.\r
- Fatal 51 Unexpected end-of-file while reading the\r
- archive.\r
- Error 80 User interrupt (Ctrl/C).\r
- Error 81 No files were processed, because of\r
- unsupported compression or encryption\r
- methods.\r
- Error 82 No files were processed, because of bad\r
- encryption password(s).\r
- Fatal 83 Large-file archive could not be processed by\r
- this small-file program.\r
-2 Bugs\r
- Multi-part archives are not yet supported, except in conjunction\r
- with Zip. (All parts must be concatenated together in order, and\r
- then "zip -F" (for Zip 2.x) or "zip -FF" (for Zip 3.x) must be\r
- performed on the concatenated archive in order to "fix" it. Also,\r
- zip 3.0 and later can combine multi-part (split) archives into a\r
- combined single-file archive using "zip -s- inarchive -O\r
- outarchive". See the zip manual page for more information.) This\r
- may be corrected in the next major release.\r
-\r
- Archives read from standard input are not yet supported, except\r
- with UnZip (and then only the first member of the archive can be\r
- extracted).\r
-\r
- Archives encrypted with 8-bit-character passwords (such as\r
- passwords with accented European characters) may not be portable\r
- across systems and/or other archivers. See also\r
- Encryption_Decryption.\r
-\r
- UnZip's -M ("--more") option tries to take into account automatic\r
- wrapping of long lines. However, the code may fail to detect the\r
- correct wrapping locations. First, TAB characters (and similar\r
- control sequences) are not taken into account, they are handled as\r
- ordinary printable characters. Second, depending on the actual\r
- system type, UnZip may not detect the true terminal/emulator\r
- geometry, but instead may rely on "commonly used" default\r
- dimensions. The correct handling of tabs would require the\r
- implementation of a query for the actual tab setup on the output\r
- terminal/emulator.\r
-\r
- [Unix] Unix special files such as FIFO buffers (named pipes), block\r
- devices and character devices are not restored even if they are\r
- somehow represented in the archive, nor are hard-linked files\r
- relinked. Basically, the only file types restored by UnZip are\r
- regular files, directories, and symbolic (soft) links.\r
-\r
- [OS/2] Extended attributes for existing directories are only\r
- updated if the -o ("--overwrite") option is given. This is a\r
- limitation of the operating system; because directories only have a\r
- creation time associated with them, UnZip has no way to determine\r
- whether the stored attributes are newer or older than those on\r
- disk. In practice this may mean a two-pass approach is required:\r
- first unpack the archive normally (with or without\r
- freshening/updating existing files), then overwrite just the\r
- directory entries (for example, "unzip -o foo */").\r
-2 URL\r
- The Info-ZIP main Web page is:\r
- http://www.info-zip.org/\r
-\r
- FTP access is available, too:\r
- ftp://ftp.info-zip.org/pub/infozip/\r
-2 ZipInfo_mode\r
- When /ZIPINFO is specified, the program runs in ZipInfo mode.\r
- Remaining options are interpreted as ZipInfo options. If used,\r
- /ZIPINFO must be the first qualifier on the command line.\r
-\r
- ZipInfo reports detailed information about a ZIP archive and its\r
- members. This information may include file access permissions,\r
- compression method, encryption method, version and operating system\r
- (or file system) of the archive-creating program, and so on. The\r
- default behavior (with no options) is to show a single-line entry\r
- for each member in the archive, with a header and a trailer\r
- providing summary information for the entire archive. The format\r
- is a cross between Unix "ls -l" and "UNZIP /LIST /VERBOSE" output.\r
- See Detailed_Description. ZipInfo is the same program as UnZip.\r
- (On Unix, "zipinfo" may be a link to "unzip". On VMS, "ZIPINFO" is\r
- normally a DCL symbol defined as "''UNZIP' /ZIPINFO".) However,\r
- ZipInfo support may have been disabled when UnZip was built.\r
-\r
- Format:\r
-\r
- ZIPINFO [/zipinfo_options] [file[.zip]] [member [,...]]\r
-\r
- UNZIP /ZIPINFO [/zipinfo_options] [file[.zip]] [member [,...]]\r
-3 Command_Parameters\r
- file[.zip]\r
-\r
- File path/name of a ZIP archive. A wildcard name may be used to\r
- specify multiple ZIP archives to be processed in one command.\r
- On VMS systems, any of the standard wildcards for a\r
- directory/file specification may be used: "...", "*", or "%"\r
- (or, since VMS V7.2, "?"). The default archive file\r
- specification is ".ZIP".\r
-\r
- Note that a ".zip" or ".ZIP" file type on an archive is merely a\r
- convention, not a requirement. For example, a self-extracting\r
- ZIP archive named "fred" or "fred.exe" could be processed as if\r
- it were an ordinary archive; just specify the actual file name\r
- with its actual name ending (if any), whatever that may be.\r
-\r
- member [,...]\r
-\r
- An optional list of archive members to be processed, separated\r
- by commas. If no member list is specified, then all archive\r
- members are processed. Unix-like ("globbing") wildcard patterns\r
- may be used to match multiple members:\r
-\r
- * Matches a sequence of 0 or more characters.\r
- ? Matches exactly 1 character.\r
- [...] Matches any single character found inside the\r
- brackets. Ranges are specified by a beginning\r
- character, a hyphen, and an ending character. If an\r
- exclamation point ("!") or a caret ("^") follows the\r
- left bracket, then the range of characters within\r
- the brackets is complemented. That is, anything\r
- except the characters inside the brackets is\r
- considered a match. To specify a literal left\r
- bracket, use the three-character sequence "[[]".\r
-3 Qualifiers_Primary_Format\r
- Qualifiers in this group specify the primary report format of\r
- ZipInfo. Only one of these primary format qualifiers may be\r
- specified.\r
-4 /LONG (-l)\r
- Primary Format. Show member info in long Unix "ls -l" format.\r
- Like the /MEDIUM format, except that the compressed size (in bytes)\r
- is printed instead of the compression ratio.\r
-4 /ONE_LINE (-2)\r
- Primary Format. Show member names only, one per line. Other\r
- report elements are allowed, if requested explicitly using /HEADER,\r
- /TOTALS, and/or /COMMENT.\r
-4 /MEDIUM (-m)\r
- Primary Format. Show member info in medium-length Unix "ls -l"\r
- format. Like the /SHORT format, except that the compression\r
- factor, expressed as a percentage, is also included.\r
-4 /SHORT (-s)\r
- Primary Format. Show member info in short Unix "ls -l" format.\r
- This is the default behavior, unless /HEADER or /TOTALS is\r
- specified.\r
-4 /VERBOSE (-v)\r
- Primary Format. The ZipInfo /VERBOSE report is very detailed, and\r
- mostly self-explanatory, but it does assume some familiarity with\r
- the ZIP archive format. It also includes the archive comment, if\r
- any. Extra fields in the central directory are broken down into\r
- subfields, with brief interpretations of recognized subfields (or\r
- abbreviated dumps of unrecognized subfields).\r
-3 Qualifiers_Ordinary\r
- Qualifiers in this group modify the operation or report format of\r
- ZipInfo.\r
-4 /COMMENT (-z)\r
- Include the archive comments (if any) in the report.\r
-4 /DECIMAL_TIME (-T)\r
- Show the file date-times in a sortable, all-numeric,\r
- "YYYYMMDD.hhmmss" format. The default date format is an\r
- alpha-numeric "YY-Mmm-DD hh:mm". For example ("/SHORT", "/SHORT\r
- /DECIMAL_TIME"):\r
-\r
- -rw-a-- 3.1 fat 211916 tx defX 10-Jun-18 00:27 zip31c/zip.c\r
- -rw-a-- 3.1 fat 211916 tx defX 20100618.002703 zip31c/zip.c\r
-4 /EXCLUDE (-x)\r
- /EXCLUDE=(member [,...])\r
- An optional list of archive members to be excluded from processing.\r
- Because wildcard characters normally match "/" directory separators\r
- (for exceptions see /WILD_SPAN (-W)), this option may be used to\r
- exclude any files that are in subdirectories. For example,\r
- UNZIP foo *.[ch] /EXCLUDE = */*\r
- would extract all C source files (*.c, *.h) in the main directory,\r
- but none in any subdirectories. Without the /EXCLUDE option, all C\r
- source files in all directories within the archive would be\r
- extracted.\r
-\r
- Note that archive members are specified using the Unix-style names\r
- which are used in ZIP archives, not VMS-style names.\r
-4 /HEADER (-h)\r
- Include a header in the report, showing the archive name, the\r
- archive size (in bytes), and the number of members in the archive.\r
-\r
- For the Unix-format reports (options /LONG, /MEDIUM, /SHORT), the\r
- header is included by default, if no archive members are specified.\r
- If /HEADER is specified alone, that is, without one of the\r
- Unix-format options, and without a member list, then only the\r
- header lines will be put out.\r
-3 /MATCH (-C, -W)\r
- /MATCH=(keyword, ...)\r
-\r
- Specifies name-matching behavior for names in the member list and\r
- the /EXCLUDE excluded-member list on the command line.\r
-\r
- The optional keywords and values are:\r
-\r
- CASE=BLIND Name matching is case-insensitive. (-C)\r
- CASE=SENSITIVE Name matching is case-sensitive. (Default.)\r
-\r
- By default, case-sensitive matching is done. For example,\r
- specifying "makefile" on the command line will match only\r
- "makefile" in the archive, not "Makefile" or "MAKEFILE". On many\r
- systems, the local file system is case-insensitive, so\r
- case-insensitive name matching would be more natural. With\r
- /MATCH=CASE=BLIND, "makefile" would match "makefile", "Makefile",\r
- or "MAKEFILE".\r
-\r
- /MATCH does not affect the search for the ZIP archive file(s), nor\r
- the matching of archive members to existing files on the extraction\r
- path. So, on a case-sensitive file system, UnZip will never try to\r
- overwrite a file "FOO" when extracting a member named "foo"!\r
-\r
- [WILD_STOP_AT_DIR] If the C macro WILD_STOP_AT_DIR is defined at\r
- build time, then an additional keyword is allowed:\r
-\r
- NOWILD_MATCH_SLASH Wildcards stop at directory slash. (-W)\r
- WILD_MATCH_SLASH Wildcards match directory slash. (Default.)\r
-\r
- By default, the wildcard characters "?" (single-character wildcard)\r
- and "*" (multi-character wildcard) match any character in a member\r
- path/name. /MATCH=NOWILD_MATCH_SLASH (-W) modifies the\r
- pattern-matching behavior for archive members so that both "?"\r
- (single-character wildcard) and "*" (multi-character wildcard) do\r
- not match the directory separator character "/". (The\r
- two-character sequence "**" acts as a multi-character wildcard that\r
- includes the directory separator in its matched characters.) For\r
- example, with /MATCH=NOWILD_MATCH_SLASH:\r
- "*.c" matches "foo.c" but not "mydir/foo.c"\r
- "**.c" matches both "foo.c" and "mydir/foo.c"\r
- "*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c"\r
- "??*/*" matches "ab/foo" and "abc/foo"\r
- but not "a/foo" or "a/b/foo"\r
-\r
- This modified behavior is equivalent to the pattern matching style\r
- used by the shells of some of \fIUnZip\fP's supported target OSs\r
- (one example is Acorn RISC OS). This option may not be available\r
- on systems where the Zip archive's internal directory separator\r
- character "/" is allowed as regular character in native operating\r
- system filenames.\r
-\r
- [non-VMS] (Currently, UnZip uses the same pattern matching rules\r
- for both wildcard archive file name specifications and archive\r
- member selection patterns on most system types. For systems\r
- allowing "/" as regular filename character, the -W option would not\r
- work as expected on a wildcard file name specification.)\r
-4 /MEMBER_COUNTS (default) (-mc)\r
- /NOMEMBER_COUNTS\r
- Control inclusion of separate member counts for directories, files,\r
- and (if symlinks are supported) links, after the totals summary at\r
- the end of the report. By default, they are included. Use\r
- /NOMEMBER_COUNTS" to suppress them. See also /TOTALS.\r
-4 /PAGE (-M)\r
- Pipe all output through an internal pager similar to the Unix\r
- more(1) command. At the end of a screenful of output, UnZip pauses\r
- with a "--More--" prompt; the next screenful may be viewed by\r
- pressing the Enter (Return) key or the space bar. UnZip can be\r
- terminated by pressing the "Q" key and, on some systems, the\r
- Enter/Return key. Unlike Unix more(1), there is no\r
- forward-searching or editing capability. Also, UnZip doesn't\r
- notice if long lines wrap at the edge of the screen, effectively\r
- resulting in the printing of two or more lines and the likelihood\r
- that some text will scroll off the top of the screen before being\r
- viewed. If the actual number of lines on the screen can not be\r
- determined, 24 lines will be assumed.\r
-4 /TOTALS (-t)\r
- Include a totals summary at the end of the report, showing the\r
- number of members in the report, the sum of their uncompressed\r
- sizes, the sum of their compressed sizes, and the compression\r
- factor as a percentage.\r
-\r
- For the Unix-format reports (/LONG, /MEDIUM, /SHORT), the totals\r
- summary is included by default, if no archive members are\r
- specified. If /TOTALS is specified alone, that is, without one of\r
- the Unix-format options, and without a member list, then only the\r
- totals summary trailer lines will be put out.\r
-\r
- The total "bytes compressed" reported includes only the actual\r
- data, not the ZIP archive meta-data, so the size of the archive\r
- will always be greater than this value.\r
-\r
- See also /MEMBER_COUNTS.\r
-3 Detailed_Description\r
- ZipInfo has three basic report formats, providing different degrees\r
- of detail in the information about the members of an archive: a\r
- simple list of names (/ONE_LINE (-1, -2)), a Unix ls-style listing\r
- (/LONG (-l), /MEDIUM (-m), /SHORT (-s)), and a very detailed\r
- analysis (/VERBOSE (-v)). Some of the information, such as file\r
- sizes, is easy to interpret. Some of the information involves\r
- fairly obscure details of ZIP archive structure. ZIP archive\r
- structure is documented in the PKWARE Inc. APPNOTE.TXT:\r
- http://www.pkware.com/documents/casestudies/APPNOTE.TXT\r
-\r
- The table below shows some typical /LONG report entries:\r
-\r
- Perm/Prot Zver Ofs UncSize At CmpSize Cmth ModDate Mtime Name\r
- ----------+----+---+-------+--+-------+----+---------------+----------\r
- -rw-a-- 3.1 fat 211916 tx 53467 defX 10-Jun-18 00:27 zip3/zip.c\r
- -rwxr-x--- 3.1 unx 709 Tx 311 aesw 11-Aug-21 22:20 endian.c\r
- RWED,RE, 3.1 vms 6656 bx 2295 defN 07-Aug-15 14:12 it/T.EXE;8\r
-\r
- Field 1 (Perm/Prot) shows the file permission/protection\r
- attributes, formatted according to the original operating system or\r
- file system where the archive was created.\r
-\r
- Field 2 (Zver) shows the (approximate) version of the Zip program\r
- which created the archive.\r
-\r
- Field 3 (Ofs) shows the original operating system where the archive\r
- was created, or the file system on which the member file was\r
- stored.\r
-\r
- Field 4 (UncSize) shows the original, uncompressed file size.\r
-\r
- Field 5 (At) shows some archive member attributes, as detailed in\r
- the tables below. The first character indicates whether a file was\r
- binary or text, and whether it was encrypted. The second character\r
- indicates the presence of a data descriptor and/or an extra field\r
- in the member data.\r
-\r
- | File Type Extra Field |\r
- First char | binary text yes no | Second char\r
- --------------+-------+----- ------+-----+--------------------\r
- Encrypted no | b t x - | no Data Descriptor\r
- yes | B T X l | yes\r
-\r
- A Data Descriptor holds CRC and size data at an alternate place in\r
- the archive (after processed member data instead of before), and is\r
- normally used when the archiving program can't seek in the output\r
- archive data/file. An Extra Field can hold a wide variety of data,\r
- including 64-bit file sizes, many kinds of OS-specific attribute\r
- data, UTC times, and so on.\r
-\r
- Field 6 (CmpSize) shows the compressed file size. With /MEDIUM,\r
- this field shows the compression fraction as a percentage. With\r
- /SHORT (the default), this field is omitted. This compressed size\r
- value (unlike the one in an "UNZIP /LIST" report) includes all the\r
- overhead resulting from Traditional encryption.\r
-\r
- Field 7 (Cmth) shows the compression method used. Note that AES_WG\r
- encryption is treated as a compression method here. Not all of the\r
- methods shown in the table below are supported. (Some are\r
- obsolete.)\r
-\r
- Num Abbr Name, description\r
- ----+----+------------------------------------------------------------\r
- 0 stor Store (no compression)\r
- 1 shrk Shrink\r
- 2 re:1 Reduce (factor 1)\r
- 3 re:2 Reduce (factor 2)\r
- 4 re:3 Reduce (factor 3)\r
- 5 re:4 Reduce (factor 4)\r
- 6 i#:# Implode (dictonary_size:Shannon-Fano_trees)\r
- 7 tokn Tokenize\r
- 8 def# Deflate (N: normal, X: maximum, F: fast, S: super-fast)\r
- 9 d64# Deflate64 (N: normal, X: maximum, F: fast, S: super-fast)\r
- 10 dcli PKWARE Data Compression Library Imploding - IBM TERSE (old)\r
- 12 bzp2 bzip2\r
- 14 lzma LZMA\r
- 18 ters IBM TERSE (new)\r
- 19 lz77 IBM LZ77 z Architecture (PFS)\r
- 96 jpeg JPEG\r
- 97 wavp WavPack\r
- 98 ppmd PPMd version I, Rev 1\r
- 99 aesw AES_WG encryption\r
-\r
- Fields 8 and 9 (ModDate, Mtime) show the file modification\r
- date-time (MS-DOS format, local time).\r
-\r
- Field 10 (Name) shows the file path/name.\r
-3 Environment_Options\r
- ZipInfo's default behavior may be modified by placing Unix-style\r
- command-line options in an environment variable. (The VMS CLI\r
- translator acts only on the command line itself, not on the\r
- environment variables.) This can be done with any option, but it is\r
- probably most useful options like -T (/DECIMAL_TIME, decimal time\r
- format) or one of the non-default Unix format options: -l (/LONG),\r
- -m (/MEDIUM).\r
-\r
- For ZipInfo ("UNZIP /ZIPINFO", ZIPINFO), the environment variable\r
- name on VMS is ZIPINFO_OPTS (non-VMS: ZIPINFO). For compatibility\r
- with Zip, if ZIPINFO (ZIPINFO_OPTS on VMS) is not defined, then\r
- ZipInfo will use ZIPINFOOPT the same way.\r
-\r
- For example, to make the default format the long Unix format\r
- instead of the short Unix format, one could use commands like the\r
- following (with quotation to preserve lower case in DCL):\r
-\r
- define ZIPINFO_OPTS "-l" ! Logical name, or\r
- ZIPINFO_OPTS = "-l" ! DCL symbol. (Either works.)\r
-\r
- Environment options are treated the same as any other Unix-style\r
- command-line options, except that they are effectively the first\r
- options on the command line. Generally, the VMS CLI translator\r
- will override an environment option if an explicit corresponding\r
- VMS-style qualifier is specified.\r
-\r
- The examples show short (one-character) options, but long ("--")\r
- options are also allowed.\r
-3 Examples\r
- To get a basic, short-format listing of the complete contents of a\r
- ZIP archive zip31c.zip, with both header and totals lines, use only\r
- the archive name as an argument to zipinfo:\r
-\r
- zipinfo zip31c.zip\r
- zipinfo zip31c\r
-\r
- To produce a basic, long-format listing (not verbose), including\r
- header and totals lines, use /LONG:\r
-\r
- zipinfo /long zip31c.zip\r
-\r
- To list the complete contents of the archive without header and\r
- totals lines, either negate the /HEADER and /TOTALS qualifiers or\r
- else specify the contents explicitly:\r
-\r
- zipinfo /noheader /nototals zip31c.zip\r
- zipinfo zip31c.zip *\r
-\r
- (On a Unix system, the wildcard member name would typically need to\r
- be quoted to keep a a Unix shell from expanding ("globbing") it.\r
- This is not necessary on VMS. However, a name with a slash ("/")\r
- character, such as "*/zip*.*", must be quoted. Otherwise, DCL may\r
- interpret the slash as introducing a qualifier, causing unexpected\r
- behavior or an "%CLI-W-IVQUAL, unrecognized qualifier" error.)\r
-\r
- To list information on a single archive member, in medium format,\r
- specify the member name explicitly:\r
-\r
- zipinfo /medium unzip60.zip */unshrink.c\r
-\r
- On a VMS system, one could use /DECIMAL_TIME along with an external\r
- sorting program to get a listing of files in the archive in\r
- date-time order:\r
-\r
- pipe zipinfo /decimal_time /long /noheader /nototals zip31c.zip | -\r
- sort sys$input sys$output /key = (position:47, size:15, descend)\r
-\r
- For a /LONG (-l) format report, the date-time field should begin at\r
- position 47; for /MEDIUM (-m), 42; for /SHORT (-s), 38. HELP SORT\r
- [/KEY] should lead to an explanation of the various SORT options.\r
- (Unlike Unix, VMS does not include a useful "head" or "tail"\r
- program.)\r
-\r
- On a Unix system, one could use the -T option along with an\r
- external sorting program (and another filter like "head" or "tail")\r
- to get a listing of the least or most recently modified files in\r
- the archive:\r
-\r
- zipinfo -l -T -h- -t- zip31c.zip | sort -k 8 | head -12\r
- zipinfo -l -T -h- -t- zip31c.zip | sort -r -k 8 | head -12\r
-\r
- The "sort" option "-k 8" tells it to sort on field 8, which is the\r
- date-time field in a long- or medium-format (-l, -m) ZipInfo\r
- report. (Use "-k 7" for the short (-s) format.) The -r option\r
- reverses the default smallest-to-largest sort order.\r
-3 Bugs\r
- As with UnZip, ZipInfo's /PAGE (-M) option is overly simplistic in\r
- its handling of screen output. As noted above, it fails to detect\r
- the wrapping of long lines and may thereby cause lines at the top\r
- of the screen to be scrolled off before being read. ZipInfo should\r
- detect and treat each occurrence of line-wrap as one additional\r
- line printed. This requires knowledge of the screen's width as\r
- well as its height. In addition, ZipInfo should detect the true\r
- screen geometry on all systems.\r
-\r
- The interactions among the various listing format, header, and\r
- trailer options (/HEADER, /LONG, /MEDIUM, /SHORT, /TOTALS) are\r
- unnecessarily complex and should be simplified, despite the\r
- potential disruption to current users.\r
-3 URL\r
- The Info-ZIP main Web page is:\r
- http://www.info-zip.org/\r
-\r
- FTP access is available, too:\r
- ftp://ftp.info-zip.org/pub/infozip/\r
#include <limits.h> instead of "limits.h" in aes.h.
+ Changing some "long" types to "int" or "sha1_32t" in hmac.c and
+ hmac.h to accommodate systems (like Mac OS X on Intel) where a
+ 64-bit "long" type caused bad results.
+
Comments in the code identify the changes. (Look for "Info-ZIP".) The
-original files are preserved in an "original_files" subdirectory, for
-reference.
+original files are preserved in an "orig" subdirectory, for reference.
The name "IZ_AES_WG" (Info-ZIP AES WinZip/Gladman) is used by
Info-ZIP to identify our implementation of WinZip AES encryption of Zip
kit versions, so, before downloading a particular IZ_AES_WG source kit,
it would be best to consult the INSTALL files in the UnZip and Zip
source kits, and the the Version History section of the current version
-of this document:
+of this document:
ftp://ftp.info-zip.org/pub/infozip/crypt/README_AES_WG.txt
Note that many of the servers that distribute Info-ZIP software are
situated in the United States. See the latest version of file
-USexport_AES_WG.msg for information regarding export from the US.
+USexport_AES_WG.msg for information regarding export from the US.
Downloads of Info-ZIP encryption software are subject to the limitations
noted.
IZ_AES_WG Version History
-------------------------
+ 1.4 2015-03-23 Changed "long" types to "int" for counters, and
+ to "sha1_32t" for apparent 32-bit byte groups,
+ where a 64-bit "long" type caused bad results (on
+ Mac OS X, Intel). (hmac.c, hmac.h) [SMS]
1.3 2013-11-18 Renamed USexport.msg to USexport_AES_WG.msg to
distinguish it from the Traditional encryption
- notice, USexport.msg.
+ notice, USexport.msg. [SMS]
1.2 2013-04-12 Avoid <sys/isa_defs.h> on __sun systems with
- __sparc defined (for SunOS 4.x).
+ __sparc defined (for SunOS 4.x). (brg_endian.h)
+ [SMS]
1.1 2012-12-31 #include <limits.h> instead of "limits.h" in
- aes.h (for VAX C). (SMS)
- 1.0 2011-07-07 Minor documentation changes. (SMS, EG)
+ aes.h (for VAX C). [SMS]
+ 1.0 2011-07-07 Minor documentation changes. [SMS, EG]
Compatible with UnZip 6.10 and Zip 3.1.
US Department of Commerce BIS notified.
- 0.5 2011-07-07 Minor documentation changes. (SMS, EG)
+ 0.5 2011-07-07 Minor documentation changes. [SMS, EG]
Compatible with UnZip 6.10 and Zip 3.1.
- 0.4 2011-06-25 Minor documentation changes. (SMS, EG)
+ 0.4 2011-06-25 Minor documentation changes. [SMS, EG]
Compatible with UnZip 6.10 and Zip 3.1.
- 0.3 2011-06-22 Initial beta version. (SMS, EG)
- 0.2 2011-06-20 Minor documentation updates. (EG)
- 0.1 2011-06-17 Initial alpha version. (SMS)
+ 0.3 2011-06-22 Initial beta version. [SMS, EG]
+ 0.2 2011-06-20 Minor documentation updates. [EG]
+ 0.1 2011-06-17 Initial alpha version. [SMS]
/*
- Copyright (c) 1990-2014 Info-ZIP. All rights reserved.
+ Copyright (c) 1990-2015 Info-ZIP. All rights reserved.
See the accompanying file LICENSE, version 2009-Jan-2 or later
(the contents of which are also included in zip.h) for terms of use.
* Here, writing salt and password verification.
*/
void aes_crypthead( OFT( ZCONST uch *)salt,
- OFT( uch) salt_len,
+ OFT( int) salt_len,
OFT( ZCONST uch *)pwd_verifier)
# ifdef NO_PROTO
ZCONST uch *salt;
- uch salt_len;
+ int salt_len;
ZCONST uch *pwd_verifier;
# endif /* def NO_PROTO */
{
# ifdef IZ_CRYPT_AES_WG
# define HEAD_LEN head_len /* Variable header length. */
int head_len; /* Variable encryption header length. */
- uch salt_len = 0; /* AES salt length. (Init'd to hush cmplr.) */
+ int salt_len = 0; /* AES salt length. (Init'd to hush cmplr.) */
# else /* def IZ_CRYPT_AES_WG */
# define HEAD_LEN RAND_HEAD_LEN /* Constant trad. header length. */
# endif /* def IZ_CRYPT_AES_WG [else] */
# define UNKN_PPMD TRUE /* PPMd (98) unknown */
#endif
-#ifdef USE_WAVP
+#ifdef WAVP_SUPPORT
# define UNKN_WAVP (G.crec.compression_method != WAVPACKED)
#else
# define UNKN_WAVP TRUE /* WavPack (97) unknown */
#endif
void action_msg( __G__ action, flag)
+ __GDEF
char *action;
int flag; /* 0: Name only; 1: Name + [type]. */
{
#endif /* def ENABLE_USER_PROGRESS */
if (!uO.qflag)
{
- action_msg( "test", 0);
+ action_msg( __G__ "test", 0);
}
} else {
#ifdef DLL
#ifdef SYMLINKS
if (G.symlnk) /* can also be deflated, but rarer... */
{
- action_msg( "link", 0);
+ action_msg( __G__ "link", 0);
}
else
#endif /* SYMLINKS */
{
- action_msg( "extract", 1);
+ action_msg( __G__ "extract", 1);
#ifdef ENABLE_USER_PROGRESS
G.action_msg_str = "extract";
#endif /* def ENABLE_USER_PROGRESS */
#endif /* def ENABLE_USER_PROGRESS */
if (QCOND2)
{
- action_msg( LoadFarStringSmall(Unshrink), 1);
+ action_msg( __G__ LoadFarStringSmall(Unshrink), 1);
}
}
if ((r = unshrink(__G)) != PK_COOL) {
#endif /* def ENABLE_USER_PROGRESS */
if (QCOND2)
{
- action_msg( "unreduc", 1);
+ action_msg( __G__ "unreduc", 1);
}
}
if ((r = unreduce(__G)) != PK_COOL) {
#endif /* def ENABLE_USER_PROGRESS */
if (QCOND2)
{
- action_msg( "explod", 1);
+ action_msg( __G__ "explod", 1);
}
}
if ((r = explode(__G)) != 0) {
#endif /* def ENABLE_USER_PROGRESS */
if (QCOND2)
{
- action_msg( "inflat", 1);
+ action_msg( __G__ "inflat", 1);
}
}
#endif /* def ENABLE_USER_PROGRESS */
if (QCOND2)
{
- action_msg( "bunzipp", 1);
+ action_msg( __G__ "bunzipp", 1);
}
}
#endif /* def ENABLE_USER_PROGRESS */
if (QCOND2)
{
- action_msg( "unLZMA", 1);
+ action_msg( __G__ "unLZMA", 1);
}
}
#endif /* def ENABLE_USER_PROGRESS */
if (QCOND2)
{
- action_msg( "unPPMd", 1);
+ action_msg( __G__ "unPPMd", 1);
}
}
/* Set the Java CAFE flag by the first extra field found. */
if (uO.java_cafe == 0)
{
- ef_scan_for_cafe( G.extra_field,
+ ef_scan_for_cafe( __G__ G.extra_field,
(long)G.lrec.extra_field_length);
}
} /* if (error == PK_OK) */
if (error > error_in_archive)
error_in_archive = error;
- error_in_archive = extract_test_trailer( (ulg)members_processed,
+ error_in_archive = extract_test_trailer( __G__ (ulg)members_processed,
num_bad_pwd, num_skipped, error_in_archive);
return error;
/* Function close_segment(). */
/*******************************/
static void close_segment(__G)
+ __GDEF
{
if (G.zipfn_sgmnt != NULL)
{
if (!fd_is_valid(G.zipfd_sgmnt) || G.sgmnt_nr != G.pInfo->diskstart)
{
if (fd_is_valid(G.zipfd_sgmnt))
- close_segment(); /* We need a different file. */
+ close_segment( __G); /* We need a different file. */
- set_zipfn_sgmnt_name(G.pInfo->diskstart);
+ set_zipfn_sgmnt_name( __G__ G.pInfo->diskstart);
if (open_infile( __G__ OIF_SEGMENT))
{
/* TODO: ask for place/path of zipfile, see wild*!, ... */
if (request < 0)
{
Info(slide, 0x401, ((char *)slide, LoadFarStringSmall(SeekMsg),
- 1, G.zipfn, LoadFarString(ReportMsg)));
+ G.zipfn, 1, LoadFarString(ReportMsg)));
*perr_in_arch = PK_ERR;
if (filnum == 1 && G.extra_bytes != 0L)
{
"debug: recompensated request still < 0\n"));
Info(slide, 0x401, ((char *)slide,
LoadFarStringSmall(SeekMsg),
- G.zipfn, LoadFarString(ReportMsg)));
+ G.zipfn, 2, LoadFarString(ReportMsg)));
error = *perr_in_arch = PK_BADERR; /* Error. Skip this member. */
}
}
#endif
/* Find the local header for this member. */
- error = find_local_header( &error_in_archive,
+ error = find_local_header( __G__
+ &error_in_archive,
*pfilnum,
pold_extra_bytes);
(*G.statreportcb)(__G__ UZ_ST_START_EXTRACT, G.zipfn,
G.filename, NULL))
{
- close_segment();
+ close_segment( __G);
return IZ_CTRLC; /* Cancel operation by user request. */
}
#endif
#endif
)
{
- close_segment();
+ close_segment( __G);
return error_in_archive; /* (unless disk full) */
}
}
(*G.statreportcb)(__G__ UZ_ST_FINISH_MEMBER, G.zipfn,
G.filename, (zvoid *)&G.lrec.ucsize))
{
- close_segment();
+ close_segment( __G);
return IZ_CTRLC; /* Cancel operation by user request. */
}
#endif
#endif
} /* end for-loop (i: files in current block) */
- close_segment();
+ close_segment( __G);
return error_in_archive;
} /* extract_or_test_entrylist(). */
# endif
/* Find the local header for this member. */
- error = find_local_header( &error_in_archive,
+ error = find_local_header( __G__
+ &error_in_archive,
*pfilnum,
pold_extra_bytes);
(*G.statreportcb)(__G__ UZ_ST_START_EXTRACT, G.zipfn,
G.filename, NULL))
{
- close_segment();
+ close_segment( __G);
return IZ_CTRLC; /* Cancel operation by user request. */
}
# endif
# endif
)
{
- close_segment();
+ close_segment( __G);
return error_in_archive; /* (unless disk full) */
}
}
(*G.statreportcb)(__G__ UZ_ST_FINISH_MEMBER, G.zipfn,
G.filename, (zvoid *)&G.lrec.ucsize))
{
- close_segment();
+ close_segment( __G);
return IZ_CTRLC; /* Cancel operation by user request. */
}
# endif
} /* end for-loop (i: files in current block) */
- close_segment();
+ close_segment( __G);
return error_in_archive;
} /* extract_or_test_entrylistw(). */
else if (uO.java_cafe == 0)
{
/* Set the Java CAFE flag by the first extra field found. */
- ef_scan_for_cafe( G.extra_field,
+ ef_scan_for_cafe( __G__ G.extra_field,
(long)G.crec.extra_field_length);
}
}
#endif /* ndef SFX */
- error_in_archive = extract_test_trailer( filnum,
+ error_in_archive = extract_test_trailer( __G__ filnum,
num_bad_pwd, num_skipped, error_in_archive);
return error_in_archive;
/* Advance the global input pointer to past the used data. */
G.inptr = next_in+ in_buf_size_len;
- G.incnt = avail_in;
+ G.incnt = (int)avail_in;
return sts;
} /* UZlzma(). */
*pfd = open( fn, 0);
# else /* def MACOS */
# ifdef CMS_MVS
- *pfd = vmmvs_open_infile(__G fn, pfd);
+ *pfd = vmmvs_open_infile(__G__ fn, pfd);
# else /* def CMS_MVS */
if (G.zipstdin)
{
__GDEF
zipfd_t *pfd;
{
- int sts;
+ int sts = 0;
if (fd_is_valid( *pfd))
{
#ifdef USE_STRM_INPUT
sts = fclose( *pfd);
- *pfd = NULL;
#else /* def USE_STRM_INPUT */
sts = close( *pfd);
- *pfd = -1;
#endif /* def USE_STRM_INPUT [else] */
+ *pfd = ZIPFD_INVALID;
}
return sts;
if (G.zipfn_sgmnt == NULL)
{
- G.zipfn_sgmnt_size = strlen(G.zipfn)+ SGMNT_NAME_BOOST;
+ G.zipfn_sgmnt_size = (int)strlen(G.zipfn)+ SGMNT_NAME_BOOST;
if ((G.zipfn_sgmnt = izu_malloc(G.zipfn_sgmnt_size)) == NULL)
{
G.zipfn_sgmnt_size = -1;
{
if (G.zipfn_sgmnt_size < (int)strlen(G.zipfn)+ SGMNT_NAME_BOOST)
{
- G.zipfn_sgmnt_size = strlen(G.zipfn)+ SGMNT_NAME_BOOST;
+ G.zipfn_sgmnt_size = (int)strlen(G.zipfn)+ SGMNT_NAME_BOOST;
izu_free(G.zipfn_sgmnt);
if ((G.zipfn_sgmnt = izu_malloc(G.zipfn_sgmnt_size)) == NULL)
{
zipfd_sgmnt = G.zipfd_sgmnt;
/* Set the new segment file name. */
- if (set_zipfn_sgmnt_name(G.sgmnt_nr+ movement))
+ if (set_zipfn_sgmnt_name( __G__ G.sgmnt_nr+ movement))
return 1;
- if (open_infile( __G OIF_SEGMENT))
+ if (open_infile( __G__ OIF_SEGMENT))
{
/* TODO: ask for input and try it again */
/* error, load back old zipfn (it shouldn't be frequently) */
if (fd_is_valid(zipfd_sgmnt))
{
- set_zipfn_sgmnt_name(G.sgmnt_nr);
+ set_zipfn_sgmnt_name( __G__ G.sgmnt_nr);
}
else
{
/*if(fd_is_valid(G.zipfd_sgmnt)) {*/
if (G.ecrec.number_this_disk > 0)
{
- if ((open_infile_sgmnt( 1) != 0) ||
+ if ((open_infile_sgmnt( __G__ 1) != 0) ||
(G.incnt = read(G.zipfd, (char *)G.inbuf, INBUFSIZ)) == 0)
return (n-size); /* Return short retry size. */
} else
/* if(fd_is_valid(G.zipfd_sgmnt)) { */
if (G.ecrec.number_this_disk > 0)
{
- if ((open_infile_sgmnt( 1) != 0) ||
+ if ((open_infile_sgmnt( __G__ 1) != 0) ||
(G.incnt = read(G.zipfd, (char *)G.inbuf, INBUFSIZ)) == 0)
return EOF;
} else
if (request < 0)
{
Info(slide, 1, ((char *)slide, LoadFarStringSmall(SeekMsg),
- 2, G.zipfn, LoadFarString(ReportMsg)));
+ G.zipfn, 11, LoadFarString(ReportMsg)));
return PK_BADERR;
}
#endif /* 0 */ /* Pre-segment-support. */
{
if (G.sgmnt_size == 0)
{
- if ((G.sgmnt_nr == 0) || open_infile_sgmnt(-1))
+ if ((G.sgmnt_nr == 0) || open_infile_sgmnt( __G__ -1))
{
Info(slide, 1, ((char *)slide, LoadFarStringSmall(SeekMsg),
- 3, G.zipfn, LoadFarString(ReportMsg)));
+ G.zipfn, 12, LoadFarString(ReportMsg)));
return PK_BADERR;
}
/* Get the new segment size, and calculate the new offset.
request += G.sgmnt_size;
}
/* for same as actual disk (movement == 0) return 0 */
- if (open_infile_sgmnt(tmp_disk - G.sgmnt_nr))
+ if (open_infile_sgmnt( __G__ (tmp_disk- G.sgmnt_nr)))
{
Info(slide, 1, ((char *)slide, LoadFarStringSmall(SeekMsg),
- 4, G.zipfn, LoadFarString(ReportMsg)));
+ G.zipfn, 13, LoadFarString(ReportMsg)));
return PK_BADERR;
}
}
{
int tmp;
- if (open_infile_sgmnt(1))
+ if (open_infile_sgmnt( __G__ 1))
return PK_EOF; /*TODO: Add some new return code? */
/* append rest of data to buffer - it's important when we are only
G.mpause = UzpMorePause;
#endif
G.decr_passwd = UzpPassword;
+ G.zipfn_sgmnt = NULL; /* Archive segment name */
+ G.zipfn_sgmnt_size = 0; /* Archive segment size */
+ G.zipfd_sgmnt = ZIPFD_INVALID; /* Archive segment file descr/pntr */
#endif /* !FUNZIP */
G.query_fp = stdin; /* Change to terminal if streaming archive. */
# define ANS ((char *)(slide + (extent)(WSIZE>> 1)))
-static int check_auto_dest_dir()
+static int check_auto_dest_dir( __G)
+ __GDEF
{
int error_auto_dest = 0;
want_blank = 1;
/* Check auto destination directory. */
- if (check_auto_dest_dir() != 0)
+ if (check_auto_dest_dir( __G) != 0)
{
/* Bad auto dest dir. Don't process archive. */
error = IZ_BADDEST;
+++ /dev/null
-
- globals.h:
-
-char *zipfn_part; char *zipfn_sgmnt
-int zipfn_part_size; int zipfn_sgmnt_size
-zuvl_t actual_disknumber; zuvl_t sgmnt_nr
-ulg zipfd_part_size; z_uint4 sgmnt_size
- # ifdef USE_STRM_INPUT
-FILE *zipfd_part; FILE *zipfd_sgmnt
- # else
-int zipfd_part; int zipfd_sgmnt
-
-
-
- unzpriv.h
-
-# define CLOSE_PART_INFILE() CLOSE_INFILE_SGMNT()
- close_part_infile(__G) close_infile_sgmnt(__G)
-
-# define CLOSE_INFILE() CLOSE_INFILE()
- close_input_file(__G) close_infile(__G)
-
-# define CLOSE_PART_INFILE() CLOSE_INFILE_SGMNT()
- close_input_part_file(__G) close_infile_sgmnt(__G)
-
- Move [.zos]vmmvs.c:close_infile() code up to fileio.c.
- Move close_infile() prototype out of CMS_MVS block.
-
-
-int open_input_part_file OF((__GPRO)); open_infile_sgmnt
-
-void close_input_file OF((__GPRO)); close_infile
-void close_input_part_file OF((__GPRO)); close_infile_sgmnt
-
-int open_next_input_part_file OF((__GPRO__ int movement));
- open_infile_sgmnt
-
-int set_zipfn_part_name OF((__GPRO__ zuvl_t disknum));
- set_zipfn_sgmnt_name
-
-FILE *vmmvs_open_part_infile OF((__GPRO)); vmmvs_open_infile_sgmnt
-void close_part_infile OF((__GPRO)); vmmvs_close_infile_sgmnt ???
-
-open_input_file() open_infile
-
- extract.c
-
-close_segment()
-
-
- fileio.c
-
-Need CLOSE_INFILE
- CLOSE_INFILE_SGMNT
- OPEN_INFILE
- OPEN_INFILE_SGMNT
- SET_ZIPFN_SGMNT_NAME
# define zlseek(fd,o,w) zfseeko((FILE *)(fd),(o),(w))
# define close(fd) fclose((FILE *)(fd))
# define fd_is_valid(fd) (fd != NULL)
+# define ZIPFD_INVALID NULL
#else /* def USE_STRM_INPUT */
# ifdef _WIN32_WCE /* Really necessary? */
# define fd_is_valid(fd) (fd != -1)
# else /* def _WIN32_WCE [else] */
# define fd_is_valid(fd) (fd >= 0)
# endif /* def _WIN32_WCE [else] */
+# define ZIPFD_INVALID (-1)
#endif /* def USE_STRM_INPUT [else] */
/* The return value of the Info() "macro function" is never checked in
# endif
# ifdef BETA
-# define UZ_BETALEVEL "c17s BETA"
-# define UZ_VERSION_DATE "2015-03-18" /* Internal beta version. */
+# define UZ_BETALEVEL "c18 BETA"
+# define UZ_VERSION_DATE "2015-03-28" /* Internal beta version. */
# else
# define UZ_BETALEVEL ""
# define UZ_VERSION_DATE "2015-??-??" /* Official release version. */
# define UZ_PATCHLEVEL 0
-# define UZ_VER_STRING "6.10c17s" /* Keep in sync with Version numbers! */
+# define UZ_VER_STRING "6.10c18" /* Keep in sync with Version numbers! */
# ifndef IZ_COMPANY_NAME
# define IZ_COMPANY_NAME "Info-ZIP"
+++ /dev/null
-.!
-.! File: UNZIP_CLI.HELP
-.!
-.! Author: Hunter Goatley
-.!
-.! Date: 12 Jul 94 (orig. UNZIP.RNH, 23 Oct 91)
-.!
-.!----------------------------------------------------------------------
-.! Copyright (c) 1991-2014 Info-ZIP. All rights reserved.
-.!
-.! See the accompanying file LICENSE, version 2009-Jan-2 or later (the
-.! contents of which are also included in zip.h) for terms of use. If,
-.! for some reason, all these files are missing, the Info-ZIP license
-.! may also be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
-.!----------------------------------------------------------------------
-.!
-.! Description:
-.!
-.! TPU-processable source file to produce VMS on-line help for
-.! portable UnZip. Adapted from UNZIP.RNH, originally based on
-.! UNZIP.MAN (now UNZIP.TXT).
-.!
-.! To build:
-.! $ EDIT /TPU/NOSECTION/NODISPLAY/COMMAND=CVTHELP.TPU UNZIP_CLI.HELP
-.! $ RUNOFF /OUT=UNZIP.HLP UNZIP_CLI.RNH
-.! $ LIBR /HELP/INSERT libr UNZIP
-.!
-.! Modification history:
-.!
-.! 02-001 Hunter Goatley 12-JUL-1994 16:59
-.! Genesis.
-.! 02-002 Cave Newt 14-JUL-1994 11:36
-.! Fixed /*TEXT options and added/removed various options.
-.! 02-003 Cave Newt 28-JUL-1994 08:54
-.! Removed semicolons from comments and moved /ZIPINFO.
-.! 02-004 Christian Spieler 06-OCT-1995 02:02
-.! Changed to conform to revised .CLD definition.
-.! 02-005 Christian Spieler 06-FEB-1996 02:20
-.! Added description of /HELP qualifier.
-.! 02-006 Christian Spieler 12-MAY-1996 00:50
-.! Some clarifications/cleanups.
-.! 02-007 Christian Spieler 04-MAR-1997 22:25
-.! Added /[NO]CASE_INSENSITIVE to ZipInfo mode;
-.! documented the new /PASSWORD="decryption_key" option.
-.! 02-007 Christian Spieler 22-JUL-1997 22:37
-.! Formatting changes (prevent line wraps);
-.! added "Exit_Codes" subtopic (no version number change).
-.! 02-007 Christian Spieler 28-APR-2000 03:22
-.! Changed references to plaintext UnZip documentation file
-.! into UNZIP.TXT (no version number change).
-.! 02-007 Hunter Goatley 07-Feb-2001 15:43
-.! Reformatted qualifier item headers to show negated form of
-.! option qualifier on separate line (no version number change).
-.! 02-008 Christian Spieler 18-Apr-2001 22:29
-.! Added description for extended functionality of -b option.
-.! 02-009 Christian Spieler 10-Dec-2001 13:37
-.! Added description for new /TRAVERSE_DIRS option.
-.! 02-010 Steven Schweda 28-Jan-2005 16:16:36
-.! Added /TIMESTAMP (-T) qualifier.
-.! 02-010 Christian Spieler 29-Jan-2005 01:50
-.! Completed description of -T qualifier (also for UNIX style).
-.! 02-011 Steven Schweda 14-FEB-2005 20:04
-.! Added /DOT_VERSION (-Y) and /ODS2 (-2) qualifiers.
-.! 02-012 Steven Schweda 07-JUL-2006 01:30
-.! Added /TEXT = STMLF (-s) qualifier.
-.! 02-012 Christian Spieler 04-Mar-2007 14:39
-.! Changed -s qualifier into -S;
-.! updated documentation of UnZip's exit codes.
-.! 03-002 S. Schweda, C. Spieler 09-Jan-2008 03:35
-.! Added documentation of extended /RESTORE=(...) qualifier.
-.! 03-003 S. Schweda, C. Spieler 13-Sep-2008 20:00
-.! Added /EXISTING qualifier.
-.! 03-004 S. Schweda 30-JUL-2010 22:00
-.! Added /CASE_MATCH qualifier, replacing
-.! /[NO]CASE_INSENSITIVE (with something less confusing,
-.! and more like existing DCL).
-.! 03-005 S. Schweda 06-AUG-2011 15:00
-.! Added /LICENSE qualifier.
-.! 03-006 S. Schweda 11-AUG-2011 20:00
-.! Added /NAMES qualifier.
-.! 03-007 S. Schweda 14-OCT-2011 20:00
-.! Restored but deprecated /[NO]CASE_INSENSITIVE. Changed
-.! /CASE_MATCH to /MATCH = CASE, Added /MATCH =
-.! [NO]WILD_MATCH_SLASH) for "-W". Restored but deprecated
-.! /BRIEF and /FULL. Added Zip-like /VERBOSE=MORE as the
-.! replacement.
-.!
-.noflags;.lm3;.rm70
-.!------------------------------------------------------
-.indent-3
-1 UNZIP
-.br
-UnZip lists, tests, or extracts files from a ZIP archive (an archive
-format commonly used on many different systems). The default behavior
-(with no options) is to extract into the current directory (and
-subdirectories below it) all files from the specified ZIP archive. A
-companion program, Zip, creates ZIP archives.
-.sk
-Info-ZIP UnZip and Zip were intended to be compatible with archives
-created by PKWARE's PKZIP and PKUNZIP programs (originally for MS-DOS),
-but in many cases the program options or default behaviors
-differ. Nowadays, many other programs are available which work with ZIP
-archives.
-.sk
-This help file describes the VMS CLI edition of UnZip. A Unix-style
-command-line edition is also available, with a separate help file.
-.sk
-The VMS CLI edition of UnZip adds a command-line translator to the
-normal UnZip program. This translator transforms a set of VMS-style
-qualifiers and parameters into an equivalent set of Unix-style options
-and parameters, and then passes those transformed arguments to UnZip's
-standard Unix-style command-line processor. The documentation often
-shows the related Unix-style options in parentheses after a VMS-style
-qualifier. For example: /HELP (-h, -hh).
-.sk
-Format:
-.sk;.indent2
-UNZIP [/unzip_qualifiers] [file[.zip]] [member [,...]]
-.sk;.indent2
-UNZIP /ZIPINFO [/zipinfo_qualifiers] [file[.zip]] [member [,...]]
-.sk;.indent2
-ZIPINFO [/zipinfo_qualifiers] [file[.zip]] [member [,...]]
-.sk
-To display the basic built-in help, use the command:
-.sk;.indent2
- UNZIP /HELP
-.sk
-To display the extended built-in help, use the command:
-.sk;.indent2
- UNZIP /HELP=EXTENDED
-.sk
-The built-in help may be more current than this help file, especially
-between full product releases.
-.sk
-The VMS CLI edition of the program can also provide built-in help on the
-Unix-style command-line edition; just use the "-h" or "-hh" options.
-.!\f
-.!------------------------------------------------------
-.indent-3
-2 Command_Parameters
-.br
-.indent-2
-file[.zip]
-.sk
-.lm+3
-File path/name of a ZIP archive. A wildcard name may be used to specify
-multiple ZIP archives to be processed in one command. On VMS systems,
-any of the standard wildcards for a directory/file specification may be
-used: "...", "*", or "%" (or, since VMS V7.2, "?"). The default archive
-file specification is ".ZIP".
-.sk
-Note that a ".zip" or ".ZIP" file type on an archive is merely a
-convention, not a requirement. For example, a self-extracting ZIP
-archive named "fred" or "fred.exe" could be processed as if it were an
-ordinary archive; just specify the actual file name with its actual name
-ending (if any), whatever that may be.
-.lm-3
-.sk
-.indent-2
-member [,...]
-.sk
-.lm+3
-An optional list of archive members to be processed, separated by
-commas. If no member list is specified, then all archive members are
-processed. Unix-like ("globbing") wildcard patterns may be used to
-match multiple members:
-.sk
-.lm+4;.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 an exclamation point ("!")
- or a caret ("^") follows the left bracket, then the
- range of characters within the brackets is complemented.
- That is, anything except the characters inside the
- brackets is considered a match. To specify a literal
- left bracket, use the three-character sequence "[[]".
-.end literal;.lm-4
-.lm-3
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-2 Qualifiers_Primary_mode
-.br
-Qualifiers in this group specify the primary mode of operation of
-UnZip. Only one of these primary mode qualifiers may be specified.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /COMMENT (-z)
-.br
-Primary mode. Display only the archive comment.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /FRESHEN (-f)
-.br
-Primary Mode. Freshen existing files. That is, extract only those
-files that already exist on disk and that are newer than the disk
-copies. By default UnZip queries before overwriting, but the /EXISTING
-(-o) option may be used to suppress the queries.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /HELP (-h, -hh)
-.br
-/HELP [=NORMAL]
-.br
-/HELP=EXTENDED
-.sk
-Primary Mode. Display brief (roughly 24 lines) usage instructions
-(NORMAL, the default), or EXTENDED help (more complete usage
-instructions).
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /LICENSE (--license)
-.br
-Primary Mode. Display the Info-ZIP license.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /LIST (-l)
-.br
-Primary Mode. List archive members. By default, a brief format is
-used, which includes the following items: member name, uncompressed
-file size ("Length"), and modification date-time of the member. A
-summary is included at the end of the report, showing total size and
-count for all the members in the report. Specifying a member list
-limits the report to those members.
-.sk
-Adding /VERBOSE to an "UNZIP /LIST" command line adds the following
-items to the report: compression method, compressed size ("Size"),
-compression ratio, and 32-bit CRC.
-.sk
-In contrast to some other programs, UnZip does not include the
-12-byte encryption header in the compressed size values for a
-Traditionally encrypted member. Therefore, compressed size and
-compression ratio figures are independent of the member's encryption
-status and show the correct compression performance. (The complete size
-of the encrypted compressed data stream for archive members is reported
-by the more verbose ZipInfo reports. See ZipInfo.
-.sk
-If UnZip was built with OS2_EAS enabled, then the /LIST report also
-includes the sizes of stored OS/2 extended attributes (EAs) and OS/2
-access control lists (ACLs). In addition, the archive comment and
-individual member comments (if any) are displayed.
-.sk
-If a file was archived from a single-case file system (for example, the
-old MS-DOS FAT file system) and the /NAMES=DOWNCASE option was given,
-the filename is converted to lowercase and is shown prefixed with a
-caret (^).
-.sk
-Note: If only /VERBOSE is specified with an archive name, then
-UnZip acts as if "/LIST /VERBOSE" were specified, and a detailed listing
-is generated.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /PIPE (-p)
-.br
-Primary Mode. Extract files to stdout (pipe). Only the actual file
-data for the members are sent to stdout (no file names, or other
-information, as would be displayed with /SCREEN (-c), and the files are
-always extracted in binary format, just as they are stored (no
-conversions). See also /SCREEN.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /SCREEN (-c)
-.br
-Primary Mode. Extract files to stdout/screen. This option is similar
-to the /PIPE (-p) option except that the name of each file is displayed
-as it is extracted, and the /TEXT (-a) option is allowed, which can
-provide automatic ASCII-EBCDIC conversion, where appropriate. See also
-/PIPE.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /TEST (-t)
-.br
-Primary Mode. Test archive members. Testing means that each archive
-member is extracted in memory (expanding and decrypting, as needed), but
-not written to a file. The resulting CRC (cyclic redundancy check, an
-enhanced checksum) of the extracted data is then compared with the
-original file's stored CRC value, and an error message is emitted if a
-CRC mismatch is detected.
-.sk
-Adding /VERBOSE (-v) to /TEST adds some diagnostic information to the
-report for archive members with LZMA or PPMd compression.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /TIMESTAMP (-T)
-.br
-Primary Mode. Set the timestamp on the archive(s) to that of the newest
-file in each one. This corresponds to Zip's /APPEND /LATEST (-go)
-option, except that it can be used on wildcard archives (for example,
-"unzip -T *.zip"), and is much faster.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /UPDATE (-u)
-.br
-Primary mode. Update existing files and create new ones if
-needed. This mode performs the same function as the Freshen (/FRESHEN,
--f) mode, extracting (with query) files that are newer than those with
-the same name on disk, but it also extracts those files that do not
-already exist on disk.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /VERBOSE (-v)
-.br
-.sk
-Primary mode (when alone) or option. When used as a primary mode
-(alone), and no archive is specified, an "UNZIP /VERBOSE" command
-generates a report showing the program version, build options, and
-relevant envrironment variables.
-.sk
-When used with some other primary mode option, /VERBOSE can make output
-more verbose (detailed).
-.sk
-If no other primary mode is specified, and an archive is specified, then
-UnZip acts as if "/LIST /VERBOSE" were specified, and a detailed listing
-is generated. See Qualifiers_Primary_mode, particularly /LIST.
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-2 Qualifiers_Ordinary
-.br
-Qualifiers in this group modify the operation of UnZip.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /AUTO_DIRECTORY (-da)
-.br
-/NOAUTO_DIRECTORY (default)
-.br
-/AUTO_DIRECTORY[=REUSE]
-.sk
-Specifies a destination directory for extracted files which is derived
-from the base name of the archive. By default, files are extracted
-(and subdirectories created) in the current default directory. With
-/AUTO_DIRECTORY, UnZip automatically derives a subdirectory
-name from the archive name, creates that subdirectory, and extracts
-files into that subdirectory.
-.sk
-For example, with /AUTO_DIRECTORY, extraction of "fred.zip" is done into
-subdirectory "[.fred]" instead of into the current directory. (On
-non-VMS systems, subdirectory "fred".)
-.sk
-Using this option can help to avoid cluttering the current directory
-with files extracted from an archive whose structure does not include a
-top-level directory.
-.sk
-If -da is specified as a default option in an environment
-variable, it can be overridden by either a /NOAUTO_DIRECTORY qualifier
-or an explicit /DIRECTORY=dest_dir qualifier. See also /DIRECTORY.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /BINARY (-b, -bb)
-.br
-/BINARY[=keyword]
-.br
-.literal
-/NOBINARY (Default.)
-.end literal
-.sk
-Selects the file record format used when extracting binary files.
-.sk
-The optional keywords are:
-.sk
-.lm+4;.literal
-ALL Extract all files with fixed-length, 512-byte record
- format. (-bb)
-AUTO Extract binary files with fixed-length, 512-byte
- record format. (Default value keyword: "/BINARY" is
- equivalent to "/BINARY=AUTO".) (-b)
-NONE Same as /NOBINARY. Extract binary files with
- Stream_LF record format. (Default condition.)
-.end literal;.lm-4
-.sk
-Zip (or a similar archiving program) identifies files as "binary"
-or "text" when they are archived. (A short-format ZipInfo report
-denotes a binary file with a "b", and a text file with a "t".)
-.! Zip's
-.! identification of text files may not be perfect, so UnZip prints
-.! "[binary]" or "[text]" as a visual check for each file it extracts with
-.! /BINARY. /BINARY=ALL forces all files to be extracted (and converted)
-.! as binary, regardless of the supposed file type.
-.sk
-[VMS] On VMS, for archives with VMS attribute information (made with
-"zip -V", "ZIP /VMS"), files are always created with their original
-record formats. For archives without VMS attribute information (not
-made with "zip -V", "ZIP /VMS"), files are normally created with
-Stream_LF record format. With /BINARY[=AUTO], binary files are created
-with fixed-length, 512-byte record format. With /BINARY=ALL, all files
-are created with fixed-length, 512-byte record format. When extracting
-to standard output (/PIPE or /SCREEN in effect), the default conversion
-of text record delimiters is disabled for binary files (with
-/BINARY[=AUTO]), or for all files (with /BINARY=ALL).
-.sk
-/BINARY may conflict or interact with /TEXT. A combination of
-/BINARY[=AUTO] and /TEXT[=AUTO] is allowed. (See /TEXT.)
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /BRIEF
-.br
-Deprecated. Ignored. A no-op place-holder, originally intended as an
-opposite of /FULL (also deprecated). See Qualifiers_Primary_mode,
-particularly /LIST and /VERBOSE.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /CASE_INSENSITIVE (-C)
-.br
-/CASE_INSENSITIVE
-.br
-/NOCASE_INSENSITIVE (default)
-.sk
-Deprecated. Use /MATCH=CASE.
-.sk
-With /CASE_INSENSITIVE, match member names case-blindly.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /DIRECTORY (-d)
-.br
-/DIRECTORY=dest_dir
-.sk
-Specifies a destination directory for extracted files. By default,
-files are extracted (and subdirectories created) in the current default
-directory. With "/DIRECTORY=dest_dir", extraction is done into the
-specified directory, instead.
-.sk
-[VMS] On VMS, only a VMS-style device:[directory] specification is
-permitted.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /DOT_VERSION (-Y)
-.br
-[VMS] Treat archive member name endings of ".nnn" (where "nnn" is a
-decimal number) as if they were VMS version numbers (";nnn"). (The
-default is to treat them as file types.) For example:
-.sk
-.lm+4;.literal
-"a.b.3" -> "a.b;3"
-.end literal;.lm-4
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /EXCLUDE (-x)
-.br
-/EXCLUDE=(member [,...])
-.sk
-An optional list of archive members to be excluded from
-processing. Because wildcard characters normally match "/" directory
-separators (for exceptions see /MATCH=[NO]WILD_MATCH_SLASH (-W)), this
-option may be used to exclude any files that are in subdirectories. For
-example,
-.lm+4;.literal
-UNZIP foo *.[ch] /EXCLUDE = */*
-.end literal;.lm-4
-would extract all C source files (*.c, *.h) in the main directory, but
-none in any subdirectories. Without the /EXCLUDE option, all C source
-files in all directories within the archive would be extracted.
-.sk
-Note that archive members are specified using the Unix-style names which
-are used in ZIP archives, not VMS-style names.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /EXISTING (-n, -o)
-.br
-/EXISTING[=keyword]
-.br
-.sk
-Specifies the action when extracting files, and a file already exists.
-.sk
-The optional keywords are:
-.sk
-.lm+4;.literal
-NEW_VERSION Create a new version of an existing file. (-o)
-OVERWRITE Overwrite an existing file. (-oo)
-NOEXTRACT Do not extract. Leave an existing file intact. (-n)
-.end literal;.lm-4
-.sk
-By default, UnZip queries the user before extracting any file that
-already exists.
-.sk
-[Non-VMS] On non-VMS systems, the user may choose to overwrite only the
-current file, overwrite all files, skip extraction of the current file,
-skip extraction of all existing files, or rename the current file
-(choose a new name for the extracted file).
-.sk
-[VMS] On VMS, the usual query choices are to create a new version of an
-existing file, to skip extraction, or to rename the current file. In
-the case where an archive member name includes a version number, and
-/VERSION (-V, "retain VMS file version numbers") is in effect, then an
-additional query choice is offered: to overwrite the existing file.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /FULL (-v)
-.br
-/FULL
-.br
-/FULL=DIAGNOSTICS
-.sk
-Deprecated. Adds detail to a /LIST report. See
-Qualifiers_Primary_mode, particularly /LIST and /VERBOSE, and
-Qualifiers_Ordinary, particularly /VERBOSE.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /JAR (--jar)
-.br
-Treat archive(s) as Java JAR. Over-simplification in Java JAR archives
-can cause UnZip to transform UTF-8 file names according to
-inappropriate (MS-DOS) rules, yielding corrupt names on extracted files
-(typically those with ASCII codes 128-255). Archives containing a Java
-"CAFE" extra field should be detected automatically, and handled
-correctly, but not all JAR archives include that extra
-field. Specifying /JAR tells UnZip to expect UTF-8 file names,
-regardless of whether the archive contains a "CAFE" extra field.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /JUNK_DIRS (-j)
-.literal
-/NOJUNK_DIRS (Default.)
-.end literal
-/JUNK_DIRS[=depth]
-.sk
-Junk directories on extracted files. With /JUNK_DIRS, all directory
-information is stripped from an archive member name, so all files are
-extracted into the destination directory. (See also /DIRECTORY.)
-.sk
-If a depth ("=depth", where "depth" is a positive integer) is specified,
-then that number of directory levels will be stripped from an archive
-member name. For example, an archive member like "a/b/c/d/ee.txt" would
-normally be extracted as "[.a.b.c.d]ee.txt". With /JUNK_DIRS, it would
-be extracted as "ee.txt". With /JUNK_DIRS=2, the first two directory
-levels would be stripped, so it would be extracted as "[.c.d]ee.txt".
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /LOWERCASE (-L)
-.br
-/[NO]LOWERCASE
-.sk
-Deprecated. Use /NAMES=[NO]DOWNCASE.
-.sk
-/LOWERCASE: Convert to lowercase any filename originating on an
-uppercase-only operating system or file system.
-.sk
-/NOLOWERCASE: Do not convert to lowercase any filename originating on an
-uppercase-only operating system or file system.
-.sk
-See also /UPPERCASE, which is also deprecated.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /MATCH (-C, -W)
-.br
-/MATCH=(keyword, ...)
-.sk
-Specifies name-matching behavior for names in the member list and
-the /EXCLUDE excluded-member list on the command line.
-.sk
-The optional keywords and values are:
-.sk
-.lm+4;.literal
-CASE=BLIND Name matching is case-insensitive. (-C)
-CASE=SENSITIVE Name matching is case-sensitive. (Default.)
-.end literal;.lm-4
-.sk
-By default, case-sensitive matching is done. For example, specifying
-"makefile" on the command line will match only "makefile" in
-the archive, not "Makefile" or "MAKEFILE". On many systems, the local
-file system is case-insensitive, so case-insensitive name matching would
-be more natural. With /MATCH=CASE=BLIND, "makefile" would match
-"makefile", "Makefile", or "MAKEFILE".
-.sk
-/MATCH does not affect the search for the ZIP archive file(s), nor the
-matching of archive members to existing files on the extraction
-path. So, on a case-sensitive file system, UnZip will never try to
-overwrite a file "FOO" when extracting a member named "foo"!
-.sk
-[WILD_STOP_AT_DIR] If the C macro WILD_STOP_AT_DIR is defined at build
-time, then an additional keyword is allowed:
-.sk
-.lm+4;.literal
-NOWILD_MATCH_SLASH Wildcards stop at directory slash. (-W)
-WILD_MATCH_SLASH Wildcards match directory slash. (Default.)
-.end literal;.lm-4
-.sk
-By default, the wildcard characters "?" (single-character wildcard) and
-"*" (multi-character wildcard) match any character in a member
-path/name. /MATCH=NOWILD_MATCH_SLASH (-W) modifies the pattern-matching
-behavior for archive members so that both "?" (single-character
-wildcard) and "*" (multi-character wildcard) do not match the directory
-separator character "/". (The two-character sequence "**" acts as a
-multi-character wildcard that includes the directory separator in its
-matched characters.) For example, with /MATCH=NOWILD_MATCH_SLASH:
-.sk
-.lm+4;.literal
-"*.c" matches "foo.c" but not "mydir/foo.c"
-"**.c" matches both "foo.c" and "mydir/foo.c"
-"*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c"
-"??*/*" matches "ab/foo" and "abc/foo"
- but not "a/foo" or "a/b/foo"
-.end literal;.lm-4
-.sk
-This modified behavior is equivalent to the pattern matching style used
-by the shells of some of \fIUnZip\fP's supported target OSs (one example
-is Acorn RISC OS). This option may not be available on systems where
-the Zip archive's internal directory separator character "/" is allowed
-as regular character in native operating system filenames.
-.sk
-[non-VMS] (Currently, UnZip uses the same pattern matching rules for
-both wildcard archive file name specifications and archive member
-selection patterns on most system types. For systems allowing "/" as
-regular filename character, the -W option would not work as expected on
-a wildcard file name specification.)
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /NAMES (-0 -2, -L, -s)
-.br
-/NAMES
-.br
-/NAMES=(keyword, ...)
-.sk
-Selects name transformations during extraction. The keywords are:
-.sk
-.lm+4;.literal
-[NO]CHAR_SET CHAR_SET: Use CP850 character-set mapping on names
- of archive members which originated on a FAT or
- NTFS file system. (Default condition.)
- NOCHAR_SET: Do not map these archive member names.
-DOWNCASE Convert filenames from all-uppercase operating
- systems to lowercase. (-L)
-DOWNCASE=ALL Convert all filenames to lowercase. (-LL)
-ODS2 Restrict names to ODS2 conventions, regardless
- of the destination file system. (Invalid
- character -> "_".) (-2)
-[NO]SPACES SPACES: Permit space characters in (ODS5) names.
- (Default condition.)
- NOSPACES: Change spaces to underscores. (-s)
-.end literal;.lm-4
-.sk
-The default is to use ODS5-compatible file names (including spaces) when
-the destination file system is ODS5, and to convert the names to
-ODS2-compatible names when the destination file system is ODS2.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /OVERWRITE (-n, -o)
-.br
-/[NO]OVERWRITE
-.sk
-Deprecated. Use /EXISTING.
-.sk
-/OVERWRITE is equivalent to /EXISTING=NEW_VERSION.
-.br
-/NOOVERWRITE is equivalent to /EXISTING=NOEXTRACT.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /PAGE (-M)
-.br
-Pipe all output through an internal pager similar to the Unix more(1)
-command. At the end of a screenful of output, UnZip pauses with a
-"--More--" prompt; the next screenful may be viewed by pressing the
-Enter (Return) key or the space bar. UnZip can be terminated by
-pressing the "Q" key and, on some systems, the Enter/Return key. Unlike
-Unix more(1), there is no forward-searching or editing
-capability. Also, UnZip doesn't notice if long lines wrap at the edge
-of the screen, effectively resulting in the printing of two or more
-lines and the likelihood that some text will scroll off the top of the
-screen before being viewed. If the actual number of lines on the screen
-can not be determined, 24 lines will be assumed.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /PASSWORD (-P)
-.br
-/PASSWORD=password
-.sk
-Use "password" to decrypt encrypted archive members (if any). THIS IS
-INSECURE! Many multi-user operating systems provide ways for any user
-to see the current command line of any other user. Even on stand-alone
-systems, there is always the threat of over-the-shoulder
-peeking. Storing the plaintext password as part of a command line in an
-automated script can be even less secure, Whenever possible, use the
-non-echoing, interactive prompt to enter passwords. Where security is
-truly important, use a strong encryption method, such as AES, instead of
-the relatively weak encryption provided by Traditional ZIP
-encryption. Or, use an external encryption program, such as GnuPG,
-before archiving the file. (Note that Zip will probably not be able to
-do significant compression on a file which has already been encrypted.)
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /QUIET (-q, -qq)
-.br
-/QUIET[=SUPER]
-.sk
-Perform operations quietly. (/QUIET=SUPER: even more quietly).
-.sk
-By default, UnZip prints the names of the files it's extracting or
-testing, the extraction methods, any member or archive comments that may
-be stored in the archive, and possibly a summary when finished with each
-archive. The /QUIET[=SUPER] options suppress the printing of some or
-all of these messages.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /RESTORE (-D, -k, -ka, -X)
-.br
-/RESTORE[=(keyword, ...)]
-.sk
-Selects restoration options for some meta-data. The optional keywords
-are:
-.sk
-.lm+4;.literal
-ACL Restore file ACL settings. (-ka)
-OWNER Restore file owner/UIC settings. (-X)
-PROTECTION = LIMITED Restore file UIC-based (SOGW) protection
- settings, respecting the current default
- protection. (Default.)
-PROTECTION = ORIGINAL Restore file UIC-based (SOGW) protection
- settings, ignoring the current default
- protection. (-k)
-NOPROTECTION Do not restore file UIC-based (SOGW) protection settings.
- The current default protection is used. (-k-)
-NODATE Do not restore any timestamps.
-DATE=ALL Restore timestamps for all extracted entries,
- files and directories.
-DATE=FILES Restore timestamps for extracted files. (Default.)
-.end literal;.lm-4
-.sk
-By default, on VMS, UnZip restores the original date-time attributes for
-files, but not for directories. This agrees with the behavior of VMS
-BACKUP (and UnZip versions before 5.52 where the capability to restore
-directory timestamps was added).
-.sk
-For compatibility with UnZip versions before 6.0 (5.53), the following
-deprecated short forms are still accepted:
-.sk
-.lm+4;.literal
-Deprecated form: Modern form:
-/RESTORE /RESTORE=PROTECTION
-/NORESTORE /RESTORE=NOPROTECTION
-.end literal;.lm-4
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /TEXT (-a, -aa, -S)
-.br
-.sk
-/TEXT[=(keyword, ...)]
-.br
-.literal
-/NOTEXT (Default.)
-.end literal
-.sk
-The optional keywords are:
-.sk
-.lm+4;.literal
-ALL Extract all files with variable-length record format.
- Adjust line endings to local standard, and convert
- EBCDIC to ASCII, as needed. (-aa)
-AUTO Extract text files with variable-length record format.
- Adjust line endings to local standard, and convert
- EBCDIC to ASCII, as needed. (Default value keyword:
- "/TEXT" is equivalent to "/TEXT=AUTO".) (-a)
-NONE Same as /NOTEXT. Extract text files with Stream_LF
- record format without conversions. (Default
- condition.)
-STMLF Use Stream_LF record format for text files (instead of
- variable-length record format) when ALL or AUTO is in
- effect. Adjust line endings to local standard, and
- convert EBCDIC to ASCII, as needed. (-S)
-.end literal;.lm-4
-.sk
-Selects the file record format, character encoding, and line-ending type
-used when extracting text files.
-.sk
-Zip (or a similar archiving program) identifies files as "binary"
-or "text" when they are archived. (A short-format ZipInfo report
-denotes a binary file with a "b", and a text file with a "t".)
-Zip's identification of text files may not be perfect, so UnZip prints
-"[binary]" or "[text]" as a visual check for each file it extracts with
-/TEXT. /TEXT=ALL forces all files to be extracted (and converted) as
-text, regardless of the supposed file type.
-.sk
-[VMS] On VMS, for archives with VMS attribute information (made with
-"zip -V", "ZIP /VMS"), files are always created with their original
-record formats. For archives without VMS attribute information (not made
-with "zip -V", "ZIP /VMS"), all files are normally created with
-Stream_LF record format. With /TEXT[=AUTO], text files are normally
-created with variable-length record format, but adding STMLF gives them
-Stream_LF record format. Additionally, line endings (CR, LF, CR+LF,
-...) are adjusted to the local standard, and EBCDIC is converted to
-ASCII. With /TEXT=ALL, all files are treated as text files, and
-processed as described above.
-.sk
-See also /BINARY.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /TRAVERSE_DIRS (-:)
-.literal
-/[NO]TRAVERSE_DIRS (Default: /NOTRAVERSE_DIRS.)
-.end literal
-.sk
-Allows UnZip to extract archive members into locations outside of the
-current extraction destination directory (and its subdirectories).
-.sk
-For security reasons, UnZip normally removes "parent directory"
-path components ("../") from the path names of archive members as they
-are extracted. This safety feature (new for version 5.50) prevents
-UnZip from accidentally writing files to directories outside
-the current destination directory tree. /TRAVERSE_DIRS sets
-UnZip back to its previous, more liberal behavior, allowing
-exact extraction of archives that use "../" path components to create
-multiple directory trees at or above the level of the destination
-directory.
-.sk
-Use this option with extreme caution.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /UPPERCASE (-L)
-.br
-/[NO]UPPERCASE
-.sk
-Deprecated. Use /NAMES=[NO]DOWNCASE.
-.sk
-/UPPERCASE: Do not convert to lowercase any filename originating on
-an uppercase-only operating system or file system.
-.sk
-/NOUPPERCASE: Convert to lowercase any filename originating on an
-uppercase-only operating system or file system.
-.sk
-See also /LOWERCASE, which is also deprecated.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /VERBOSE (-v)
-.br
-/VERBOSE[=(keyword, ...)]
-.sk
-The optional keywords are:
-.sk
-.lm+4;.literal
-NORMAL Make a report more detailed/verbose. (Default value
- keyword: "/VERBOSE" is equivalent to
- "/VERBOSE=NORMAL".) (-v)
-MORE Enable special developer I/O diagnostics. See below.
- (-vv)
-COMMAND Enable special developer CLI diagnostics. See below.
-.end literal;.lm-4
-.sk
-MORE and NORMAL may not be specified together. (MORE implies NORMAL.)
-.sk
-When used with some primary mode options, /VERBOSE can make output more
-detailed/verbose. See also Qualifiers_Primary_mode, particularly /LIST.
-.sk
-If no other primary mode is specified, and an archive is specified, then
-UnZip acts as if "/LIST /VERBOSE" were specified, and a detailed listing
-is generated. See Qualifiers_Primary_mode, particularly /LIST and
-/VERBOSE.
-.sk
-/VERBOSE=MORE ("-vv") enables some VMS-specific I/O diagnostic messages,
-and is intended for use in program development, not in normal use.
-.sk
-/VERBOSE=COMMAND causes UnZip to show the translated Unix-style
-command-line argument vector before processing it, and is intended for
-use in program development, not in normal use. /VERBOSE=COMMAND has no
-Unix-style equivalent.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /VERSION (-V)
-.br
-[Non-CMS-MVS] Retain VMS file version numbers. VMS files can be stored
-with a version number, in the format "file.type;##", where "##" is a
-decimal number. By default the ";##" version numbers are stripped, but
-this option allows them to be retained. (On file systems that limit
-filenames to particularly short lengths, the version numbers may be
-truncated or stripped regardless of this option.)
-.sk
-[Non-VMS] Note that before UnZip version 6.10, on a non-VMS system, a
-file with a name like "fred;123" would, by default, be extracted as
-"fred", even if the file did not originate on a VMS system (so that
-";123" was probably not really a VMS version number). Beginning with
-UnZip version 6.10, the default behavior is to strip VMS version numbers
-only from files which were archived on a VMS system. To restore the old
-behavior, and always strip apparent VMS version numbers, explicitly
-negate the option: "-V-".
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /ZIPINFO (-Z)
-.br
-ZipInfo mode. With /ZIPINFO, the program runs in ZipInfo mode, which is
-used to display information about an archive and its members. Remaining
-options are interpreted as ZipInfo options. If used, /ZIPINFO must be
-the first qualifier on the command line. See ZipInfo_mode.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-2 Environment_Options
-.br
-UnZip's default behavior may be modified by placing Unix-style
-command-line options in an environment variable. (The VMS CLI
-translator acts only on the command line itself, not on the
-environment variables.) This can be done with any option, but it is
-probably most useful options like -a (/TEXT, auto-convert text files),
--L (/NAMES, downcase file names from systems with all uppercase file
-names), -C (/MATCH=CASE=BLIND, use case-insensitive name matching), -q
-(/QUIET, quiet), -o (/EXISTING, always overwrite), or -n (/EXISTING,
-never overwrite).
-.sk
-For UnZip, the environment variable name on VMS is UNZIP_OPTS
-(non-VMS: UNZIP). The name on VMS is different to avoid conflict with
-a foreign-command DCL symbol, UNZIP. For compatibility with Zip, if
-UNZIP_OPTS is not defined, then UnZip will use UNZIPOPT the same way.
-.sk
-For ZipInfo ("UNZIP /ZIPINFO"), the environment variable name on VMS is
-ZIPINFO_OPTS (non-VMS: ZIPINFO). For compatibility with Zip, if
-ZIPINFO_OPTS is not defined, then ZipInfo will use ZIPINFOOPT the same
-way.
-.br
-For example, to make UnZip act as quietly as possible, only reporting
-errors, one could use commands like the following (with quotation to
-preserve lower case in DCL):
-.sk
-.lm+4;.literal
-define UNZIP_OPTS "-q -q" ! Logical name, or
-UNZIP_OPTS = "-q -q" ! DCL symbol. (Either works.)
-.end literal;.lm-4
-.sk
-Environment options are treated the same as any other Unix-style
-command-line options, except that they are effectively the first options
-on the command line. Generally, the VMS CLI translator will override an
-environment option if an explicit corresponding VMS-style qualifier is
-specified.
-.sk
-The examples show short (one-character) options, but long ("--")
-options are also allowed.
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-2 Encryption_Decryption
-.br
-Zip and UnZip have long supported a relatively weak encryption method,
-which we call Traditional ZIP encryption. The source code for
-Traditional encryption is included in the source kits, and support for
-Traditional encryption is enabled by default. (Build-time C macro:
-CRYPT_TRAD.)
-.sk
-Beginning with UnZip version 6.10 and Zip version 3.1,
-these programs also offer a stronger, Advanced Encryption Standard (AES)
-encryption method, which we call AES WinZip/Gladman (AES_WG)
-encryption. (The encryption code was supplied by Brian Gladman, and the
-archive format is intended to be compatible with that used by the
-WinZip program. WinZip is a registered trademark of WinZip
-International LLC.) The source code for AES_WG encryption is
-distributed in a separate kit (for export control reasons), and support
-for AES_WG encryption must be enabled explicitly at build
-time. (Build-time C macro: CRYPT_AES_WG.) See the INSTALL file in the
-source kit for details on how to enable AES_WG encryption (or how to
-disable Traditional encryption).
-.sk
-For details on the WinZip AES scheme, see:
-.lm+4;.literal
-http://www.winzip.com/aes_info.htm
-.end literal;.lm-4
-.sk
-For information on the separate AES_WG source kit, see:
-.lm+4;.literal
-ftp://ftp.info-zip.org/pub/infozip/crypt/
-ftp://ftp.info-zip.org/pub/infozip/crypt/README_AES_WG.txt
-.end literal;.lm-4
-.sk
-Normally, encryption passwords are supplied by the user interactively
-when requested by the program. See /PASSWORD for a (less secure)
-method of specifying a password on the command line.
-.sk
-With Traditional encryption, when decrypting, a password will be checked
-against header data, and used if it appears to be correct. The correct
-password will always check out against the header data, but there is a
-1-in-256 chance that an incorrect password will as well. (This is a
-security feature of the PKWARE archive format; it helps prevent
-brute-force attacks that might otherwise gain a large speed advantage by
-testing only the header.) In the case that an incorrect password is
-given but it passes the header test anyway, either an incorrect CRC will
-be generated for the extracted data or else UnZip will fail during
-the extraction because the "decrypted" bytes do not constitute a valid
-compressed data stream.
-.sk
-If the first password fails the header check on some file, UnZip
-will prompt for another password, and so on until all files are
-extracted. If a password is not known, entering a null password (that
-is, just a carriage return or "Enter") is taken as a signal to skip all
-further prompting. Only unencrypted files in the archive(s) will
-thereafter be extracted. (The situation is actually a little more
-complicated. Some old versions of Zip and ZipCloak allowed
-null passwords, so UnZip checks each encrypted file to see if the
-null password works. This may result in "false positives" and
-extraction errors, as noted above.)
-.sk
-Archives encrypted with 8-bit-character passwords (for example,
-passwords with accented European characters) may not be portable across
-systems or to other archivers. This problem stems from the use of
-multiple encoding methods for such characters, including Latin-1 (ISO
-8859-1) and OEM code page 850. DOS PKZIP 2.04g uses the OEM code
-page; Windows PKZIP 2.50 uses Latin-1 (and is therefore
-incompatible with DOS PKZIP; Info-ZIP uses the OEM code page on
-DOS, OS/2 and Win3.x ports but ISO coding (Latin-1 etc.) everywhere
-else; and Nico Mak's WinZip 6.x does not allow 8-bit-character
-passwords at all. UnZip 5.3 (or newer) attempts to use the
-default character set first (e.g., Latin-1), followed by the alternate
-one (e.g., OEM code page) to test passwords. On EBCDIC systems, if both
-of these fail, EBCDIC encoding will be tested as a last resort. (EBCDIC
-is not tested on non-EBCDIC systems, because there are no known
-archivers that encrypt using EBCDIC encoding.) ISO character encodings
-other than Latin-1 are not supported. The new addition of (partial)
-Unicode (UTF-8) support in UnZip 6.0 has not yet been adapted to
-the encryption password handling in UnZip. On systems that use
-UTF-8 as native character encoding, UnZip simply tries decryption
-with the native UTF-8 encoded password; the built-in attempts to check
-the password in translated encoding have not yet been adapted for UTF-8
-support and will consequently fail.
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-2 Examples
-.br
-To use UnZip to extract all members of the archive letters.zip into the
-current directory and subdirectories below it, creating any
-subdirectories as necessary:
-.sk
-.lm+4;.literal
-unzip letters
-.end literal;.lm-4
-.sk
-To extract all members of letters.zip into the current directory only:
-.sk
-.lm+4;.literal
-unzip /junk_dirs letters
-.end literal;.lm-4
-.sk
-To test letters.zip, printing only a summary message indicating
-whether the archive is OK or not:
-.sk
-.lm+4;.literal
-unzip /test /quiet letters
-.end literal;.lm-4
-.sk
-To test all ".zip" archives in the current directory, printing
-only the summaries:
-.sk
-.lm+4;.literal
-unzip /test /quiet *.zip
-.end literal;.lm-4
-.sk
-(On a Unix system, the wildcard member name would typically need to be
-quoted to keep a a Unix shell from expanding ("globbing") it. This is
-not necessary on VMS. However, a name with a slash ("/") character,
-such as "*/zip*.*", must be quoted. Otherwise, DCL may interpret the
-slash as introducing a qualifier, causing unexpected behavior or an
-"%CLI-W-IVQUAL, unrecognized qualifier" error.)
-.sk
-The following command extracts to standard output all members of
-letters.zip whose names end in ".tex", auto-converting to the
-local end-of-line convention, in Stream_LF record format, and piping the
-output into TYPE /PAGE:
-.sk
-.lm+4;.literal
-pipe unzip /screen /text=(auto, stmlf) letters *.tex | \
- type /page sys$input
-.end literal;.lm-4
-.sk
-To extract from source.zip all Fortran and C source files (*.f,
-*.c, *.h) and Makefile into the SYS$SCRATCH directory:
-.sk
-.lm+4;.literal
-unzip source.zip *.[fch] Makefile /directory = sys$scratch
-.end literal;.lm-4
-.sk
-To extract all FORTRAN and C source files, regardless of case (for
-example, both *.c and *.C, and any makefile, Makefile, MAKEFILE or
-similar):
-.sk
-.lm+4;.literal
-unzip -C source.zip *.[fch] makefile /directory = sys$scratch
-.end literal;.lm-4
-.sk
-The following command extracts only newer versions of the files already
-in the current directory, without querying. (Note: Be careful of
-extracting in one timezone an archive created in another. ZIP archives
-created by Zip versions before 2.1 contain no timezone
-information, and a "newer" file from an eastern timezone may, in fact,
-be older):
-.sk
-.lm+4;.literal
-unzip /freshen /existing=new_version sources
-.end literal;.lm-4
-.sk
-To extract newer versions of the files already in the current directory
-and to create any files not already there (same caveat as previous
-example):
-.sk
-.lm+4;.literal
-unzip /update /existing=new_version sources
-.end literal;.lm-4
-.sk
-To display a configuration report showing the program version, the OS
-and compiler used to build it, a list of optional features enabled at
-build time, and the values of all the relevant environment variables:
-.sk
-.lm+4;.literal
-unzip /verbose
-.end literal;.lm-4
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-2 Exit_Status
-.br
-UnZip's exit status approximates the exit codes defined by
-PKWARE. On VMS, UnZip's UNIX-style exit values are translated into
-VMS-style status codes with facility code 1954 = %x7A2, and with the
-inhibit-message (%x10000000) and facility-specific (%x00008000) bits
-set:
-.sk
-.lm+4;.literal
-%x17A28001 normal exit
-%x17A28000 + 16*UnZip_error_code warnings
-%x17A28002 + 16*UnZip_error_code normal errors
-%x17A28004 + 16*UnZip_error_code fatal errors
-.end literal;.lm-4
-.sk
-Note that multiplying the UNIX-style UnZip error code by 16 places it
-conveniently in the hexadecimal representation of the VMS exit code,
-"__" in %x17A28__s, where "s" is the severity code. For example, a
-missing archive might cause UnZip error code 9, which would be
-transformed into the VMS exit status %X17A28092.
-.sk
-The UnZip VMS exit codes include severity values which approximate those
-defined by PKWARE, as shown in the following table:
-.sk
-.literal
- VMS UnZip
- severity err code Error description
-----------+----------+----------------------------------------------
- Success 0 Normal. No errors or warnings detected.
- Warning 1 One or more warnings were encountered, but
- processing completed successfully. This
- includes archives where one or more (but not
- all) files were skipped because of an
- unsupported compression or encryption method,
- or a bad encryption password.
- Error 2 Error in the archive format. Processing may
- or may not have completed successfully.
- Fatal 3 Severe error in the archive format.
- Processing probably failed immediately.
- Fatal 4 Memory allocation failed in program
- initialization.
- Fatal 5 Memory allocation or terminal I/O failed in
- password processing.
- Fatal 6 Memory allocation failed while decompressing
- to disk.
- Fatal 7 Memory allocation failed while decompressing
- in memory.
- Fatal 8 Memory allocation failed. (Currently not
- used.)
- Error 9 Specified archive files were not found.
- Error 10 Invalid command-line options or parameters.
- Error 11 No matching files were found.
- Fatal 50 Disk (file system) filled during extraction.
- Fatal 51 Unexpected end-of-file while reading the
- archive.
- Error 80 User interrupt (Ctrl/C).
- Error 81 No files were processed, because of
- unsupported compression or encryption
- methods.
- Error 82 No files were processed, because of bad
- encryption password(s).
- Fatal 83 Large-file archive could not be processed by
- this small-file program.
-.end literal
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-2 Bugs
-.br
-Multi-part archives are not yet supported, except in conjunction with
-Zip. (All parts must be concatenated together in order, and then
-"zip -F" (for Zip 2.x) or "zip -FF" (for Zip 3.x) must be
-performed on the concatenated archive in order to "fix" it. Also,
-zip 3.0 and later can combine multi-part (split) archives into a
-combined single-file archive using "zip -s- inarchive -O
-outarchive". See the zip manual page for more information.) This may
-be corrected in the next major release.
-.sk
-Archives read from standard input are not yet supported, except with
-UnZip (and then only the first member of the archive can be extracted).
-.sk
-Archives encrypted with 8-bit-character passwords (such as passwords
-with accented European characters) may not be portable across systems
-and/or other archivers. See also Encryption_Decryption.
-.sk
-UnZip's -M ("--more") option tries to take into account
-automatic wrapping of long lines. However, the code may fail to detect
-the correct wrapping locations. First, TAB characters (and similar
-control sequences) are not taken into account, they are handled as
-ordinary printable characters. Second, depending on the actual system
-type, UnZip may not detect the true terminal/emulator geometry,
-but instead may rely on "commonly used" default dimensions. The correct
-handling of tabs would require the implementation of a query for the
-actual tab setup on the output terminal/emulator.
-.sk
-[Unix] Unix special files such as FIFO buffers (named pipes), block
-devices and character devices are not restored even if they are somehow
-represented in the archive, nor are hard-linked files
-relinked. Basically, the only file types restored by UnZip are
-regular files, directories, and symbolic (soft) links.
-.sk
-[OS/2] Extended attributes for existing directories are only updated if
-the -o ("--overwrite") option is given. This is a limitation of the
-operating system; because directories only have a creation time
-associated with them, UnZip has no way to determine whether the stored
-attributes are newer or older than those on disk. In practice this may
-mean a two-pass approach is required: first unpack the archive normally
-(with or without freshening/updating existing files), then overwrite
-just the directory entries (for example, "unzip -o foo */").
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-2 URL
-.br
-The Info-ZIP main Web page is:
-.lm+4;.literal
-http://www.info-zip.org/
-.end literal;.lm-4
-.sk
-FTP access is available, too:
-.lm+4;.literal
-ftp://ftp.info-zip.org/pub/infozip/
-.end literal;.lm-4
-.!----------------------------------------------------------------------
-.!======================================================================
-.!------------------------------------------------------
-.indent-3
-2 ZipInfo_mode
-.br
-When /ZIPINFO is specified, the program runs in ZipInfo mode. Remaining
-options are interpreted as ZipInfo options. If used, /ZIPINFO must be
-the first qualifier on the command line.
-.sk
-ZipInfo reports detailed information about a ZIP archive and its
-members. This information may include file access permissions,
-compression method, encryption method, version and operating system (or
-file system) of the archive-creating program, and so on. The default
-behavior (with no options) is to show a single-line entry for each
-member in the archive, with a header and a trailer providing summary
-information for the entire archive. The format is a cross between Unix
-"ls -l" and "UNZIP /LIST /VERBOSE" output. See
-Detailed_Description. ZipInfo is the same program as UnZip. (On Unix,
-"zipinfo" may be a link to "unzip". On VMS, "ZIPINFO" is normally a DCL
-symbol defined as "''UNZIP' /ZIPINFO".) However, ZipInfo support may
-have been disabled when UnZip was built.
-.sk
-Format:
-.sk;.indent2
-ZIPINFO [/zipinfo_options] [file[.zip]] [member [,...]]
-.sk;.indent2
-UNZIP /ZIPINFO [/zipinfo_options] [file[.zip]] [member [,...]]
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-3 Command_Parameters
-.br
-.indent-2
-file[.zip]
-.sk
-.lm+3
-File path/name of a ZIP archive. A wildcard name may be used to specify
-multiple ZIP archives to be processed in one command. On VMS systems,
-any of the standard wildcards for a directory/file specification may be
-used: "...", "*", or "%" (or, since VMS V7.2, "?"). The default archive
-file specification is ".ZIP".
-.sk
-Note that a ".zip" or ".ZIP" file type on an archive is merely a
-convention, not a requirement. For example, a self-extracting ZIP
-archive named "fred" or "fred.exe" could be processed as if it were an
-ordinary archive; just specify the actual file name with its actual name
-ending (if any), whatever that may be.
-.lm-3
-.sk
-.indent-2
-member [,...]
-.sk
-.lm+3
-An optional list of archive members to be processed, separated by
-commas. If no member list is specified, then all archive members are
-processed. Unix-like ("globbing") wildcard patterns may be used to
-match multiple members:
-.sk
-.lm+4;.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 an
- exclamation point ("!") or a caret ("^") follows the
- left bracket, then the range of characters within
- the brackets is complemented. That is, anything
- except the characters inside the brackets is
- considered a match. To specify a literal left
- bracket, use the three-character sequence "[[]".
-.end literal;.lm-4
-.lm-3
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-3 Qualifiers_Primary_Format
-.br
-Qualifiers in this group specify the primary report format of
-ZipInfo. Only one of these primary format qualifiers may be specified.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /LONG (-l)
-.br
-Primary Format. Show member info in long Unix "ls -l" format. Like the
-/MEDIUM format, except that the compressed size (in bytes) is printed
-instead of the compression ratio.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /ONE_LINE (-2)
-.br
-Primary Format. Show member names only, one per line. Other report
-elements are allowed, if requested explicitly using /HEADER, /TOTALS,
-and/or /COMMENT.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /MEDIUM (-m)
-.br
-Primary Format. Show member info in medium-length Unix "ls -l" format.
-Like the /SHORT format, except that the compression factor, expressed as
-a percentage, is also included.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /SHORT (-s)
-.br
-Primary Format. Show member info in short Unix "ls -l" format. This is
-the default behavior, unless /HEADER or /TOTALS is specified.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /VERBOSE (-v)
-.br
-Primary Format. The ZipInfo /VERBOSE report is very detailed, and
-mostly self-explanatory, but it does assume some familiarity with the
-ZIP archive format. It also includes the archive comment, if
-any. Extra fields in the central directory are broken down into
-subfields, with brief interpretations of recognized subfields (or
-abbreviated dumps of unrecognized subfields).
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!----------------------------------------------------------------------
-.!------------------------------------------------------
-.indent-3
-3 Qualifiers_Ordinary
-.br
-Qualifiers in this group modify the operation or report format of
-ZipInfo.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /COMMENT (-z)
-.br
-Include the archive comments (if any) in the report.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /DECIMAL_TIME (-T)
-.br
-Show the file date-times in a sortable, all-numeric, "YYYYMMDD.hhmmss"
-format. The default date format is an alpha-numeric
-"YY-Mmm-DD hh:mm". For example ("/SHORT", "/SHORT /DECIMAL_TIME"):
-.sk
-.literal
--rw-a-- 3.1 fat 211916 tx defX 10-Jun-18 00:27 zip31c/zip.c
--rw-a-- 3.1 fat 211916 tx defX 20100618.002703 zip31c/zip.c
-.end literal
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /EXCLUDE (-x)
-.br
-/EXCLUDE=(member [,...])
-.br
-An optional list of archive members to be excluded from
-processing. Because wildcard characters normally match "/" directory
-separators (for exceptions see /WILD_SPAN (-W)), this option may be used
-to exclude any files that are in subdirectories. For example,
-.lm+4;.literal
-UNZIP foo *.[ch] /EXCLUDE = */*
-.end literal;.lm-4
-would extract all C source files (*.c, *.h) in the main directory, but
-none in any subdirectories. Without the /EXCLUDE option, all C source
-files in all directories within the archive would be extracted.
-.sk
-Note that archive members are specified using the Unix-style names which
-are used in ZIP archives, not VMS-style names.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /HEADER (-h)
-.br
-Include a header in the report, showing the archive name, the archive
-size (in bytes), and the number of members in the archive.
-.sk
-For the Unix-format reports (options /LONG, /MEDIUM, /SHORT), the header
-is included by default, if no archive members are specified. If /HEADER
-is specified alone, that is, without one of the Unix-format options, and
-without a member list, then only the header lines will be put out.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 /MATCH (-C, -W)
-.br
-/MATCH=(keyword, ...)
-.sk
-Specifies name-matching behavior for names in the member list and
-the /EXCLUDE excluded-member list on the command line.
-.sk
-The optional keywords and values are:
-.sk
-.lm+4;.literal
-CASE=BLIND Name matching is case-insensitive. (-C)
-CASE=SENSITIVE Name matching is case-sensitive. (Default.)
-.end literal;.lm-4
-.sk
-By default, case-sensitive matching is done. For example, specifying
-"makefile" on the command line will match only "makefile" in
-the archive, not "Makefile" or "MAKEFILE". On many systems, the local
-file system is case-insensitive, so case-insensitive name matching would
-be more natural. With /MATCH=CASE=BLIND, "makefile" would match
-"makefile", "Makefile", or "MAKEFILE".
-.sk
-/MATCH does not affect the search for the ZIP archive file(s), nor the
-matching of archive members to existing files on the extraction
-path. So, on a case-sensitive file system, UnZip will never try to
-overwrite a file "FOO" when extracting a member named "foo"!
-.sk
-[WILD_STOP_AT_DIR] If the C macro WILD_STOP_AT_DIR is defined at build
-time, then an additional keyword is allowed:
-.sk
-.lm+4;.literal
-NOWILD_MATCH_SLASH Wildcards stop at directory slash. (-W)
-WILD_MATCH_SLASH Wildcards match directory slash. (Default.)
-.end literal;.lm-4
-.sk
-By default, the wildcard characters "?" (single-character wildcard) and
-"*" (multi-character wildcard) match any character in a member
-path/name. /MATCH=NOWILD_MATCH_SLASH (-W) modifies the pattern-matching
-behavior for archive members so that both "?" (single-character
-wildcard) and "*" (multi-character wildcard) do not match the directory
-separator character "/". (The two-character sequence "**" acts as a
-multi-character wildcard that includes the directory separator in its
-matched characters.) For example, with /MATCH=NOWILD_MATCH_SLASH:
-.lm+4;.literal
-"*.c" matches "foo.c" but not "mydir/foo.c"
-"**.c" matches both "foo.c" and "mydir/foo.c"
-"*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c"
-"??*/*" matches "ab/foo" and "abc/foo"
- but not "a/foo" or "a/b/foo"
-.end literal;.lm-4
-.sk
-This modified behavior is equivalent to the pattern matching style used
-by the shells of some of \fIUnZip\fP's supported target OSs (one example
-is Acorn RISC OS). This option may not be available on systems where
-the Zip archive's internal directory separator character "/" is allowed
-as regular character in native operating system filenames.
-.sk
-[non-VMS] (Currently, UnZip uses the same pattern matching rules for
-both wildcard archive file name specifications and archive member
-selection patterns on most system types. For systems allowing "/" as
-regular filename character, the -W option would not work as expected on
-a wildcard file name specification.)
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /MEMBER_COUNTS (default) (-mc)
-.br
-/NOMEMBER_COUNTS
-.br
-Control inclusion of separate member counts for directories, files, and
-(if symlinks are supported) links, after the totals summary at the end
-of the report. By default, they are included. Use /NOMEMBER_COUNTS" to
-suppress them. See also /TOTALS.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /PAGE (-M)
-.br
-Pipe all output through an internal pager similar to the Unix more(1)
-command. At the end of a screenful of output, UnZip pauses with a
-"--More--" prompt; the next screenful may be viewed by pressing the
-Enter (Return) key or the space bar. UnZip can be terminated by
-pressing the "Q" key and, on some systems, the Enter/Return key. Unlike
-Unix more(1), there is no forward-searching or editing
-capability. Also, UnZip doesn't notice if long lines wrap at the edge
-of the screen, effectively resulting in the printing of two or more
-lines and the likelihood that some text will scroll off the top of the
-screen before being viewed. If the actual number of lines on the screen
-can not be determined, 24 lines will be assumed.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-4 /TOTALS (-t)
-.br
-Include a totals summary at the end of the report, showing the number of
-members in the report, the sum of their uncompressed sizes, the sum of
-their compressed sizes, and the compression factor as a percentage.
-.sk
-For the Unix-format reports (/LONG, /MEDIUM, /SHORT), the totals summary
-is included by default, if no archive members are specified. If /TOTALS
-is specified alone, that is, without one of the Unix-format options, and
-without a member list, then only the totals summary trailer lines will
-be put out.
-.sk
-The total "bytes compressed" reported includes only the actual data, not
-the ZIP archive meta-data, so the size of the archive will always be
-greater than this value.
-.sk
-See also /MEMBER_COUNTS.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 Detailed_Description
-.br
-ZipInfo has three basic report formats, providing different degrees of
-detail in the information about the members of an archive: a simple list
-of names (/ONE_LINE (-1, -2)), a Unix ls-style listing (/LONG (-l),
-/MEDIUM (-m), /SHORT (-s)), and a very detailed analysis (/VERBOSE
-(-v)). Some of the information, such as file sizes, is easy to
-interpret. Some of the information involves fairly obscure details of
-ZIP archive structure. ZIP archive structure is documented in the
-PKWARE Inc. APPNOTE.TXT:
-.lm+4;.literal
-http://www.pkware.com/documents/casestudies/APPNOTE.TXT
-.end literal;.lm-4
-.sk
-The table below shows some typical /LONG report entries:
-.sk
-.literal
-Perm/Prot Zver Ofs UncSize At CmpSize Cmth ModDate Mtime Name
-----------+----+---+-------+--+-------+----+---------------+----------
--rw-a-- 3.1 fat 211916 tx 53467 defX 10-Jun-18 00:27 zip3/zip.c
--rwxr-x--- 3.1 unx 709 Tx 311 aesw 11-Aug-21 22:20 endian.c
-RWED,RE, 3.1 vms 6656 bx 2295 defN 07-Aug-15 14:12 it/T.EXE;8
-.end literal
-.sk
-Field 1 (Perm/Prot) shows the file permission/protection attributes,
-formatted according to the original operating system or file system
-where the archive was created.
-.sk
-Field 2 (Zver) shows the (approximate) version of the Zip program which
-created the archive.
-.sk
-Field 3 (Ofs) shows the original operating system where the archive was
-created, or the file system on which the member file was stored.
-.sk
-Field 4 (UncSize) shows the original, uncompressed file size.
-.sk
-Field 5 (At) shows some archive member attributes, as detailed in the
-tables below. The first character indicates whether a file was binary
-or text, and whether it was encrypted. The second character indicates
-the presence of a data descriptor and/or an extra field in the member
-data.
-.sk
-.literal
- | File Type Extra Field |
- First char | binary text yes no | Second char
---------------+-------+----- ------+-----+--------------------
-Encrypted no | b t x - | no Data Descriptor
- yes | B T X l | yes
-.end literal
-.sk
-A Data Descriptor holds CRC and size data at an alternate place in the
-archive (after processed member data instead of before), and is
-normally used when the archiving program can't seek in the output
-archive data/file. An Extra Field can hold a wide variety of data,
-including 64-bit file sizes, many kinds of OS-specific attribute data,
-UTC times, and so on.
-.sk
-Field 6 (CmpSize) shows the compressed file size. With /MEDIUM, this
-field shows the compression fraction as a percentage. With /SHORT
-(the default), this field is omitted. This compressed size value
-(unlike the one in an "UNZIP /LIST" report) includes all the
-overhead resulting from Traditional encryption.
-.sk
-Field 7 (Cmth) shows the compression method used. Note that AES_WG
-encryption is treated as a compression method here. Not all of the
-methods shown in the table below are supported. (Some are obsolete.)
-.sk
-.literal
- Num Abbr Name, description
-----+----+------------------------------------------------------------
- 0 stor Store (no compression)
- 1 shrk Shrink
- 2 re:1 Reduce (factor 1)
- 3 re:2 Reduce (factor 2)
- 4 re:3 Reduce (factor 3)
- 5 re:4 Reduce (factor 4)
- 6 i#:# Implode (dictonary_size:Shannon-Fano_trees)
- 7 tokn Tokenize
- 8 def# Deflate (N: normal, X: maximum, F: fast, S: super-fast)
- 9 d64# Deflate64 (N: normal, X: maximum, F: fast, S: super-fast)
- 10 dcli PKWARE Data Compression Library Imploding - IBM TERSE (old)
- 12 bzp2 bzip2
- 14 lzma LZMA
- 18 ters IBM TERSE (new)
- 19 lz77 IBM LZ77 z Architecture (PFS)
- 96 jpeg JPEG
- 97 wavp WavPack
- 98 ppmd PPMd version I, Rev 1
- 99 aesw AES_WG encryption
-.end literal
-.sk
-Fields 8 and 9 (ModDate, Mtime) show the file modification date-time
-(MS-DOS format, local time).
-.sk
-Field 10 (Name) shows the file path/name.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 Environment_Options
-.br
-ZipInfo's default behavior may be modified by placing Unix-style
-command-line options in an environment variable. (The VMS CLI
-translator acts only on the command line itself, not on the
-environment variables.) This can be done with any option, but it is
-probably most useful options like -T (/DECIMAL_TIME, decimal time
-format) or one of the non-default Unix format options: -l (/LONG), -m
-(/MEDIUM).
-.sk
-For ZipInfo ("UNZIP /ZIPINFO", ZIPINFO), the environment variable name
-on VMS is ZIPINFO_OPTS (non-VMS: ZIPINFO). For compatibility with Zip,
-if ZIPINFO (ZIPINFO_OPTS on VMS) is not defined, then ZipInfo will use
-ZIPINFOOPT the same way.
-.sk
-For example, to make the default format the long Unix format instead of
-the short Unix format, one could use commands like the following (with
-quotation to preserve lower case in DCL):
-.sk
-.lm+4;.literal
-define ZIPINFO_OPTS "-l" ! Logical name, or
-ZIPINFO_OPTS = "-l" ! DCL symbol. (Either works.)
-.end literal;.lm-4
-.sk
-Environment options are treated the same as any other Unix-style
-command-line options, except that they are effectively the first options
-on the command line. Generally, the VMS CLI translator will override
-an environment option if an explicit corresponding VMS-style qualifier
-is specified.
-.sk
-The examples show short (one-character) options, but long ("--")
-options are also allowed.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 Examples
-.br
-To get a basic, short-format listing of the complete contents of a ZIP
-archive zip31c.zip, with both header and totals lines, use only the
-archive name as an argument to zipinfo:
-.sk
-.lm+4;.literal
-zipinfo zip31c.zip
-zipinfo zip31c
-.end literal;.lm-4
-.sk
-To produce a basic, long-format listing (not verbose), including header
-and totals lines, use /LONG:
-.sk
-.lm+4;.literal
-zipinfo /long zip31c.zip
-.end literal;.lm-4
-.sk
-To list the complete contents of the archive without header and totals
-lines, either negate the /HEADER and /TOTALS qualifiers or else specify
-the contents explicitly:
-.sk
-.lm+4;.literal
-zipinfo /noheader /nototals zip31c.zip
-zipinfo zip31c.zip *
-.end literal;.lm-4
-.sk
-(On a Unix system, the wildcard member name would typically need to be
-quoted to keep a a Unix shell from expanding ("globbing") it. This is
-not necessary on VMS. However, a name with a slash ("/") character,
-such as "*/zip*.*", must be quoted. Otherwise, DCL may interpret the
-slash as introducing a qualifier, causing unexpected behavior or an
-"%CLI-W-IVQUAL, unrecognized qualifier" error.)
-.sk
-To list information on a single archive member, in medium format,
-specify the member name explicitly:
-.sk
-.lm+4;.literal
-zipinfo /medium unzip60.zip */unshrink.c
-.end literal;.lm-4
-.sk
-On a VMS system, one could use /DECIMAL_TIME along with an external
-sorting program to get a listing of files in the archive in date-time
-order:
-.sk
-.lm+4;.literal
-pipe zipinfo /decimal_time /long /noheader /nototals zip31c.zip | -
- sort sys$input sys$output /key = (position:47, size:15, descend)
-.end literal;.lm-4
-.sk
-For a /LONG (-l) format report, the date-time field should begin at
-position 47; for /MEDIUM (-m), 42; for /SHORT (-s), 38. HELP SORT
-[/KEY] should lead to an explanation of the various SORT options.
-(Unlike Unix, VMS does not include a useful "head" or "tail" program.)
-.sk
-On a Unix system, one could use the -T option along with an
-external sorting program (and another filter like "head" or
-"tail") to get a listing of the least or most recently modified
-files in the archive:
-.sk
-.lm+4;.literal
-zipinfo -l -T -h- -t- zip31c.zip | sort -k 8 | head -12
-zipinfo -l -T -h- -t- zip31c.zip | sort -r -k 8 | head -12
-.end literal;.lm-4
-.sk
-The "sort" option "-k 8" tells it to sort on field 8, which is the
-date-time field in a long- or medium-format (-l, -m) ZipInfo
-report. (Use "-k 7" for the short (-s) format.) The -r option reverses
-the default smallest-to-largest sort order.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 Bugs
-.br
-As with UnZip, ZipInfo's /PAGE (-M) option is overly
-simplistic in its handling of screen output. As noted above, it fails
-to detect the wrapping of long lines and may thereby cause lines at the
-top of the screen to be scrolled off before being read. ZipInfo
-should detect and treat each occurrence of line-wrap as one additional
-line printed. This requires knowledge of the screen's width as well as
-its height. In addition, ZipInfo should detect the true screen
-geometry on all systems.
-.sk
-The interactions among the various listing format, header, and trailer
-options (/HEADER, /LONG, /MEDIUM, /SHORT, /TOTALS) are unnecessarily
-complex and should be simplified, despite the potential disruption to
-current users.
-.!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-.!------------------------------------------------------
-.indent-3
-3 URL
-.br
-The Info-ZIP main Web page is:
-.lm+4;.literal
-http://www.info-zip.org/
-.end literal;.lm-4
-.sk
-FTP access is available, too:
-.lm+4;.literal
-ftp://ftp.info-zip.org/pub/infozip/
-.end literal;.lm-4
-.!----------------------------------------------------------------------
-.!======================================================================
-Info-Zip UnZip -- Source kit. Version 6.10c17s (pre-BETA) 2015-03-18.
+Info-Zip UnZip -- Source kit. Version 6.10c18 (pre-BETA) 2015-03-31.
See enclosed files INSTALL, LICENSE, and README. For information on
Info-Zip UnZip and Zip: