UnZip, Utilities, Info-ZIP pack and unpack Zip archives Building The behaviour of the build procedure [.vms]make_unz.com can be influenced in two ways. One ist to invoke it with parameters from the DCL level. The other one involves setting the global symbol local_unzip. Commandline parameters make_unz.com accepts the following parameters in arbitrary order: DECC, GNUC, VAXC Normal behaviour of make_unz.com is to check the system for the availability of C compilers in the following order: DEC C (on Alpha the only supported compiler), GNU C, and VAX C. Using one of the parameters given above one can enforce the usage of a certain compiler. VMSCLI, CLI Doesn't do much. At the end of the build make_unz.com defines two symbols and gives advice how to define them in the future. If this parameter is set it will use the Unzip version with the VMS-like commandline interface for this. NOVMSCLI, NOCLI See above, but use the version with the Unix-like interface (This is the default). LOCAL_UNZIP Define a global symbol LOCAL_UNZIP as a coma separated list of the options given below. make_unz.com analyses the symbol and passes its contents in a define statement to the C compiler. VMSCLI See VMSCLI above. WILD_STOP_AT_DIR Modifies the pattern matching routine so that both '?' (single-char wildcard) and '*' (multi-char wildcard) do not match the directory separator character '/'. Examples: "*.c" matches "foo.c" but not "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" This modified behaviour is equivalent to the pattern matching style used by the shells of some of UnZip's supported target OSs (one example is Acorn RISC OS). VMSWILD Use parentheses rather than brackets to delimit sets (ranges), and use '%' instead of '?' as the single-character wildcard for internal filename matching. (External matching of zipfile names always uses the standard VMS wildcard facilities; character sets are disallowed.) CHECK_VERSIONS Check if the extra RMS-Fields stored for Files originating on OpenVMS systems match the RMS-version on the current system. Since RMS is pretty stable this is not enabled by default. RETURN_CODES Provide human readable translations of UnZips return codes NOTIMESTAMP This option disables the -T option, which basically does exactly what Zip's -go options do (i.e., set the timestamp of the zipfile to that of the newest file in the archive without rewriting the archive). Unlike Zip, however, UnZip supports wildcard specifications for the archive name; for example, "unzip -T *.zip" will set the dates of all zipfiles in the current directory. (UnZip's option is also much faster.) DATE_FORMAT=DF_DMY or DF_MDY or DF_YMD This option controls the order in which date components are printed in listings: day-month-year or month-day-year or year-month-day. DATE_SEPCHAR=' -' or '.' or '/' etc. This option controls the character that separates the date components shown in (non-ZipInfo-mode) listings. The Win32 port obtains the separator automatically from the operating system's locale settings; all others default to '-'. OS2_EAS List the sizes of OS/2 EAs and ACLs for each file as two extra columns in "unzip -l" output. This is primarily useful for OS/2 systems, but because zipfiles are portable, OS2_EAS can be defined for any system. DELETE_IF_FULL If a write error is encountered (most likely due to a full disk), enabling this option will cause the incomplete file to be deleted instead of closed normally. SFX_EXDIR Enable the "-d " option for UnZipSFX. This is now enabled by default (since UnZip 5.5) to facilitate use with automated installation scripts and the like. For disabling this feature, use the NO_SFX_EXDIR option. CHEAP_SFX_AUTORUN Enable a simple "run command after extraction" feature for the (command line) UnZipSFX stub. This feature is currently incompatible with the "-d " command line option, therefore CHEAP_SFX_AUTORUN implicitely sets the NO_SFX_EXDIR option. NO_ZIPINFO Compile without ZipInfo mode (-Z) enabled; makes a smaller executable because many text strings are left out USE_DEFLATE64 (default for UnZip and fUnZip) NO_DEFLATE64 (default for UnZipSFX stub) The "deflate64" algorithm from PKZIP 4.0 (or newer) is an enhanced variant of the deflate algorithm that achieves slightly better compression ratios on highly redundant data. Normally, UnZip should be compiled with support for this compression algorithm enabled. And for the SFX stub, "deflate64" support might be unnessessary as long as the Info-ZIP Zip utility does not support it (quite likely, this will never get implemented). So, the NO_DEFLATE64 option is provided to allow exclusion of the deflate64 support. . MULT_VOLUME (experimental for 5.5x, do NOT use in production versions!) The symbol MULT_VOLUME is used to flag code portions needed for support of multi-volume archives. For now, this flag MUST NOT be used to compile a production versions of UnZip. This flag has been introduced to allow integration of experimental code for multi-volume support in the master source tree. This feature will become a default option in the future 6.0 release of UnZip. LZW_CLEAN (now default) / USE_UNSHRINK The "shrinking" algorithm from PKZIP 1.0 is an LZW variant. Unisys patented the Lempel-Ziv-Welch algorithm in 1985 and has publicly claimed that decompression is covered by it. (IBM also patented the same thing in a filing 3 weeks prior to Unisys's.) Therefore unshrinking is disabled by default, but those with LZW licenses can enable it by defining USE_UNSHRINK. (Unshrinking was used by PKZIP 1.0 and 1.1, and Zip 1.0 and 1.1. All newer archives use only the deflation method.) COPYRIGHT_CLEAN (now default) / USE_SMITH_CODE The last chunk of code in UnZip that was blatantly derived from Sam Smith's unzip 2.0 (as in, "substantially similar") is in unreduce.c. Since reducing was only used by very early PKZIP beta versions (0.9x), support for it is now omitted by default (COPYRIGHT_CLEAN). To include unreducing capability, define USE_SMITH_CODE. Note that this subjects UnZip to any and all restrictions in Smith's copyright; see the UnZip COPYING file for details. USE_CRYPT Enable decryption support for all binaries. The default setting is to disable decryption support for the SFX stub to keep its size as small as possible. For other binaries of the UnZip distribution, decryption support is enabled by default. NO_CRYPT Disable decryption support for all binaries. PASSWD_FROM_STDIN (with full crypt sources only) Used to allow the password on encrypted files to be read from stdin rather than the default stderr. This was useful for those who wished to automate the testing or decoding of encrypted archives (say, in a shell script via ``echo "password" | unzip -tq archive''), but as of version 5.3, UnZip has a -P option for passing a password directly to the program. PASSWD_FROM_STDIN will therefore probably be phased out in future versions. Note that the same security warnings given in the description of the -P option apply here as well. DEBUG Used for debugging purposes; enables Trace() statements. Generally it's best to compile only one or two modules this way. DEBUG_TIME Used for debugging the timezone code in fileio.c; enables TTrace() statements. This code is only used for the freshen/update options (-f and -u), and non-Unix compilers often get it wrong. The latest version of the OpenVMS port of UnZip should always be accessible via http://zinser.no-ip.info/vms/sw/unzip.htmlx