Todo list (last updated 16 Jul 2012).


On the short list:

- Automatically handle -fz- situations by adding a "null" extra field.

- Finish testing -@@.  Finish -DI incremental archives.

- Update default -n suffix-list.  Current:
  .Z:.zip:.zoo:.arc:.lzh:.arj
  Some candidates to consider:
  .7z:.bz2:.dmg:.gz:.jar:.lzma:.rar:.tbz:.tbz2:.tgz:.tlz:.xz:.zipx




Bug list:

- -T does not handle commands with ' well.  (Mail 12 Mar 2010)

- -A should be allowed while updating an archive.  (Mail 29 Nov 2010)


Features for next official version:

- Console Unicode handling on Windows.  (19 Apr 2010 EG, pulled
  from forum "Info-ZIP Software Discussions and Feature Requests >
  Info-ZIP Zip > Unicode paths and ZipNote" thread)
- Trace the number of #if's and #endif's in zipfile.c.  (19 Apr 2010
  EG, pulled from forum "Info-ZIP Software Discussions and Feature
  Requests > Info-ZIP Zip > ZIPFILE.C v3" thread) - All the
  #if #endif blocks seem to line up.  (6 May 2010)
- Add a way to send log output to stdout or stderr.  (21 Apr 2010 EG,
  pulled from forum "Info-ZIP Software Discussions and Feature Requests >
  Info-ZIP Zip > less verbose logging" thread)  Added to Zip 3.1c.
- Consider making the native Unicode option the default Unicode option
  instead of using the extra fields for Zip 3.1.  (21 Apr 2010 EG,
  based on discussion in forum "Info-ZIP Software Discussions and
  Feature Requests > Info-ZIP Zip > Storage of directory names" thread)
- Post binaries with public betas.  (21 Apr 2010 EG)
- Check functioning of -$ volume label command.  (23 Apr 2010 EG,
  from forum "Info-ZIP Software Discussions and Feature Requests >
  Info-ZIP Zip > Question about -@ command" thread)
- Add option -Z to DLL interface to pass in compression method.  Check
  that compression level is passed in using the DLL interface and used.
  (From forum "Info-ZIP Software Discussions and Feature Requests >
  Info-ZIP Zip > Using bzip2 with DLL" thread)
- Look at state of building a Unix lib.  (23 Apr 2010 EG, from forum
  "Info-ZIP Software Discussions and Feature Requests > Info-ZIP Zip >
  Unzip / Zip librararies for Mac" thread)
- Look at posting this TODO list public somewhere, maybe SourceForge.
  (23 Apr 2010 EG)
- Implement @filelist command.  (29 Apr 2010 EG, reminded by forum
  Info-ZIP Software Discussions and Feature Requests > Info-ZIP Zip >
  Loading Filenames Into Zip From Text File" thread)
- Implement ZpMain in api.h if reasonable.  This might allow accessing
  the DLL using the command line format instead of the ZPOPT structure.
  (2 May 2010 EG, based on seeing unimplemented note in api.h)
- Create stats comparing add, update, freshen, and other modes.  Also
  compression levels and methods, and encryption.  (2 May
  2010 EG)
- Add dot callback to DLL, allowing status during archiving and
  cancelling of zipping in the middle of a possibly large file.
  (8 May 2010 EG) - ProgressReport callback added to Zip 3.1c.
- Verify that "zip -T archive" does what is expected.  (2 June 2010 EG,
  from forum thread "Info-ZIP Bugs > Zip Bugs > ZIPped w/out errors,
  but then SEEK error -OS/2 JFS")
- Get around to enhancing zip -FF to fix damaged archive entries if
  reasonable to do (a user took a stab at it a while back).  (2 June
  2010 EG)





- New -p option (or something similar) to set default directory for
  zipping (like doing a cd to that directory).  (7 Jan 2009 David
  (lsystems in discussion forum))
- -FF does not handle Unicode bit 11.  (9 Aug 2008 EG)
- Extended attributes for Windows, Linux, and Mac OS X.
- Win32 ACL rewrite to use backup api to create new and more useful extra
  field (need unzip support) (Kai).
- Allow -d@ to read in a list of names to delete (17 Nov 2005).
- AES encryption (19 Mar 2005).
- Fix EOCDR central directory entry count to use mod 2^16 for backward
  compatibility.  (3 Jan 2009 Vincent Lefèvre, see mail)
- Update license to allow binary use without additional documentation
  when license is built in.  (5 Jan 2009 EG)  Updated in Zip 3.1b.
  (29 Mar 2009)
- Support MAEMO port Unicode change.  (9 Jan 2009 Danny Milosavljevic,
  SourceForge)  Look at UnZip 6.0 changes, including configure and
  unzip.c.  Mostly implemented.  (31 March 2009)
- Compare to common UnZip functions and update to any better functions.
- Add -hh for extended help to Zip for uniformity with UnZip.  (18
  Jan 2009 EG)  Addressed in Zip 3.1b.  Also added -HH.  (31 Mar 2009)
- Add way to merge archives.  (18 Jan 2009 EG)
- Add DLL compatibility version function to note the minimum version
  of the zip DLL that this DLL is compatible with.  (25 Jan 2009 EG)
- Should allow "zip -vFF -sf" to check an archive.  Also should show
  when creating central directory entries when none were found.
  (26 Jan 2009 EG)
- Default if hit Enter at single disk archive question for -FF if no
  central directory should be to assume single disk archive.  (26 Jan 2009 EG)
- Pass on any password to UnZip if -T used (without -TT).  Maybe look
  at a way to let -TT specify the password.  (30 Jan 2009 EG)
  Addressed in Zip 3.1b.  (29 Mar 2009)
- Differential backup option -DF should return Nothing To Do warning
  if no files to add.  Maybe -MM can be used to prevent creation
  of empty archive.  (30 Jan 2009 EG, from forum -DF posting)
- Address alternate file streams?  (30 Jan 2009, from forum)
- Add way to rename files being written to archive.  (6 Feb 2009, from
  forum)  Option -pp for adding a path prefix implemented in Zip 3.1b.
  Still need to implement a generic rename.  (29 Mar 2009)
- Fix possible problem with high-bit characters on Unix not being stored
  correctly on Windows.  Could be OEM issue.  (1 Feb 2009, ichabod,
  from mail)
- For MVS, convert all dots to /, instead of keeping the last dot.  Add
  an option to regress this back to current keep last dot behavior.
  Also consider adding option (or use option with value) to allow
  saving dots as is, which most modern OS can handle.  (15 Feb 2009,
  Zip in MVS thread, forum)  This is addressed by new -MV option.
  (29 Mar 2009)
- Consider option to ignore a time difference of one hour for file
  matching to allow for daylight saving time changes for those
  entries not using universal time (UT).  (6 Apr 2009)  


Features that may make the next release:

- Allow reading in list of files using @filename.
- When -R, -x, or -i pattern ends in a directory add / to the end
  (5 Nov 04 Nehal).
- Decide if -R, -i and -x should use external rather than internal patterns.
  Also, change pattern matching to not do ex2in() and then in2ex() if
  appropriate.  (12/26/2005 SMS)
- Though Unicode paths have been implemented and tested, Unicode comments
  are not yet supported (except for comments on UTF-8 native systems which
  are supported).
- Verbose mode -v may still need work.

- Add C# example for Zip 3.0 (need to be converted to new DLLs) - original
  C# example added with note.
- Path Prefix maybe, so entries added to an archive can have a directory
  path string prepended to each path so can zip multiple drives and avoid
  name conflicts (4/17/2006).  -PP implemented in Zip 3.1b.  (29 Mar 2009)
- UNC paths like \\server\path (4/26/2005).
- Support for other languages maybe.

- 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 to handle split archives.
- Update ziperr and finish if needed.
- Review memory allocation and fill in memory leaks if any.
- 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).
- Example of using MVS zip and unzip (3/30/2004) (Need one).
- UTF-8 comments need to be implemented (6/17/2007)
- Maybe convert ../ in archive (5/20/2006).
- Per so many buffers dll callback (12/23/2005 Ale).
- Allow rename stdin "-" to something else (12/27/2005 gregor).
- Check for possible buffer overrun weaknesses while reading zip files.
- Do Active Template Library (ATL) (4/27/2005).
- 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)
  Fixed in 3.1d.  These "some files" had record format Stream or
  Stream_CR, and long records.

- 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)
  If this problem is confined to IM-style attribute storage, then
  it's unlikely that anyone will ever notice it nowadays.  Having no
  idea which "some indexed files" suffer from the problem, it's
  tough to tell if it ever got fixed in the IM code.

- 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)
