-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCHANGES
5669 lines (5606 loc) · 356 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
This is CHANGES for Zip, a detailed record of changes made to Zip each
internal and public beta and release since Zip 3.0. For changes and
bug fixes before Zip 3.0, see CHANGES30. For a detailed list of just
the added features and bug fixes, see WHATSNEW.
------------------------- July 5th 2008 version 3.0 -------------------------
1. Add -sd to extended help. zip.c (Will, Ed)
2. Fix memory bug when rebuilding Zip64 central directory extra field which
can crash MinGW and other ports when processing large files. zipfile.c
(Will)
3. Fix -v bug preventing display of version information when options in
environment variables. zip.c (Ed)
4. Update WhatsNew. WHATSNEW (Ed)
5. Update announcement. zip30.ann (Ed)
---------------------- August 16th 2008 version 3.1a01 ----------------------
1. Add support for -UN=N (no Unicode) and -UN=U (store Unicode as native
UTF-8) options to dll interface as fUTF8_No and fUTF8_Native in ZPOPT.
api.c, api.h (Ed)
2. Add support for Mac OS X file resource data to Unix port used for Mac OS
X with changes in #if defined(UNIX) && defined(__APPLE__) blocks.
Change parameter in newname() from isdir to flags. Define isdir as
(flags & FLAGS_DIR). Define archive name and file system name pointers
for AppleDouble. Change ex2in() to use name_archv. Add data_fork_only
global. Add check of f->flags and store f->flags in z->flags for UNIX
APPLE. Add FLAGS_DIR and FLAGS_APLDBL constants for AppleDouble.
fileio.c, globals.c, zip.c, zip.h (SMS)
3. Remove \t escapes for tabs from messages. fileio.c, zip.c, zipcloak.c,
zipfile.c, zipnote.c, zipsplit.c, zipup.c (SMS)
4. Define ZIP_DLL_VERSION as VERSION. revision.h (Christian)
5. Add -FF bug to ToDo list. TODO (Ed)
6. Only include bzlib.h header file for VMS. Provide prototype
bz_internal_error() to avoid potential compiler warnings. Change
parameter for bz_internal_error() from errcode to bzerrcode to
avoid conflict. zbz2err.c (Christian)
7. Add -df to help for UNIX APPLE. Update -df option description.
zip.c (SMS)
8. Uncomment WINDLL retcode. Use setjmp() only for WINDLL.
zip.c (Christian)
9. Fix bug where using native UTF-8 setting created a wrong central
directory size in the End Of Central Directory record because
tempzn was not updated when the standard name is replaced by
the UTF-8 name. zipfile.c (Ed)
10. Remove extra errbuf[] buffer to save 5000 bytes and help low
memory ports. zipsplit.c (Christian)
11. Include unix/macosx.h for UNIX APPLE. Add buffer for
AppleDouble header. Define TRANSLATE_EOL that is defined as
translate_eol_lcl for UNIX APPLE and translate_eol otherwise.
Add AppleDouble header size to Appledouble resource fork file
size. Data for header and resource stored in "._" file.
Always set AppleDouble files as binary. Never translate
AppleDouble files. Use getattrlist() to get resource data.
For file_read() supply fake file buffer data for AppleDouble
to real buffer. zipup.c (SMS)
12. Change filesize64 from _int64 to uzoff_t for WINDLL. Set zipfile
to y for ZLIB. Delete unused unsigned u. Add cast to zstrm.next_in
and EOF. zipup.c (Christian)
13. Update Acorn port. Change 31 and 32 to MAXFILENAMELEN. Update and
fix gmakefile. Update compilation instructions for gcc. Remove
instructions and add note referring to acorn/ReadMe to
readme.gmakefile. Remove MAXEXT. Use MAXFILENAMELEN in setting
dimension of canon and size. In setfiletype() use MAXFILENAMELEN
+ 32 as dimension. Initialize pref. acorn/acornzip.c,
acorn/gmakefile, acorn/readme, acorn/readme.gmakefile,
acorn/riscos.c (Jeffrey Lee)
14. Define MAXFILENAMELEN as 1024. Define DIR_BUFSIZE as MAXFILENAMELEN.
Remove riscos_direntry structure. acorn/riscos.h (Jeffrey Lee)
15. Update Obey file that sets up compilation. acorn/runme1st (Jeffrey
Lee)
16. Replace srcrename file with readable version. acorn/srcrename
(Jeffrey Lee)
17. Add support for no assembler and for tuning. Add clean target. Add
zbz2err.o. msdos/makebz2.dj2 (Christian)
18. Add support for no assembler and for tuning. Add clean target. Add
zbz2err.o. Update bzip2 support. Use $<. msdos/makefile.dj2
(Christian)
19. Add support for no assembler and for tuning. Add clean target. Add
zbz2err.o. Update bzip2 support. Use $<. win32/makefile.dj
(Christian)
20. Add support for no assembler and for tuning. Add zbz2err.o. Update
bzip2 support. Use $<. Add targets for zipl.o, zipfilel.o,
zipupl.o, fileiol.o, utill.o, globalsl.o, deflatel.o, treesl.o,
crc32l.o, cryptl.o, ttyiol.o, zbz2errl.o, win32zpl.o, win32l.o,
win32i64l.o, ntl.o, crci386l.o, matchl.o, api.o, windll.o,
windllrc.o, example.o, and zip.exe. Add compilation of example.c.
Add compiling bzip2. win32/makefile.gcc (Christian)
21. Add control of MATCH and CRC assembly. Apply unfolding optimization
as default. win32/makefile.wat (Christian)
22. Add dependency on unix/macosx.h. unix/makefile (SMS)
23. Include unix/macosx.h. Add get_apl_dbl_info() for getting APPLE
resource fork. Process AppleDouble Finder info and resource fork.
Use uname() for APPLE if available. unix/unix.c (SMS)
24. Add note for ZLIB. Add support for ZLIB for VMS. Define IZ_ZLIB.
Update say message. Add code to find the ZLIB library. Change cc
from using /include to using /object. Move logical name removal
section. vms/build_zip.com (SMS)
25. Instead of errcode use bzerrcode to avoid conflict.
vms/bzlib.h (SMS)
26. Add note for ZLIB. Add support for ZLIB. vms/descrip.mms (SMS)
27. Update SEEK_BZ. Update bzip2 and add zlib processing.
vms/descrip_src.mms (SMS)
28. Better handle VMS dots. vms/vmszip.c (SMS)
29. Update WINDLL C example. Instead of including zipver.h include
revision.h. Change DLL name from ZIP32.DLL to ZIP32Z64.DLL.
Remove ZIPSETOPTIONS as ZipSetOptions is no longer used. Add
usage message if less than 3 arguments. Change COMPANY_NAME to
IZ_COMPANY_NAME. Remove check of ZipSetOptions. Add memset for
ZpOpt. Set default compression level to 6. Add ZpOpt as
parameter to ZipArchive. Drop BOOL cast from dwPlatformId.
windll/example.c (Christian)
--------------------- September 7th 2008 version 3.1a02 ---------------------
1. Debian patch 844_003 to fix spelling in manual. man/zip.1, zip.txt
(sanvila)
2. Debian patch 5988_006 to change INSTALL_PROGRAM define to INSTALL for
manuals. unix/Makefile (sanvila)
3. Unix Apple changes for Mac OS X to support Apple Double format including
sequestered format. Default is to save data fork and resources. Add
support for -df option to Unix Apple (as in Mac OS port) to only save
data fork. Allow -df to be negated. Add new option -as to save in
Apple sequestered format. Add warning if use -df and -as together. Add
define for APL_DBL_PFX_SQR for sequester directory __MACOSX/. fileio.c,
globals.c, zip.c, zip.h, unix/macosx.h (SMS)
4. Add note in manual that Mac OS X features are referred to as UNIX APPLE
features. Update -df and add -as. man/zip.1 (EG)
--------------------- September 21st 2008 version 3.1a -----------------------
1. Update README. README (Ed)
2. Update INSTALL. INSTALL (Ed)
3. Add Zip 3.1a announcement. zip31a.ann (Ed)
4. Update WHATSNEW. WHATSNEW (Ed)
--------------------- February 5th 2009 version 3.1b01 -----------------------
1. Move __EBCDIC define earlier to avoid problem in includes. zip.h (Lutz)
2. Move definition of isatty() to within ifndef MVS block as MVS seems to
have a good isatty(). cmsmvs/cmsmvs.h (Lutz)
3. Add error message when file open fails. cmsmvs/mvs.c (Lutz)
4. Fix bug in zipnote where undefined file x was being closed instead of
in_file. zipnote.c (Christian)
5. Modify zip32z64 dll Options structure in backward-compatible way to permit
additional encryption methods later. Replace unused fSuffix in dll Options
with fMisc, remove fUTF8_No and fUTF8_Native from the structure as they
are not backward compatible, and add bits for suffices, no UTF8, and native
UTF8 to fMisc. Update fEncryption comment to note it means that encryption
is compiled in. api.c, api.h (Ed)
6. Update to new 2009-Jan-02 license. LICENSE, zip.h, revision.h (Ed)
7. Add special character exceptions in is_text_buf() for binary for EBCDIC.
util.c (Lutz)
8. Add new -Y option for encryption method. Not yet implemented. zip.c (Ed)
9. Update VBz64 example to use new fMisc. windll/vbz64/vbzipbas.bas (Ed)
10. If USE_STATIC_LIB, avoid double defining of printf, fprintf, and perror.
Change zfseeko and zftello to Win32 internal versions (though these are
commented out currently because they are not compatible with older
Win32 compilers). Check if WinDLL functions lpZipUserFunctions->comment
and lpZipUserFunctions->print are not NULL before using. api.h, tailor.h,
windll/windll.c (107E5eng)
11. New Unicode character set check that enables local character support first
and then uses nl_langinfo() to see if already using UTF-8 as the character
set. Also added alternate fix for MAEMO OS. zip.c (Danny Milosavljevic)
12. Numerous additional fixes for Acorn. See
http://www.riscos.info/cgi-bin/bugzilla3/show_bug.cgi?id=164. Changes
noted separately below. (John Tytgat)
13. Simplified rules (a bit modeled after the unix/Makefile). Again use
assembler files in acorn/match.s and acorn/sendbits.s like acorn/makefile
and which results in a small speed improvement. acorn/GMakefile (John
Tytgat)
14. Select APCS-32 instead of APCS-R build. Use C swiven version instead of
assembler version. Couple of cleanups. acorn/makefile (John Tytgat)
15. Add GAS versions for GCCSDK 4 usage (ELF instead of AOF). Simplified
indirect variable loading. Strict APCS-32 conformance instead of APCS-R.
acorn/match.s, acorn/sendbits.s (John Tytgat)
16. Update ReadMe. acorn/ReadMe (John Tytgat)
17. No longer use own typdef os_error but use kernel.h's _kernel_oserror.
Cleanups. Constify parameter pointers in swiven where it makes sense.
Remove SWI_OS_FSControl_54() as it wasn't used. Couple of register bits
for _swiv() were wrong or could be better specified. acorn/riscos.c,
acorn/riscos.h, acorn/swiven.c, acorn/swiven.h (John Tytgat)
18. Comment out unused "argument files not enabled" message (which removes
a compiler warning). fileio.c (John Tytgat)
19. In ziptyp(), add q = q for RISCOS to avoid compiler warning on unused
parameter. zipfile.c (John Tytgat)
20. Delete assembler version of file. This assembler version is obsolete
and replaced by the C version acorn/swiven.c (without any noticable
performance impact). acorn/swiven.s (John Tytgat)
21. Delete binary file as this is superceeded by Jeffrey Lee's BASIC
detokenized version acorn/srcrename. acorn/srcrenameold (John Tytgat)
--------------------- February 19th 2009 version 3.1b02 -----------------------
1. Change mbstowcs size parameter to use wide character count from
previous call to fix bug that caused illegal memory access Win32 crashes
when apparently illegal multi-byte strings were passed in. fileio.c
(kellner from forum)
2. Update copyright date. revision.h (Ed)
3. Add items to TODO list. TODO (Ed)
4. Define ESCAPE_CHR for setting default escape character \ to ^ for
VMS. Use ESCAPE_CHR in isshexp() instead of \. util.c (SMS)
5. Add nl_langinfo() check that sets NO_NL_LANGINFO if it doesn't exist.
In Unicode check, don't call nl_langinfo() if NO_NL_LANGINFO is set.
unix/configure, zip.c (Ed)
6. Change z->name to z->iname in check for directory, as z->name
directories may not end in / on some OS. Compare iname instead
of zname in zqcmp() and zuqcmp(). zip.c, zipfile.c (SMS)
7. Add cma$tis_vmserrno_get_addr define. zip.h (SMS)
8. Add comment to rqcmp() that this compare is used by trash(). Add
note to zsearch() that 3 is unicode_mismatch which means ignore
Unicode and that Unicode is not trusted yet for -FF. zipfile.c (Ed)
9. Add 4th parameter for IZ_ZLIB and 5th parameter for PROD (directory
for production output). Add check for valid C compiler. Add
support for zlib in IZ_ZLIB directory. Add support for PROD
directory. unix/configure, unix/makefile (SMS)
10. Updates to VMS build procedure to add NOCOMPILE and NOEXE command
line options and allow chosing of directory for output files.
vms/build_zip.com (SMS)
11. For VMS add support for PROD=subdir and add CLEAN to CLEAN_ALL.
vms/descript.mms (SMS)
12. Add support for PROD and DEST_STD. vms/descript_src.mms (SMS)
13. In vms_open(), reset ACL context before reading file ACL list.
Change error handling to set appropriate errno and vaxc$errno
values. Change ACL reading from getting all and storing in
buffer of 512 bytes that can be overrun in some cases to using
allocated buffer and reading each ACL separately. vms/vms_pc.c
(SMS)
14. Update VMS command descriptions, including adding note about
directories and adding note about ACL storage using -V and -VV
or /VMS[=ALL]. Add note for /TRANSLATE_EOL. vms/vms_zip.rnh,
vms/zip_cli.help (SMS)
15. Add ", :, \, and | to char_prop table. Update eat_carets() to
better escape dots in names. vms/vmszip.c (SMS)
16. Move main zip header include (api.h for api.c) in front of all
system header includes, so that the system-specific config
settings are applied before reading any system headers.
api.h, windll/windll.c (Christian)
17. Synchronize scope specifier at def of ucs4_char_from_utf8()
with scope specifier used in declaration to get rid of a compiler
warning. fileio.c (Christian)
18. Use Windows fseeki64() and ftelli64() beginning with Visual
Studio 2005 (VC 8.0), the first version they are publicly defined.
tailor.h (Christian)
19. Add some missing "const" modifiers to read-only string arguments
of helper functions. util.c, zip.h (Christian)
20. Add (char *) cast to isshexp() return. Add (wchar_t *) cast
to isshexpw() return. Remove cast of isshexpw() parameter.
Remove cast from isshexp() parameter. util.c (Christian)
21. Add dll section accidentally left out in last beta.
win32/makefile.gcc (Christian)
22. Adapt to Zip 3 (however, lcc-win32 does not (yet) work because
of a K&R C misinterpretation). win32/makefile.lcc (Christian)
23. Update comments. win32/makefile.w10 (Christian)
24. Correct wrong positioned merges of previous updates.
win32/makefile.wat (Christian)
25. Remove unsupported configuration option NOWIN98. Add "out:"
specification to dll link command. Update clean target.
win32/makefile.w32 (Christian)
26. Do not force NO_ASM for dll to allow build scripts to handle
this setting. win32/osdep.h (Christian)
27. Deactivate ftello/fseeko code when these functions are mapped
to system-supplied calls. Revise fseeko code to reset error
flags correctly. win32/win32i64.c (Christian)
28. Add comment regarding fseeki64() and ftelli64().
win32/win32i64.c (Ed)
29. Add missing CP_UTF8 symbol definition for lcc-win32 compiler
win32/win32zip.c (Christian)
30. Add compatibility defines for VC++ 8 and newer. Add workaround
for "printf" bug resulting in unresolved symbol at link time.
Comment out fSuffix option struct member which is not yet
implemented. windll/example.c (Christian)
31. Add missing win32i64.c to list of source files. Change settings
to compile LIB library for multithreading projects (same
configuration as the dll compilation).
windll/visualc/lib/zip32z64.dsp (Christian)
32. Remove unused local variable zipfile. zipup.c (Christian)
33. Create examples directory under windll to put all DLL and LIB
examples. Move example files to examples directory. Create
vb6 and vc8 directories under examples. windll/examples,
windll/examples/vc6, windll/examples/vc8, windll/examples/VB,
windll/examples/VBz64 (Ed)
34. Create projects for vc6 DLL and LIB. windll/examples/vc6/c_dll_ex,
windll/examples/vc6/c_lib_ex,
windll/examples/vc6/c_dll_ex/c_dll_ex.dsp,
windll/examples/vc6/c_dll_ex/c_dll_ex.dsw,
windll/examples/vc6/c_lib_ex/c_lib_ex.dsp,
windll/examples/vc6/c_lib_ex/c_lib_ex.dsw (Ed)
35. Add vc8 LIB example. windll/examples/vc8/c_lib_ex/,
windll/examples/vc8/c_lib_ex/example.c,
windll/examples/vc8/c_lib_ex/example.h,
windll/examples/vc8/c_lib_ex/TestZip.sln,
windll/examples/vc8/c_lib_ex/TestZip.vcproj (107E5eng from forum)
--------------------- February 27th 2009 version 3.1b03 -----------------------
1. Add option -pp to specify a path prefix, but not implemented yet. Add
global variable path_prefix. zip.c, globals.c, zip.h (Ed)
2. Restore notice date. revision.h (Christian)
3. Add include <langinfo.h> for nl_langinfo(). tailor.h (SMS)
4. Add check for UTF-8 locale when nl_langinfo() is not available to check
for UTF-8 character set. zip.c (Ed)
5. Fix ODS5 Unicode comment. vms/vmszip.c (SMS)
6. Fix optional bzip2 support for dll build. Add api.h to dll compile.
win32/makefile.gcc (Christian)
7. Fix example.exe build rules. win32/makefile.gcc, win32/makefile.w32
(Christian)
8. Add missing "delete resource binaries" (*.res) command to clean
target. win32/makefile.wat, win32/makefile.w10 (Christian)
9. Update description files. zip.aps, ziprc (Ed)
10. Update windll/contents to document the current directory structure.
windll/contents (Christian, Ed)
11. Change Visual C++ directory from visualc to vc6 to be consistent
with adding vc8 projects. windll/vc6 (Ed)
12. Remove duplicate structs.h from windll/examples subdirectory.
windll/examples/struct.h (Christian)
13. Correct include directive for structs.h to point to the existing
file. windll/examples/example.h (Christian)
14. Correct target output directory and "structs.h" location in VC6
example project files. windll/examples/vc6/c_dll_ex/c_dll_ex.dsp,
windll/examples/vc6/c_lib_ex/c_lib_ex.dsp (Christian)
15. Add lib_here.txt file to note where lib file goes.
windll/examples/vc6/c_lib_ex/lib_here.txt (Ed)
16. Correct additional include dir specifications to relative path
to remove references to specific directories.
windll/examples/vc8/c_lib_ex/TestZip.vcproj (Christian)
17. Rename VC8 lib example TestZip project to c_lib_ex to match new
structure of examples directory. Instead of local example.h and
example.c use common ones in windll/examples. For now keep old
ones as renamed files.
windll/examples/vc8/c_lib_ex/c_lib_ex.sln,
windll/examples/vc8/c_lib_ex/c_lib_ex.vcproj,
windll/examples/vc8/c_lib_ex/example_old.h,
windll/examples/vc8/c_lib_ex/example_old.c (Ed)
18. Add VC8 project for dll example.
windll/examples/vc8/c_dll_ex/c_dll_ex.sln,
windll/examples/vc8/c_dll_ex/c_dll_ex.vcproj (Christian)
19. Update VC8 readme. win32/vc8/ReadmeVC.txt (Ed)
20. Add readme for WinDLL examples. windll/examples/readmeex.txt (Ed)
21. Copy C-Sharp project from Zip 2.32. Has not been updated for Zip 3.0
yet. windll/examples/csharp, windll/examples/csharp/readmecs.txt,
windll/examples/csharp/zip, windll/examples/csharp/zip/,
windll/examples/csharp/zip/app.ico, windll/examples/csharp/zip/zip.cs,
windll/examples/csharp/zip/assemblyinfo.cs,
windll/examples/csharp/zip/csharpinfozip_zipsample.csproj,
windll/examples/csharp/zip/form1.cs,
windll/examples/csharp/zip/form1.resx,
windll/examples/csharp/zip/zipdllprintmessageeventargs.cs,
windll/examples/csharp/zip/zipdllservicemessageeventargs.cs (Ed)
22. Add readme files for VC6 and VC8 projects.
windll/examples/vc6/readmev6.txt, windll/examples/vc8/readmev8.txt,
windll/vc6/readmev6.txt, windll/v8/readmev8.txt (Ed)
---------------------- March 17th 2009 version 3.1b04 ------------------------
1. Add new -cd option as placeholder for a change directory command that
changes the root directory for the zipping operation. There could be
complications, especially for split archives. zip.c (Ed)
2. Remove free() from option -pp command case. zip.c (Ed)
3. Implement -pp option. In putlocal() and putcentral(), store path to
write to header in new iname variable and length in nam. If path_prefix
not NULL, prepend to path. zipfile.c (Ed)
4. Add SYS$DISK: to link commands. vms/build_zip.com,
vms/descrip.mms (SMS)
5. Update link commands to use /library. vms/descrip.mms (SMS)
6. Remove INCL_BIP2_M. vms/descrip_src.mms (SMS)
7. Remove references to [.VMS]00README.TXT and [.VMS]00BINARY.VMS.
vms/install_vms.txt (SMS)
8. Update note on determining symlink support to remove instructions
for searching UnZip binary for symlink and instead note -v option
for UnZip, as was already done for Zip. vms/notes.txt (SMS)
9. Remove stray ! from comment. win32/makefile.gcc (Christian)
10. Remove old borland dll and lib from contents. Note that
16-bit Windows 3.x no longer supported. windll/contents (Christian)
---------------------- March 28th 2009 version 3.1b05 ------------------------
1. Make the args variable global so arguments can be freed by freeup() and
when no longer needed, fixing memory leak. globals.c, zip.h, zip.c
(Polo from forum, Ed)
2. Update comment in freeup(). Move freeing of allocated globals from
finish() and ziperr() to freeup(). After tempzip is freed, set to
NULL. Initialize args to NULL. zip.c (Ed)
3. Free value after add_name() while processing command line to fix memory
leak. zip.c (Polo from forum)
4. Move password key processing after log file opened so any errors get
reported to log file if open. zip.c (Ed)
5. Add check for illegal characters in path prefix string. Currently a path
prefix must consist of alphanumeric characters (in the current character
set, i.e. checked with isalnum()), with "!@#$%^&()-_=+/[]{}|" also
allowed. Also ".." is not allowed in the prefix string. The filtering
is to avoid security problems. zip.c (Ed)
6. Free args after last use. zip.c (Polo from forum)
7. Add option -MV to allow setting MVS file path translation and add new
dots (no change) and slashes (convert all dots to slashes) modes. Add
new mvs_mode global. globals.c, zip.h, zip.c, cmsmvs/cmsmvs.c (wesclusa
from forum, Ed)
8. Pass Zip password (provided by -e or -P) to -T archive test option that
calls unzip (or a user-provided command if -TT specified) so unzip can
use same password to test archive. Add {p} as placeholder for adding
password to -TT string. Update unzip_path note. Update UnZip 6 note.
zip.c (tkrueger from forum, Ed)
9. Update description of patterns in extended help. Update extended help
for -T and -TT. Add -pp (path prefix) and -MV (MVS path translation mode)
to extended help. zip.c (Ed)
10. Update note for multi-character option defines. zip.c (Ed)
11. Add -aa (all-ascii) option for skipping binary check in is_text_buf(),
forcing all files to be handled as ASCII text. This is useful for EBCDIC
translation (as for Z/OS), but made this global option in case there's
some other use. zip.c, zip.h, globals.c, util.c (Lutz from forum, Ed)
12. Add -HH option for extended help so help works even if there's case
problems. zip.c (Ed)
13. Update WhatsNew. WHATSNEW (Ed)
14. Update annoucement. zip31b.ann (Ed)
15. Drop new -cd option until details worked out. zip.c (Ed)
----------------------- March 31st 2009 version 3.1b06 -------------------------
1. Add missing local declaration for len in -T code. zip.c (Ed)
2. Update README. README (Ed)
3. Update tempzn byte count in putlocal() and putcentral() to fix path prefix
bug. zipfile.c (Ed)
4. Add warning to -P option in extended help. zip.c (Ed)
5. Update INSTALL. INSTALL (Ed)
6. Update announcement. zip31b.ann (Ed)
7. Update TODO. TODO (Ed)
------------------------ April 9th 2009 version 3.1b --------------------------
1. Update manual to include new options -aa, -MV, and -pp. Update
descriptions of -T and -TT. Update introduction section. Updates for
-w and -ww. Additional minor updates. man/zip.1, zip.txt (Ed, SMS)
2. Update WhatsNew. WHATSNEW (Ed)
3. Update announcement. zip31b.ann (Ed)
4. Update TODO. TODO (Ed)
------------------------ July 20th 2009 version 3.1c01 --------------------------
1. Add -aa option to skip binary check. Add global all_ascii. (Ed)
2. Fixes to -aa and -MV options. cmsmvs/cmsmvs.c, zip.c (Lutz)
3. Use 64-bit zfseeko + zftello functions for large file support.
cmsmvs/cmsmvs.c (RBW)
4. Add missing } and fix mvs_mode 1 and 2. cmsmvs/cmsmvs.c (Ed)
5. Change file size parameter in filetime() from long to zoff_t
to handle 64-bit values. Add z/OS large file comment. Add
cast to -1 for file size. Initial changes to support Zip
64-bit calls, but some work still needs to be done.
cmsmvs/cmsmvs.c (RBW)
6. Prevent double define of EBCDIC. cmsmvs/cmsmvs.h (RBW)
7. Update MVS makefile to set compile options for large file support; change
"$%" to "$@"; set maximum optimization option ("-O3"). Update compilation
options to add large file support to z/OS. Change infor.zip(zip) to
infozip.load(zip). cmsmvs/mvs.mki (RBW)
8. Add comments. cmsmvs/mvs.mki (Ed)
9. Prevent display of garbage characters in filenames by skipping the attempt
to render the low 32 unprintable characters as printable. The technique
does not work for EBCDIC. Move display_string allocation to before use
for EBCDIC. fileio.c (RBW)
10. Set definitions needed for large file support under z/OS. Add ifndef
for _LARGE_FILES. Enable 64-bit functions for z/OS. tailor.h (RBW)
11. Create target for zos, which now works like the generic target; redirect
the os390 target to the zos target. unix/Makefile (RBW)
12. Detect z/OS or OS/390 system, and set appropriate flags; detect IBM C
compiler and set maximum optimization level (this produced a 3-4x speedup
in testing). Add param.h to nonexistent include check. Add SYSTEM check
for OS/390. unix/configure (RBW)
13. Guard against double define of _LARGE_FILES. unix/osdep.h (RBW)
14. Fix compile error under z/OS. zip.c (RBW)
15. Large file support fixes for z/OS. zipfile.c (RBW)
16. Add README.zOS. README.ZOS (RBW)
17. Add C++ EXPENTRY entries. api.h.
18. Add free(z->oname) to newname() and newnamew() to fix memory leak.
fileio.c
19. Add help for new -aa option for EBCDIC not CMS_MVS. zip.c (RBW)
20. Add extended help for EBCDIC options -a and -aa. zip.c (Ed)
21. Add temp debug output showing int sizes. zip.c (RBW)
22. Add type cast to popen for ZOS. zip.c (RBW)
23. Change add_filter() to always save the full path in ex2in() by
setting pathput to 1 for just that call. This should fix a
problem where patterns are not matching stored paths when the
-j option is used to strip the path. zip.c (SMS)
24. Change -aa from global to only for EBCDIC as some problems on
other ports and not needed except for EBCDIC. (Lutz, Ed)
25. Finish implementing -aa option (after users reminded it wasn't).
zip.c (Ed)
26. Change EBCDIC messages from using printf() to zipmessage() so
message formats are standardized and logged (when logging
enabled). zip.c (Ed)
27. Add zoff_t cast to zfseeko() calls for z/OS (as it apparently
needs them). zipfile.c (RBW)
28. In readlocal(), initialize split_path to NULL and free it later
if not NULL. zipfile.c (Ed, Kamers)
29. Change warnings for "unable to seek in input file" errors to
include a "(zf-0x) identifier so that the particular error can
be determined. zipfile.c (RBW)
30. In scanzipf_regnew(), add check for cd_total_entries rollover
for archives from old zips that stored more entries than the old
structure could hold without rollover. This should fix problem
where these archives were rejected as bad. zipfile.c (Ed)
31. In zipcopy(), initialize split_path to NULL and free later if
not NULL to fix memory leak. zipfile.c (Ed, Kamers)
----------------------- August 15th 2009 version 3.1c02 -------------------------
1. Update EXPENTRY entries for DLL to fix compiler problem in VC6.
api.h (Ed)
2. Add get_time_in_usec() to time zipping rate in microseconds. Calls system
function gettimeofday() to get usec time. fileio.c, zip.h (Ed)
3. Add globals display_time, display_est_to_go, display_rate, clocktime,
start_zip_time, and current_time for new -dt, -de, and -dr options. Create
new define ENABLE_ENTRY_TIMING to enable usec timing if system supports it.
zip.h, globals.c (Ed)
4. Add -dt (--display_time), -de (--display_est_to_go), and -dr
(--display_rate) options. Add extended help for -dt, -de, and -dr. Option
-dt uses standard timing to second resolution, while -de and -dr use usec
resolution to get better rate estimates. zip.c (Ed)
5. Update manual to include -dt, -de, and -dr options. man/zip.1, zip.txt (Ed)
6. In configure, if gettimeofday() and long long are supported, define
ENABLE_ENTRY_TIMING to enable -de and -dr options. unix/configure (Ed)
7. Add sys/time.h include if ENABLE_ENTRY_TIMING is defined. unix/unix.c (Ed)
8. If LARGE_FILE_SUPPORT is enabled on Windows, define ENABLE_ENTRY_TIMING.
Add replacement for missing gettimeofday() on Windows based on code from
openasthra.com. Define local version of get_time_in_usec() for Windows
using local gettimeofday(). win32/osdep.h, win32/win32.c (Ed)
9. Update formatting of VB example files. Implement UTF8 options. Comment
out unimplemented fSuffix. windll/examples/vbz64/vbzipbas.bas,
windll/examples/vbz64/vbzip.vbw, windll/examples/vb/vbzip.vbw (Ed)
10. Add api.h and windll.h to dll project. windll/vc6/dll/zip32z64.dsp (Ed)
----------------------- April 14th 2010 version 3.1c03 -------------------------
1. Add Fedora stack markings patch (exec-shield.patch) to prevent stack from
being executable, patch forwarded from Debian bug system. See
http://cvs.fedoraproject.org/viewvc//devel/zip/exec-shield.patch?view=markup.
crc_i386.S, match.S (sanvila on forum, Kees Cook)
2. Changed VMS wild() to avoid saving a user-specified version
(";1") when the user-specified file is a directory. vms/vmszip.c (SMS)
3. Changed VMS deletedir() to use (complex) $QIOW code instead
of (simple) system() with a "SET PROT" command, to eliminate annoying
%SET-E-PRONOTCHG messages when SET PROT failed during "zip -m"
directory deletions. vms/vmszip.c (SMS)
4. Add CRYPT defines around password code. zip.c (SMS)
5. Change instances of k used for comments to new comment_size with type
extent. zip.c (SMS, Ed)
6. Remove extra comment introducer. zipfile.c (SMS)
7. Add wchar.h and wctype.h includes to wide character check code.
unix/configure (SMS)
8. Add checks for uname -m, uname -o, uname -p, uname -r, uname -s,
and uname -v and pass back to main code for version information.
unix/configure (SMS)
9. Move __APPLE__ define. Use UNAME defines. unix.c (SMS)
10. Add include for incl_bzip2_m to link executable. Include (GLOBALS).
vms/build_zip.com, vms/descript.mms, vms/descript_src.mms (SMS)
11. Update handling of exit codes for VMS. vms/notes.txt, vms/vms.c (SMS)
12. Define VAX Type-Cast to avoid compiler warnings. vms/vmszip.c (SMS)
13. Comment out sys/time.h include because prevents compiling on Windows
MSVS that does not have it. fileio.c (Ed)
14. Update some copyrights to 2010. revision.h (Ed)
----------------------- May 14th 2010 version 3.1c04 ---------------------------
1. Format #if blocks to verify all blocks close in response to user question.
zipfile.c (Ed)
2. Update structure _ZpVer to include option structure ZPOPT size and a new
string to provide a comma separated list of enabled features to the user,
currently set to NULL. Add comments. Add DLL support for -Z compression
method, by adding compression method name string to ZPOPT. In ZPOPT change
fMisc to fUnicode in ZPOPT structure, removing unused suffix flag. Add 8
long words of fluff at end of ZPOPT for future expansion. All this makes
this ZPOPT not backward compatible, but will allow backward compatible
expansion in the future. api.c, api.h (Ed)
3. As Zip version is provided through Z_MAJORVER, Z_MINORVER, and Z_PATCHLEVEL,
starting with Zip 3.1c, DW_MAJORVER, DW_MINORVER, and DW_PATCHLEVEL defines
are frozen at 3, 1, and 0 (this version) unless the DLL interface changes
in a way that is not backward compatible. api.c, api.h, revision.h (Ed)
3. If logfile is specified as "-", send log output to stdout. Forces -q to
avoid duplicate output to stdout. Options -la (append to existing log)
and -v (verbose) are not allowed, as output is determined by the logging
code and the -li option. Update -lf extended help. zip.c (Ed)
4. Update copyright date. zip.h (Ed)
5. If display_globaldots (-dg) is set, do not output a newline after each
file in DisplayRunningStats(). This newline kept the dots from staying
on the same line as intended. zip.c (Ed)
6. Clean up indentation of #if blocks. zipfile.c
7. Add Ignore_Export_Lib 0 for consistency. win32/vc6bz2/zip.dsp (Ed)
8. Add bzip2 enabled Windows DLL and LIB MSVS 6 projects.
windll/vc6bz2/readmev6bz2.txt, windll/vc6bz2/dll/zip32z64.dsp,
windll/vc6bz2/dll/zip32z64.dsw, windll/vc6bz2/lib/zip32z64.dsp,
windll/vc6bz2/lib/zip32z64.dsw (Ed)
9. Update install.txt to note added bzip2 DLL and LIB capability for
Windows. bzip2/install.txt (Ed)
----------------------- June 14th 2010 version 3.1c05 --------------------------
1. Allow negating -j as replacement for -p. Provide warning when -p used that
it is deprecated. Add note to extended help. zip.c (SMS, Ed)
2. Change | to & in UTF-8 option bit checks against fUnicode. api.c (stu003
from forum thread "Wrong interpreting the UTF-8 settings in api.c")
3. Add ProgressReport callback to WinDLL, enabled by ENABLE_DLL_PROGRESS
define. Add szProgressSize to Options structure and use to set
progress_chunk_size. Add feature list string to pVersion callback. Items
in string are delimited by semicolons and have form ;xx; including first
and last items. Some items have lists of valid values, as with
";compmethods:store,deflate;" (compression method list when bzip2 not
enabled). Add globals bytes_read_this_entry, bytes_expected_this_entry,
entry_name, progress_chunk_size, last_progress_chunk. Progress report
calculations in zipup(), file_read(), filecompress(), bzfilecompress().
api.c, api.h, globals.c, zipup.c, win32/osdep.h (Ed)
4. Handle better bad compression level from DLL caller. Add kluge around
not being able to support compression level 0 directly from DLL call.
Only allow fEncrypt flag to be 0 or 1. Support separate ExcludeBeforeDate
and IncludeBeforeDate. Remove fTemp from Options structure and just check
if szTempDir is NULL or empty instead. Update comments. api.c, api.h (Ed)
5. Add comments. crypt.c (Ed)
6. Change vms_zip_command() to return unsigned int instead of ulg. Related
updates. Add new file zip_cli.rnh. vms/commandline.c, vms/zip_cli.cld,
zip.h, vms/zip_cli.rnh (SMS)
7. Update bzip2 install.txt to note WinDLL now supports. bzip2/install.txt (Ed)
8. Add note that readme file needs updating. windll/windll.txt (Ed)
9. Update WinDLL examples. Resize VB example form. Add ProgressReport
callback to VB example and update to latest api structures. Update VB
form to display percent archive and entry completions in title bar.
windll/examples/example.c, windll/examples/example.h,
windll/examples/vb/readmevb.txt, windll/examples/vbz64/readvb64.txt,
windll/examples/vbz64/vbzip.vbw, windll/examples/vbz64/vbzipbas.bas,
windll/examples/vbz64/vbzipfrm.frm (Ed)
10. Copy old vbz64 to vbz54_30. This will probably be deleted shortly.
windll/examples/vbz64_30/readvbz64_30.txt,
windll/examples/vbz64_30/vbzip.vpb, windll/examples/vbz64_30/vbzip.vbw,
windll/examples/vbz64_30/vbzipbas.bas,
windll/examples/vbz64_30/vbzipfrm.frm (Ed)
11. Add readcex.txt. windll/examples/vc6/readcex.txt (Ed)
12. Update MSVS project. windll/vcc6bz2/dll/zip32z64.dps (Ed)
----------------------- June 14th 2010 version 3.1c06 --------------------------
1. Change incorrect bytes_read_so_far to bytes_so_far. zipup.c (SMS, Ed)
2. Delete zip_cli.rnh. vms/zip_cli.rnh (SMS)
3. Update Zip CLI help noting change from /JUNK to /NOFULL_PATH. Add <NEXT>
in many places. vms/zip_cli.help (SMS)
----------------------- June 17th 2010 version 3.1c07 --------------------------
1. Change incorrect bytes_read_so_far to bytes_so_far in filecompress() and
bzfilecompress(). zipup.c (Ed)
2. Change strftime() to sprintf() as older VMS does not support strftime().
zip.c (SMS, Ed)
----------------------- June 21st 2010 version 3.1c08 --------------------------
1. Add zero to day of display time -dt display. zip.c (SMS, Ed)
2. Add license version to license option output. revision.h (Ed)
3. Version ID file updated. file_id.diz (Ed)
4. Update Install information. INSTALL (Ed)
5. Update Readme. README (Ed)
6. Update TODO. TODO (Ed)
7. Update WhatsNew. WHATSNEW (Ed)
8. Add announcement file for Zip 3.1c. zip31c.ann (Ed)
9. Update WinDLL examples readme. windll/examples/readmeex.txt (Ed)
10. Update C Sharp readme. windll/examples/csharp/readmecs.txt (Ed)
11. Update C examples readme. windll/examples/vc6/readcex.txt (Ed)
12. Update VC6 examples readme. windll/examples/vc6/readmev6.txt (Ed)
----------------------- June 22nd 2010 version 3.1c ---------------------------
1. Include <sys/time.h> for Tru64 to define timeval. fileio.c (SMS)
-------------------- September 14th 2010 version 3.1d01 -----------------------
1. Add -lu option to store UTF-8 paths in the log. Add global log_utf8.
globals.c, zip.c, zip.h (Ed)
2. Update extended help, adding -lu and updating -T and -UN options. zip.c
(Ed)
3. Rename variable utf8_force to utf8_native, as this flag forces storage of
UTF-8 in the main path field as happens when UTF-8 is native character set.
globals.c, zip.c, zip.h (Ed)
4. Instead of setting the UTF8_BIT for all entries needing Unicode when
utf8_native is set, only set for new entries and keep setting of old
entries. Zero z->flg in zip.c and set UTF8_BIT there, instead of zeroing
in zipup.c. zip.c, zipfile.c, zipup.c (Ed)
5. Move definition of UTF8_BIT from zipfile.c to zip.h to make global. zip.h,
zipfile.c (Ed)
-------------------- September 15th 2010 version 3.1d02 -----------------------
1. Add missing UNICODE_SUPPORT ifdefs. zip.c (SMS, Ed (EG))
-------------------- February 19th 2011 version 3.1d03 ------------------------
1. Add clearerr() to clear EOF and error flags after initial checks looking
for zip file end structures. zipfile.c (Dennis LaBelle)
2. Change stored folders to require Version Needed To Extract 2.0 as the
AppNote requires instead of 1.0. zipup.c (from Theo in forum thread
"Compatibility - Folders Version Needed to Extract", EG)
3. Add linker check to Unix configure script. unix/configure (SMS)
4. Add preliminary AES encryption (WinZip version). Only AE-1 currently
implemented, though AE-2 is a very simple addition (mainly involves
how CRC is handled) and is planned for next beta. Note that the
function entropy_fun in crypt.c is currently only implemented for WIN32.
Versions may be needed for each OS. IZ_PWLEN increased from 80 to 256,
allowing longer passwords to support stronger AES encryption. Add
globals encryption_method, aes_vendor_version, aes_strength,
comp_method, force_ansi_key, key_size, zctx (encryption context),
zpwd, zpwd_len, zsalt, zpwd_verifier, aes_rnp (random number pool),
and auth_code. Add AES Strong Encryption export control notice.
Add CRYPT_AES to -v output. Change -v standard encryption listing
from "encryption" to "zip standard encryption". Implement option
-Y to set encryption method. Add AES 128 and AES 256 methods.
Though Gladman will also do AES 192, did not implement that at
this time. Force minimum of 16 characters for password when using
AES encryption. Add ZE_CRYPT error code. All AES encryption in
CRYPT_AES ifdef blocks. Add CRYPT_AES_EF_TAG. Add
add_crypt_aes_local_extra_field() and add_crypt_aes_cen_extra_field().
Make write_string_to_mem() global. Save z->how in how so can update
with AES compression method 99 later. Small change to Version Needed
To Extract warning. Add expected_size for check to cover different
encryption methods. For AES encryption don't use extended header.
crypt.c, crypt.h, globals.c, revision.h, zip.c, zip.h, ziperr.h,
zipfile.c, zipup.c, win32/win32.c (EG)
5. Add option -lF as shorthand for "-lf archive.log" where archive is the
output archive name. Add global use_outpath_for_log. globals.c,
zip.c (EG)
6. Add option -pn to allow use of non-ANSI characters in password. Default
changed to only allow ANSI characters. globals.c
7. Update ToDo. TODO (EG)
8. Change GB to GiB and MB to MiB in extended help. Add -Y, -lF, and -pn
options to extended help. zip.c (EG)
9. Update entry timing to fix bug where timing is messed up after awhile.
Not tested yet. Types updated from int to uzoff_t. Add check to
keep bytes_to_go no smaller than 1. Account for files_to_go when
estimating time to go as listing files on console takes time. Change
how tmpres is assigned in gettimeofday(), though this function is no
longer used. Add new get_time_in_usec(). zip.c, win32/win32.c
10. Add to zipoddities() ver 45 to version check that complains when version
is not supported. zipfile.c (EG)
11. Add tradeoff comment for files that don't compress. zipfile.c (EG)
12. Fix Win32 bytes security message so goes to console and log as requested.
win32/win32zip.c (EG)
13. Added install readme to aes directory. aes/installaes.txt (EG)
---------------------- April 20th 2011 version 3.1d04 -------------------------
1. SunOS 4.x (like Tru64) needed <sys/time.h>. New C macro HAVE_SYS_TIME_H
replaces old Tru64 condition. fileio.c, unix/configure (SMS)
2. For operations with both input and output archives, temporary archive
files could be created on the file system with the input archive instead
of on that of the output archive, wasting time when the temporary archive
needed to be copied (not renamed) to its destination, or causing I/O
errors if the input archive was on a read-only file system. Now instead
of zipfile (input archive path) use out_path (output archive path) as
base of temp path when out_path is different than zipfile. New -sd
diagnostic messages reveal more info on temporary files. fileio.c,
globals.c, zip.c, zip.h (SMS)
3. GCC 2.8.1 on SunOS 4.1.4 wanted a declaration of strerror() when using
our replacement strerror() function. Changed UINT_MAX, ULONG_INT, and
USHRT_MAX checks to drop UL on constants. tailor.h (SMS)
4. Use "uname" output for more system names. unix/unix.c (SMS)
5. Expanded the VMS-specific errbuf[] buffer to accommodate longer messages
or file names. vms/cmdline.c (SMS).
6. Add a ZCONST to the VMS-specific ziperr() declaration, to agree with
the prototype in "zip.h". vms/cmdline.c (SMS).
7. VMS-specific tempname() improperly reused temporary archive names for
split archives. "ZI<process_id>.<serial>" replaces "ZI<process_id>.",
providing multiple unique names when needed. vms/vms.c (SMS)
8. Replace stricmp() with strcasecmp(). zip.c (SMS)
9. Change from NAM_STRUCT to NAMX_STRUCT. Use NAMX_DNA_FNA_SET(fab).
vms/vms.c, vms/vms.h, vms/vms_im.c, vms/vms_pk.c, vms/vmsmunch.c,
vms/vmszip.c (SMS)
10. Disable the old "make some kind of mktemppath()" code, allowing temp path
code later in file to do its job. zip.c (SMS)
11. Move definition of variable how outside of ZIP64_SUPPORT block as needed
by AES encryption even if not using ZIP64_SUPPORT. zipfile.c (EG)
12. Define STRCASECMP() that resolves to stricmp() on Windows and strcasecmp()
for other ports. tailor.h, zip.c (EG)
---------------------- April 27th 2011 version 3.1d05 -------------------------
1. Fix bug where standard encrypted entries were being marked as AES when
AES entries were added. Add encrypt_method to zlist structure. zip.c,
zip.h, zipfile.c, zipup.c (EG)
2. Fix endian problems in AES source. Need to report back the fixes to
Gladman. aes/aesopt.h, aes/sha1.c (SMS)
------------------------ May 5th 2011 version 3.1d06 --------------------------
1. Make entropy_fun() in crypt.c (perhaps an example for other ports to
reference) only applicable for WIN32 as some of the calls may only exist
in WIN32, though similar calls exist on some other ports. crypt.c (EG)
2. Add PROTO and NO_PROTO support to aes_crypthead(),
add_crypt_aes_local_extra_field(), add_crypt_aes_cen_extra_field().
Split long prototypes on multiple lines. crypt.c, zipfile.c (SMS)
3. Fix spelling. INSTALL, tailor.h, zip.c, macos/history.txt,
msdos/osdep.h, novell/osdep.h, os2/osdep.h, proginfo/extrafld.txt,
vms/vms.h (SMS)
4. Remove #ifdefs from o_xx option definitions as it makes the list easier
to read and they really don't do much. zip.c (EG)
5. Add -sd message after AES pool is initialized. Keep track of how long
AES random number pool takes to initialize and output time in message.
zip.c (EG)
6. Move VMS sys$ defines from zip.h to vms/osdep.h. zip.h, vms/osdep.h (SMS)
7. Change comp_method to z->how in AES extra field calls to fix bug where
the wrong method was sometimes being stored in the extra field when the
method changed from entry to entry. Remove now unused comp_method.
zipfile.c, globals.c, zip.h (EG)
8. Comment out fflush(y) in zipup() as not sure why there. zipup.c (EG)
9. Update manual for Zip to list archive operation modes alphabetically.
Clarify modes of operation. Add --version option description.
man/zip.1 (jaalto (from SourceForge Patch ID 3295707, et al.), EG)
10. Modify configure script to accept "var=value" parameters where var are
CC, CFLAGS, AES, and so on in valid_vars list. This replaces the
positional parameters. Add AES encryption support. unix/configure (SMS)
11. Minor message wording changes. unix/configure (EG)
12. Add compilation support for AES. Add support for new configure
parameters. Remove generic_gcc target as now "generic CC=gcc" covers
that. unix/Makefile (SMS)
13. Add initial Unix version of entropy_fun() for AES encryption that tries
to use the /dev/random or /dev/urandom devices or, failing that, uses
a simple time and PID seed. The random devices have not been tested
for enough randomness on enough systems yet and the PID fallback
should probably include some thread ID. unix/unix.c (SMS)
14. Add VMS AES compile support. vms/build_zip.com (SMS)
15. Add VMS AES options. vms/cmdline.c, vms/zip_cli.cld (SMS)
16. Minor dependency updates. vms/collect_deps.com (SMS)
17. Update for AES. vms/descrip.mms, vms/descrip_deps.mms,
vms/descrip_mkdeps.mms, vms/descrip_src.mms (SMS)
18. Add file to handle endian for AES. vms/endian.h (SMS)
19. Add file to fix missing string.h include in AES source.
vms/memory.h (SMS)
20. Add VMS version of entropy_fun(), with device_opcnt_bits()
and device_opcnt_32(). vms.c (SMS)
21. Remove STRCASECMP code. vms/vmszip.c (SMS)
22. Add VMS help for AES encryption. vms/zip_cli.help (SMS)
----------------------- May 14th 2011 version 3.1d07 --------------------------
1. Update encryption comments. crypt.c (EG)
2. Change CRYPT_AES define to CRYPT_AES_WG (AES WinZip/Gladman
encryption. crypt.c, globals.c, revision.h, zip.c, zip.h, zipfile.c
zipup.c, unix/unix.cvms/build_zip.com, vms/vms.c (SMS, EG)
3. Update note. vms/descrip.mms (SMS)
4. Isolate entropy_fun() for Win32 to just Zip (for now). crypt.c (SMS)
5. Update testp() and testkey() to be compatible with UnZip version.
Add AES decryption. crypt.c (SMS)
6. Add some hex translations for GLOBAL keys. crypt.c (SMS)
7. Update decrypt() for UnZip to include AES. crypt.c (SMS)
8. Change RAND_HEAD_LEN constant to head_len variable to handle AES
variable length header. crypt.c (SMS)
9. Change zoff_t to long in Trace() calls and remove fzofft formatting.
crypt.c (SMS)
10. Change constant 2 to PWD_VER_LENGTH. crypt.c (SMS)
11. Include aes/fileenc.h when USE_AES_WG set (for UnZip). Add buffer
size checks (for UnZip). crypt.h (SMS)
12. Add new -pa (--prefix-added) option that works like -pp but only
adds the prefix to new or updated entries. Add global
path_prefix_mode. Add -pa to extended help. globals.c, zip.c,
zipfile.c (LynX, EG)
13. Remove aes/prng.h include and include aes/aes.h and aes/aesopt.h instead.
zip.c (SMS)
14. Change version information standard encryption listing from "zip standard
encryption" to CRYPT (traditional (weak) encryption). Drop crypt version
date. zip.c (SMS, EG)
15. Add new option -DI (--incremental-list) for a list of incremental archives
that the entries of are to be skipped when creating a differential archive.
Not yet implemented. zip.c (EG)
16. Add AES Encryption endian check. zip.c (SMS)
17. Add AES 256 minimum password length check. zip.c (EG)
18. Add incompatible options check for AES and -X-. Update -X and -V check
warning to -X- and -V.
19. Update force_ansi_key comment. zip.h (EG)
20. Update VMS_MSG_IDENT to V3.1-000. Change COMPERR error message from
"Not supported" to "Error in compilation options". ziperr.h (SMS)
21. Change CRYPT_AES_EF_TAG to CRYPT_AES_WG_EF_TAG. Don't set encryption
method from read entries, just rely on copying AES extra field and
header settings. zipfile. (EG)
22. Always set z->encrypt_method for new entries. zipup.c (SMS)
23. Add TRC flags. vms/descrip_src.mms (SMS)
----------------------- June 8th 2011 version 3.1d08 --------------------------
1. Re-sync crypt.c with UnZip. See the UnZip 6.10c02 changes for
crypt.c, but includes adding ef_scan_for_aes() and ef_strip_aes(),
change USE_AES_WG to CRYPT_AES_WG, and updates to zipbare().
crypt.c, crypt.h (SMS)
2. Change CRYPT_AES_WG_EF_TAG to EF_AES_WG for UnZip-shared crypt.c.
crypt.c, zipfile.c (SMS)
3. Add AES encryption to ZipCloak. Get and save local header offset for
central directory. crypt.c, zipcloak.c, unix/Makefile,
vms/build_zip.com, vms/descrip_src.mms (SMS)
4. Add line-length limit to password "line too long" error messages.
ttyio.c (SMS)
5. Add NO_EXCEPT_SIGNALS macro to allow easy disablement of the signal
handler. (Matches UnZip.) zip.c (SMS).
6. Change some explicit numeric constants for AES encryption to (named)
macros. Add AES192_OK to enable AES192 mode. zip.c, zip.h, zipfile.c
(SMS).
7. Accurate password length check for all encryption methods. ttyio.c,
zip.c, qdos/qdos.c (SMS).
8. Make UNIX- and VMS-specific entropy_fun() available for Zip and Zip
utilities (for ZipCloak). unix/unix.c, vms/vms.c (SMS)
9. Move entropy_fun() for Win32 from crypt.c to win32/win32.c. crypt.c,
win32/win32.c (EG)
10. Changes to AES code. aes/aes.h, aes/aescrypt.c, aes/aeskey.c,
aes/aesopt.h, aes/aestab.c, aes/brg_endian.h (SMS)
----------------------- June 9th 2011 version 3.1d09 --------------------------
1. Change encryption method constant to macros in note. api.c (SMS)
2. Additional encryption updates. crypt.c (SMS)
3. Set minimum AES 192 password size to 20 characters. Define
AES_MIN_ENCRYPTION and AES_MAX_ENCRYPTION for AES encryption checks.
Change EF_AES to EF_AES_WG for consistency. Change references to
Standard encryption to Traditional encryption. zip.c, zip.h,
zipcloak.c (SMS)
4. Define IZ_MIN() macro for implementing MIN. Remove define from
zipup.c. zip.h, zipup.c (SMS)
5. Include time.h for CRYPE_AES_WG. Define IS_A_DIR macro that looks for
an end "/". Set default encryption method to TRADITIONAL_ENCRYPTION.
Add AES random pool initialization. *** there are (sometimes lame)
reasons for why 32 or 1 are used *** Set AES globals. Exclude
directories from encryption. *** probably should also exclude soft
links and maybe pipes too *** zipcloak.c (SMS)
6. Change CRYPT_AES_WG_EF_TAG to EF_AES_WG. Use NO_ENCRYPTION. zipfile.c
(SMS)
7. Change i < n to i <= n. qdos/qdos.c (SMS)
8. Update names of AES encryption methods to AES128, AES192, AES256 and
TRAD. Change AES to AES_WG. Add AES192. vms/cmdline.c,
vms/descrip.mms, vms/descrip_src.mms, vms/zip_cli.cld,
vms/zip_cli.help (SMS)
----------------------- June 12th 2011 version 3.1d10 -------------------------
1. Clean up extraneous white space. api.h (SMS)
2. Fix bug in ef_strip_aes(). Minor ZipCloak fixes. crypt.c (SMS)
3. Enable AES192_OK by default if CRYPT_AES_WG is enabled. zip.h (SMS)
4. Change AES to AES_WG in list of valid vars user can set. Include
LOCAL_ZIP in CFLAGS. Change use of AES to AES_WG. unix/configure (SMS)
5. Remove obsolete os390 target. Add %_.o: %.c rule. Change LIB_AES to
LIB_AES_WG. Update zipcloak$E changing OCRCTB to LIB_AES_WG. Change
AES to AES_WG. Remove note regarding IBM OS/390 as well as os390: zos
and zos: flags rules. unix/Makefile (SMS)
6. Change AES to AES_WG. Update note to change AES to AES
(WinZip/Gladman). vms/build_zip.com (SMS)
----------------------- June 27th 2011 version 3.1d11 -------------------------
1. Fix blanks. api.h (SMS)
2. Add start for using newer Gladman AES code. New code sections in
CRYPT_AES_WG_NEW ifdef blocks. globals.c, zip.c, zip.h, zipup.c (EG)
3. Fix "bug" where some zip file creator uses 0 in the total disks
field of the End Of Central Directory Record to mean a total of 1
disk. This field has traditionally used 1 for 1 disk, where as
disk numbers have started with 0. The "fix" is to handle a 0 here as
a 1. If they put a 1 here for a 2 disk split archive, they're out of
luck as we have no way to know if 1 is 1 or 2 without looking at the
archive structure more closely. It might be done by scanning through
the central directory looking for what disk numbers are used, but that
is a waste except for these misformed archives. However, zip -F and
zip -FF should account for the total disks count maybe being lower
than it should be. zipfile.c (EG)
----------------------- June 29th 2011 version 3.1d12 -------------------------
1. Fix blanks. Provided changes not applied to last beta correctly.
api.h (SMS)
2. Change include path from aes to aes_wg. crypt.h (SMS)
3. Updated traditional encryption readme for CRYPT 2.9. README.CR (EG)
4. Changes to INSTALL to add AES instructions. INSTALL (SMS)
5. Additional updates to INSTALL. INSTALL (EG)
6. Add AES encryption command line options and comments to ZipCloak.
zipcloak.c (SMS)
7. Update Zip manual page. Minor changes for encryption, including AES
encryption. man/zip.1 (SMS)
8. Add AES to ZipCloak manual page. man/zipcloak.1 (SMS)
9. Change aes directory name to aes_wg. unix/configure, unix/Makefile
(SMS)
10. Change #ifdef OS390 to $if defined(__MVS__) || defined(__VM__).
unix/unix.c (Al Dunsmuir (AD))
11. Change aes to aes_wg. Remove AES build restriction. vms/build_zip.com,
vms/descrip.mms, vms/descrip_deps.mms, vms/descrip_mkdeps.mms,
vms/descrip_src.mms (SMS)
12. Update VMS install document to include AES. vms/install_vms.txt (SMS)
13. Add support for p6 and p7 parameters. vms/collect_deps.com (SMS)
14. Minor updates. vms/osdep.h, vms/vms.c (SMS)
15. Update COMPERR error. Add CRYPT error. vms/zip_msg.msg (SMS)
----------------------- July 5th 2011 version 3.1d13 --------------------------
1. Remove no longer needed files for AES from VMS. vms/endian.h,
vms/memory.h (SMS)
2. Add new zos directory for z/OS and related ports. Add scripts zcc and
zld. zos, zos/zcc, zos/zld (AD)
3. "zip -z" mishandled comment input whose first line was blank. Added
first_line check to fix. zip.c (SMS)
4. Remove #ifdef AES192_OK and make 192 always available when AES_WG enabled.
zip.c, zipcloak.c, vms/cmdline.c (SMS)
5. Put aes_wg_opt_ver in CRYPT_AES_WG block. Use aes_wg_opt_ver as version
string. Set aes_wg_opt_ver to include the IZ_AES_WG package version in
"major.minor beta" form. Also do endian check for new AES code.
Consolidate code for current and new (not yet completed) AES versions.
minor sd message updates. zip.c (SMS)
6. Remove globals aes_vendor_version and aes_strength. Add defines for aes
vendor version constants. zip.h (SMS)
7. Update AES to AES_WG. Add support for WinZip AES AE-2, switching from
AE-1 (with CRC) to AE-2 (without CRC, CRC set to 0) aes_vendor_version for
small files under 20 bytes. zipfile.c, zipup.c (SMS)
8. Change references to original Zip encryption from "standard" encryption to
"traditional" encryption. In help, change compression method abbreviation
from "mthd" to "cm" for consistency. Update license. vms/vms_zip.rnh,
vms/zip_cli.cld, vms/zip_cli.help, vms/vms_zip.rnh, vms/zip_cli.cld,
vms/zip_cli.help (SMS)
---------------------- August 5th 2011 version 3.1d14 -------------------------
1. Fix whitespace. api.h, fileio.c, acorn/swiven.c, acorn/swiven.h,
novell/netware.c, novell/signal.c, vms/cmdline.c, vms/vms.c,
vms/vmszip.c, win32/osdep.h, win32/win32.c (SMS)
2. Minor comment updates. Add int cast on IZ_MIN(). crypt.c (SMS)
3. Update crypt version from 2.91 to 3.0. crypt.h (SMS)
4. Remove \t and replace with spaces. revision.h (SMS)
5. Fix zcrypt version check to handle version 3.0 and higher. ttyio.c (SMS)
6. Minor comment formatting. zipfile.c (SMS)
7. Add pragma pack(4) to 32-bit align attr_bufr_fndr and attr_bufr_rsrc for
UNIX APPLE (Mac OS X) to fix bug reading resources. zipup.c,
unix/unix.c (SMS)
8. Update IZ_AES_WG files to version 1.0 code. aes_wg/iz_aes_wg.h,
aes_wg/prng.c, aes_wg/pwd2key.c, aes_wg/readme_aes_wg.txt, aes_wg/sha1.c,
aes_wg/usexport.msg, aes_wg/zip-comment.txt (SMS)
9. Add new file cmsmvs.c. cmsmvs/cmsmvs.c (AD)
10. Change VMS builders to generate module-ID link options file.
vms/build_zip.com, vms/descrip.mms, vms/optgen.com (new),
vms/zip.opt (removed) (SMS)
11. Change OS390 to ZOS_UNIX. Change z/OS (and z/VM) UNIX control define from
OS390 to ZOS_UNIX. (Revision of change 3.1d12 #10, removing
defined(__MVS___) || defined(__VM__).) ebcdic.h, zip.c, zipup.c,
unix/unix.c, unix/configure (AD)
12. Remove OS390 code cloned from unix. atheos/atheos.c (AD)
13. Add z/OS UNIX README. unix/README.zOS (AD)
14. Remove OS390 readme. unix/README.OS390 (AD)
---------------------- August 10th 2011 version 3.1d15 ------------------------
1. Add feature conditionality to optional keywords in the VMS command
definition file. Change the VMS builders to use CC /PREPROCESS_ONLY to
process the new conditions. vms/build_zip.com, vms/cppcld.com (new),
vms/descrip.mms, vms/zip_cli.cld (SMS)
2. Replace bad-guess non-fix for the alignment/structure-packing problem
which caused bad/spurious AppleDouble data to be archived on Intel
Macintosh systems. Move the required #pragma directives from
"unix/unix.c" to "unix/macosx.h". unix/unix.c, unix/macosx.h (SMS)
3. Add lzma/7zVersion.h include. Add descriptions to version information
items VMSCLI, VMS_IM_EXTRA, and VMS_PK_EXTRA. Add LZMA_SUPPORT to
version information. Add Run "unzip" comments. Add LZMA as compression