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