boinc/zip/unzip/ToDo

166 lines
6.2 KiB
Plaintext

================================
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?