Main features still missing for next official version (last updated 9/12/2007):

- Fix -W option that prevents * from spanning / in paths (done?) (5/9/2005)
- Verbose -v still needs work (done?) (5/17/2006)
- When -R, -x, or -i pattern ends in a directory add / to the end
      (11/5/2004 Nehal)
- Add About page option similar to -h2 and -v but lists Info-ZIP
      information (could be -sa) (4/29/2006)
- Update utilities ZipSplit, ZipNote, and ZipCloak, still more to do (3/16/2006)
- Update ziperr and finish (needs another look)
- Review memory allocation and fill in memory leaks, mainly for
      dll (12/17/05)
- Fix -F and -FF to handle split archives, make more robust (done?)
- Enhance -FF to fix common problems such as archives ftp in text mode
      and fixing checksums so entries can be extracted if that makes
      sense (6/17/2007)
- Add \ to / conversion in zipsplit to fix problem in
      1/29/2004 email
- Encryption bug with small stored file (12/27/2005) (fixed?)
- When updating large archives with few entries being
  updated maybe display something in large periods of
  quiet (1/23/2006)
- Windows OEM comments (5/17/2006)
- Change pattern matching to not do ex2in() and then in2ex()
      (12/26/2005 SMS)
- Example of using MVS zip and unzip (3/30/2004)
- UTF-8 comments need to be implemented (6/17/2007)
- Maybe way to prefix entries with string so can zip multiple drives
      and avoid name conflicts (4/17/2006)
- Maybe convert ../ in archive (5/20/2006)
- Extended file attributes (1/23/2006)
- Could turn off [] matching on Windows
- Per so many buffers dll callback (12/23/2005 Ale)
- Replace mktemp with mkstemp (some ports like Win32 do not have mkstemp
      so need to do based on port) but mkstemp returns open file handle
      (done for Unix)
- Allow -d@ to read in a list of names to delete (11/17/2005)
- Allow rename stdin "-" to something else (12/27/2005 gregor)
- Win32 ACL rewrite to use backup api to create new and more useful extra
  field (need unzip support) (Kai)
- Possible buffer overrun weaknesses while reading zip files
- UNC paths like \\server\path (4/26/2005)
- Maybe option to allow case insensitive matching of file names (would
      require handling possible duplicate entries as names are now
      case sensitive) (1/28/2005) (done, option -ic)
- Do Active Template Library (ATL) (4/27/2005)
- AES encryption (3/19/05)
- Flush Win16 support - to be determined (Mike)
- Way to convert file names on input, converting foo.c to dir/foo_bar.c
      for instance (4/8/2004, 3/12/2004)
- French WiZ (not a Zip thing actually but dependent on zip and unzip)
- Then there is that wierd ^D being converted to \000 error reported
      in 6/21/2003 email when Zip is outputted into a pipe on Windows ports

Old list:

Main features still missing for next official version (last updated 2/11/2001):

- what about the binary/text detection ? (seems done)
- -b and -t options in help screen (covered in -h2)
- findfirst/findnext and after that LSSTAT (performance!!)
- use IS_EXEC from djgpp stat.h
- use install in unix/Makefile instead of mkdir -p, look at install sh script.
- #elif for those ports that can handle it.
- what about zopen vs. fopen ?
- Add zcreate or zfcreate for win32.
- Assembler stuff in match.S (subexpressions)
- zipping huge files (> 2G, unsigned 32bit) (done)
- Testsuite for zip and unzip (John D. Mitchell)
- make a version.c or version.h that includes all the compiler names
- run utils with dmalloc().
- what to do with zip -F and zip -FF (readzipfile2()) ? (done?)
- profiling of the code
- multi disk zip files (could be done)
- zipfile modification tool (Greg)
- Implement -- option (Thomas Klauser, wiz@danbala.tuwien.ac.at) (could be done)
- don't add files with "Archive bit" or add files with "Archive bit"
	(uwe.becher@metronet.de) (could be done with -AS and -AC)
- 32 bit file attributes
- generate output without having to seek at all (this seems to be stream output)
- remove contractions from zip error messages, make them clearer (Steve)
- display "[text]" for ascii files when not quiet (no -q) (Timo Salmi)
- does zipnote accept names with version number?
- for a WORM, zip should create temp file only when updating; new archives
	should be created directly.
- APPNOTE.TXT specifies "4) The entries in the central directory may
      not necessarily be in the same order that files appear in the zipfile"
      but readzipfile() relies on same order. (new read does not, and now
      the read for -FF searches for central directory matches rather than
      rely on the order)
- on Mac, MPW C 3.3.1 requires #if (a || b)  ["#if a || b" taken as "#if a"]
- on Unix, let -S be "include non-regular files without reading from them"
	(as pkzip on Unix). This requires unzip support.
- zip -l should do ebcdic->ascii translation on CMS and MVS
- zip as subroutine (zdig/241) (some work done on this)
- accept k and M in zipsplit
- store / (part of file name) as ! in OS/2 (problem only with -E ?)
- in addition to -l (LF to CR LF) and -ll (CR LF to LF) add -lc
	(LF to CR LF but CR LF remains unchanged)

Known bugs:

- On VMS, zip fails reading some files with "byte record too large for
	user's buffer". You must use the "-V" option for such files.
	(many changes to VMS so may be fixed)

- on MSDOS, zip386.exe does not like "zip -bc: foo ..."

- on MSDOS, zip386.exe is sometimes much slower than zip.exe. This is
	probably a problem with DJGPP (to be investigated).

- on NT with C shell, zip should not do file name expansion again.

- zip zipfile ... ignores existing zipfile if name does not have an extension
      (except for the -A option, generally used on self-extracting files).
      (archives should probably have extensions.  Things like archive.jar work)

- For an sfx file without extension, "zip -A sfx" works but "zip sfx -A"
	doesn't.  (because options were required first, but now both OK)

- When storing files in a zipfile (-0), zip marks all of them as binary.

- On VMS, some indexed files are not restored correctly after zip -V and unzip.
	(This is now known to be a problem of UnZip. The workaround for Zip 2.2
	and newer is to use PK-style VMS extra fields; this is now the default.
	NOTE that UnZip 5.32 has been fixed [971019]!) (many VMS changes so
	this may be fixed)

- zip and unzip should use the same pattern matching rules, particularly
	on MSDOS and OS/2. On OS/2, "zip foo *.*" should also match files
	without extension.
	Partially DONE (OS/2 "*.*" matches "*".)

- there should be a way to avoid updating archive members (only addition
	of new files allowed)
