Overview ======== uzip is a module for the extfs Virtual File System (VFS) in Midnight Commander. It allows browsing, extraction and modification of zip archives. uzip was written by Oskar Liljeblad. If you find a bug, or know of an improvement, please email me at osk@hem.passagen.se. License and Copyright ===================== uzip is released under the terms of the GNU General Public License. uzip is copyright (C) 2000-2001 by Oskar Liljeblad. Requirements ============ Info-Zip mode: Info-ZIP unzip 5.41 (for listing and extracting files) Info-ZIP zip 2.30 (for adding and deleting files) otherwise: any unzip any zip History ======= 2001-08-07 Oskar Liljeblad <osk@hem.passagen.se> * Release 1.4.0. * Fixed so that files with filenames containing *, ?, [, ] and \\ can be extracted or added to zip archives etc. These characters has to be escaped once more, because Info-ZIP zip and unzip interprets them as wildcards (despite the fact that the shell already expands wildcards). 2001-03-01 Oskar Liljeblad <osk@hem.passagen.se> * Release 1.3.0. * Caching of files when listing archives has been fixed. (MC would list a directory twice in some cases.) * 'strict' is now used. (This is why global variables are now initialized using 'my'.) * Some code simplifications thanks to more understanding of perl :) * Minor documentation clarifications. 2001-02-21 Oskar Liljeblad <osk@hem.passagen.se> * Release 1.2.0. * The 'rmdir' extfs command of uzip was modified not to fail when deleting directories that doesn't exist. (A different/ better solution would be to recreate the automatically deleted directories, but that's slower and harder to implement.) Strangely, the zip man page does not mention this delete- empty-directories behavior. 2000-10-31 Oskar Liljeblad <osk@hem.passagen.se> * Release 1.1.0. * mczipfs_copyin: Fixed order of arguments. * safesystem, safeticks: Improved error handling. * mczipfs_copyout: Now allows error code 11, and redirects stderr to /dev/null. 2000-10-29 Oskar Liljeblad <osk@hem.passagen.se> * Release 1.0.1. * Fixed bug causing files with special permission not to be listed. 2000-10-29 Oskar Liljeblad <osk@hem.passagen.se> * Release 1.0.0: First version. Differences between new (Perl) and old (sh/AWK) uzip ===================================================== The script is written purely in Perl, which (hopefully) means faster execution and cleaner code. Listing is done only with either zipinfo or unzip, not both at the same time. Previously unzip would be used if the archive contained non-unix file listings (after zipinfo was run). Now there is an option to choose which one to use (zipinfo is the default and preferred). This should make listing of non-unix archives faster. Files appearing before their parent directories in the listings are now cached and printed later. This fixes a bug that would cause some directories to be listed twice. Temporary filenames are chosen better. That is, they are generated using tmpnam(3). Previously, hardcoded filenames (in the current directory) would be used. The error messages are much better. Errors are checked for (hopefully) all functions that can fail. The copyin command no longer makes a copy of the file before adding it. Instead it makes a temporary directory in which a symlink to the original file is placed. This should speed up addition considerably. The run command is supported. The theoretic commands "mklink" and "linkout" are supported. However, MC extfs doesn't support these so they are rather useless at the moment. Known problems and Unsupported features ======================================= Files added to the archive get listed with a+x permissions in MC. This appears to be a problem with the MC extfs, and (probably) not uzip. (It is only temporary though. When restarting MC and reading the archive, the files will no longer be listed as executable.) Extracted files do not have the same modification/access date as in the archive. The same applies for permissions and ownership. Fortunately MC extfs will set these attributes based on the file listings. Interpretation of special information ("central-directory extra field") in zip archives. This is used to store information such as universal time and unix UID/GID on files. It would be nice if listing archives with symbolic links was faster. Unzip has to be executed once for each link. This is because the symbolic link file must be extracted in order to get the link destination. -