1================================
2For UnZip 6.1/who knows:
3================================
4
5   o add extraction support for other compression algorithms used by new
6     PKZIP, WinZIP, 7-Zip versions
7     - LZMA, compression type 14 (most important, because of its efficiency)
8     - PPMd, compression type 98 (maybe, less important)
9     - WavPacked, compression type 97 (maybe, less important)
10
11       LZMA is first-level priority for 6.1, other formats may be taken
12       into consideration
13
14   o add support for reading AES encrypted archives
15     - WinZIP format (priority 1)
16     - PKZip format (priority 2)
17
18        top level item for 6.1
19
20   o add multi-part zipfile handling
21
22        major feature for 6.x!
23
24        could happen for 6.1
25
26   o better support for multilingual uses and different codepages;
27     support unicode (UTF-8 coded) filenames and comment texts
28
29        a requested feature getting more and more important,
30        - partially done for the Windows port in 6.0
31          (support restricted for chars of the current system codepage)
32        - partially done (beta state) for Unix
33          (requires native codepage to be UTF-8)
34
35   o complete support for UTF-8 coded entry names (and comments)
36     - add new "win32_wide" port to extend unicode support on Windows
37       beyond the restrictions of the current (ANSI) system codepage
38     - revise/extend the WinDLL interface to allow passing of "wide"
39       string argument data
40     - add simple built-in character translation between UTF-8 and the
41       old (ISO-8851-1 / IBM850) code pages to allow old systems without
42       standard UTF-8 support to read UTF-8 encoded archives.
43     - extend the built-in translation tables to support other language
44       regions besides "Western_Latin1" (e.g. Russian-kyrillic, Japanese,
45       Chinese)
46     - streamline the multilingual codepage and UTF-8 support for the UNIX
47       port (standard codepage translation facility?, like WideChar<->AnsiCP
48       translation functions under MS Windows)
49
50        should happen for 6.1
51        (there is internal alpha-state code for better "wide" support on
52        Windows available at the time of the 6.0 release)
53
54   o revise the "extended charcodes" handling in decryption password to
55     support UTF-8 encoding on Unicode-aware systems where the "native"
56     character coding is NOT UTF-8 (e.g. Windows).
57
58   o revise the command line interface for more compatibility with Zip'
59     command parser
60     - implement the versatile command parser from Zip 3.0.
61     - add "long option" definitions for all existing options; revise
62       the UnZip user manual to document the long-option alternatives.
63     - add support for reading the "process these entries" and the "skip
64       these entries" pattern lists from a file (or from separate files ?).
65     - add a (long) option to switch off UnZip's internal pattern matching
66       on filename arguments.
67
68        probably in 6.1,
69        (first prototype of the revised command parser was available at the
70        time of the 6.0 release)
71
72   o add command line options for miscellaneous features requested by users
73     and/or development team members:
74     - display the Info-ZIP software license
75     - more fine-tuning for file attributes set/restored at extraction, like:
76       set/clear archive attribute on DOS/OS2/WIN32;
77       apply/skip standard or user-defined umask filter on UNIX (& Unix-alike)
78     - additional time-stamp related processing filters
79     - more listing display modifications
80     - overriding the default date-time display style
81     - ...
82
83     All these options are of minor importance and/or would collide with
84     existing "one-character" options.  The current UnZip maintainer does not
85     want to reserve any of the few not-yet-occupied short option characters.
86     for one of these features.   So, any implementation effort for items
87     of this feature wish-list has to be delayed until the "long option"
88     support of the revised command line parser becomes available.
89
90       some option may get implemented in 6.1
91
92   o support for
93     and/or development team members:
94
95   o add new low-level, binary API; rewrite "normal" (command-line) UnZip
96     to use it
97
98        maybe soon (maybe 6.1)
99
100   o MSDOS/WIN32/others: detection of "reserved" names (= names of character
101     devices, or system extensions that look like a characters device driver)
102     at runtime; with the goal of emitting "meaningful" error messages and/or
103     rename queries.
104     (Currently, these reserved names are catched as "non-deletable files".
105      On MSDOS and WIN32, when the RTL stat() function allows to identify
106      character devices, the "reserved" names are automatically prefixed with
107      an underscore.)
108
109   o redesign "file exists -- is newer/older -- overwrite/skip/rename"
110     logic in extract.c and the corresponding system specific mapname()
111     services; to prevent superfluous decryption key prompts for entry
112     that will be skipped, later.
113
114   o rewrite to use fread/fseek/etc.  [eventually: test
115     write(bytes) vs. fwrite(words), especially on Crays/Alphas]
116
117        soon (probably in conjunction with multi-part handling)
118
119   o incorporate new backfill version of inflate()
120
121        wait for zlib version
122
123   o check NEXTBYTE for EOF in crypt.c, funzip.c and explode.c, too
124
125        whenever
126
127   o add option to force completely non-interactive operation (no queries
128     for overwrite/rename, password, etc.); also allow some sort of non-
129     interactive password provision?  (file? command-line? env. variable?)
130
131        someday?
132
133   o add testing of extra fields (if have CRC)
134
135        later
136
137   o rewrite to allow use as a filter
138
139        way, way later...
140
141   o add Unix hard-link support?
142
143        way, way later...
144
145   o add ".ini" file support as a (more elaborate) alternative to the presently
146     supported preconfiguring abilities via special environment variables
147     (UNZIP on many systems...)?
148
149        way, way later (if ever)...
150
151   o add option to search zipfile contents for a string and print the
152     results? ("zipgrep" option--e.g., unzip -g or unzip -S) (easy for
153     fixed strings, hard for wildcards/true regex's)
154
155        way, way later, if at all...probably use libregex
156
157   o add -y "display symlinks" option to zipinfo?  various sorting options?
158     (-St date/time, -Sn name)?
159
160        who knows
161
162   o add "in-depth" option to zipinfo? (check local headers against
163     central, etc.)--make it a better debugging tool (or just create
164     zipfix)
165
166        who knows (zip -F, -FF already exist)
167
168Some maintenance or OS specific topics for 6.0 release:
169
170   * add "unix-style-path -> partitioned-dataset filename" conversion
171     to MVS port
172
173   * should we add support for (null) entry names (empty entry name field), to
174     conform to the PKWARE specification?
175
176
177=======================================
178
179Requested features:
180
181 - extract or exclude on basis of UID [Armin Bub, Armin.Bub@bk.bosch.de, 970904]
182
183=======================================
184
185   o miscellaneous little stuff:  whenever
186     --------------------------
187
188 - change DOS -f/-u stuff to use DOS API for getting filetimes, not stat()
189
190 - add (-N?) option to lose all user input and/or switch to "(*input)()"
191   function, replaceable by UzpAltMain() param
192 - add -@ option to read from stdin (zip) or from file (PKZIP)?  (go32 built-in)
193 - add -oo option to overwrite OS/2 and DOS system and hidden files, too
194 - add option to compute MD5 checksum on files and/or on entire zipfile?
195
196 - decide whether to use WinGUI "skipping" diagnostics in extract.c
197 - combine "y/n/A/N" query/response stuff into unified section with query
198    function(s) (InputFn?)
199 - disable ^V code in remaining mapname() routines
200
201 - change filename-matching logic so case-insensitive if case-sensitive fails?
202
203 - allow multiple dir creation with -d option? [Bob Maynard]
204
205 - use gcc -pg, gprof to do profiling on unzip
206
207 - Doug Patriarche (doug.patriarche.bvdhp01@nt.com) Northern Telecom Canada Ltd.
208    "I need to do a port of zip/unzip for Wind River Systems' VxWorks OS"
209    [GRR:  15 March 95 -> "early June"]
210
211
212Features from old BUGS file (mostly duplicates of other entries above):
213
214 - ignore case for internal filename match on non-Unix systems, unless file-
215    specs enclosed in single quotes
216 - modify to decompress input stream if part of a pipe, but continue using
217    central directory if not (BIG job!)--extended local header capability
218 - add zipinfo option(s) to sort alphabetically, by date/time, in reverse, etc.
219 - when listing filenames, use '?' for non-printables? [Thomas Wolff, 92.6.1]
220 - add zipinfo "in-depth" option? (check local vs. central filenames, etc.)
221 - create zipcat program to concatenate zipfiles
222 - add -oo option (overwrite and override)?  no user queries (if bad password,
223    skip file; if disk full, take default action; if VMS special on non-VMS,
224    unpack anyway; etc.)
225 - add -Q[Q[Q]] option (quiet mode on comments, cautions, warnings and errors)?
226    forget -oo, or make synonym?  Default level -Q?
227