================================ For UnZip 6.0/6.1/who knows: ================================ o implement handling of file sizes beyond the 32-bit limit of 2GByte (resp. 4GByte), using the new 64-bit extra field extensions as defined by PKWARE (this will not get implemented for the present 16-bit ports - plain DOS and OS/2 1.x) top of the list for 6.0! o add multi-part zipfile handling major feature for 6.0! o add new low-level, binary API; rewrite "normal" (command-line) UnZip to use it very soon (maybe 6.1) o use (simple!) configure script in combination with Unix Makefile very soon (6.0 or 6.1) o add precautions against extracting files outside the tree below the current directory resp. the specified extraction folder. (automatically remove absolute path specs from zip entries; emit warnings when traversing outside the extraction tree...) o MSDOS/WIN32/others: detection of "reserved" names (= names of character devices, or system extensions that look like a characters device driver) at runtime; with the goal of emitting "meaningful" error messages and/or rename queries. (Currently, these reserved names are catched as "non-deletable files". On MSDOS and WIN32, when the RTL stat() function allows to identify character devices, the "reserved" names are automatically prefixed with an underscore.) o redesign "file exists -- is newer/older -- overwrite/skip/rename" logic in extract.c and the corresponding system specific mapname() services; to prevent superfluous decryption key prompts for entry that will be skipped, later. o rewrite to use fread/fseek/etc. [eventually: test write(bytes) vs. fwrite(words), especially on Crays/Alphas] soon (probably in conjunction with multi-part handling) o incorporate new backfill version of inflate() wait for zlib version o check NEXTBYTE for EOF in crypt.c, funzip.c and explode.c, too whenever o add option to force completely non-interactive operation (no queries for overwrite/rename, password, etc.); also allow some sort of non- interactive password provision? (file? command-line? env. variable?) someday? o add testing of extra fields (if have CRC) later o rewrite to allow use as a filter way, way later... o add Unix hard-link support? way, way later... o add ".ini" file support as a (more elaborate) alternative to the presently supported preconfiguring abilities via special environment variables (UNZIP on many systems...)? way, way later (if ever)... o add option to search zipfile contents for a string and print the results? ("zipgrep" option--e.g., unzip -g or unzip -S) (easy for fixed strings, hard for wildcards/true regex's) way, way later, if at all...probably use libregex o add -y "display symlinks" option to zipinfo? various sorting options? (-St date/time, -Sn name)? who knows o add "in-depth" option to zipinfo? (check local headers against central, etc.)--make it a better debugging tool (or just create zipfix) who knows (zip -F, -FF already exist) Some maintance or OS specific topics for 6.0 release: * add "unix-style-path -> partitioned-dataset filename" conversion to MVS port * should we add support for (null) entry names (empty entry name field), to conform to the PKWARE specification? ======================================= Requested features: - extract or exclude on basis of UID [Armin Bub, Armin.Bub@bk.bosch.de, 970904] ======================================= o miscellaneous little stuff: whenever -------------------------- - add support for setting directory time stamps to win32 port. This requires a solution similar to the UNIX SET_DIR_ATTRIB optional code; maybe, it could be combined with the delayed restoring of directory ACLs. Unfortunately, the simple version used in the OS/2 case (setting dir time stamp just after creating the directory) does not work, because WinNT updates directory change times whenever the directory content gets modified (addition, deletion, rename, file change), at least for NTFS file systems. (SPC, 2000-11-16) - change DOS -f/-u stuff to use DOS API for getting filetimes, not stat() - add (-N?) option to lose all user input and/or switch to "(*input)()" function, replaceable by UzpAltMain() param - add -@ option to read from stdin (zip) or from file (PKZIP)? (go32 built-in) - add -oo option to overwrite OS/2 and DOS system and hidden files, too - add option to compute MD5 checksum on files and/or on entire zipfile? - decide whether to use WinGUI "skipping" diagnostics in extract.c - combine "y/n/A/N" query/response stuff into unified section with query function(s) (InputFn?) - disable ^V code in remaining mapname() routines - change filename-matching logic so case-insensitive if case-sensitive fails? - allow multiple dir creation with -d option? [Bob Maynard] - use gcc -pg, gprof to do profiling on unzip - Doug Patriarche (doug.patriarche.bvdhp01@nt.com) Northern Telecom Canada Ltd. "I need to do a port of zip/unzip for Wind River Systems' VxWorks OS" [GRR: 15 March 95 -> "early June"] Features from old BUGS file (mostly duplicates of other entries above): - ignore case for internal filename match on non-Unix systems, unless file- specs enclosed in single quotes - modify to decompress input stream if part of a pipe, but continue using central directory if not (BIG job!)--extended local header capability - add zipinfo option(s) to sort alphabetically, by date/time, in reverse, etc. - when listing filenames, use '?' for non-printables? [Thomas Wolff, 92.6.1] - add zipinfo "in-depth" option? (check local vs. central filenames, etc.) - create zipcat program to concatenate zipfiles - add -oo option (overwrite and override)? no user queries (if bad password, skip file; if disk full, take default action; if VMS special on non-VMS, unpack anyway; etc.) - add -Q[Q[Q]] option (quiet mode on comments, cautions, warnings and errors)? forget -oo, or make synonym? Default level -Q?