diff --git a/Makefile b/Makefile index f9aa33edb..efb2c9a5d 100644 --- a/Makefile +++ b/Makefile @@ -150,7 +150,7 @@ include third_party/sqlite3/sqlite3.mk include third_party/mbedtls/test/test.mk include third_party/quickjs/quickjs.mk include third_party/lz4cli/lz4cli.mk -include third_party/infozip/infozip.mk +include third_party/zip/zip.mk include tool/build/lib/buildlib.mk include third_party/chibicc/chibicc.mk include third_party/chibicc/test/test.mk diff --git a/build/bootstrap/compile.com b/build/bootstrap/compile.com index 4d941f872..89c8adc0b 100755 Binary files a/build/bootstrap/compile.com and b/build/bootstrap/compile.com differ diff --git a/build/config.mk b/build/config.mk index 17827a02e..5039164fb 100644 --- a/build/config.mk +++ b/build/config.mk @@ -40,7 +40,8 @@ CONFIG_CCFLAGS += \ $(BACKTRACES) \ $(FTRACE) \ -DSYSDEBUG \ - -O3 + -O3 \ + -fmerge-all-constants TARGET_ARCH ?= \ -march=native endif @@ -60,7 +61,7 @@ CONFIG_CPPFLAGS += \ -Wa,-msse2avx \ -DSUPPORT_VECTOR=1 CONFIG_CCFLAGS += \ - -O3 + -O3 -fmerge-all-constants DEFAULT_COPTS += \ -mred-zone TARGET_ARCH ?= \ diff --git a/examples/examples.mk b/examples/examples.mk index caf30d3df..0f6973377 100644 --- a/examples/examples.mk +++ b/examples/examples.mk @@ -135,12 +135,12 @@ o/$(MODE)/examples/nesemu1.com.dbg: \ o/$(MODE)/examples/nesemu1.com: \ o/$(MODE)/examples/nesemu1.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/examples/.nesemu1/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/examples/.nesemu1/.symtab o/$(MODE)/examples/hello.com.dbg: \ diff --git a/libc/calls/pread.c b/libc/calls/pread.c index 3fe6d679f..1f4370e63 100644 --- a/libc/calls/pread.c +++ b/libc/calls/pread.c @@ -23,6 +23,7 @@ #include "libc/calls/strace.internal.h" #include "libc/calls/struct/iovec.h" #include "libc/dce.h" +#include "libc/intrin/asan.internal.h" #include "libc/macros.internal.h" #include "libc/runtime/runtime.h" #include "libc/sysv/errfuns.h" @@ -44,7 +45,9 @@ ssize_t pread(int fd, void *buf, size_t size, int64_t offset) { ssize_t rc; if (fd == -1 || offset < 0) return einval(); - if (__isfdkind(fd, kFdZip)) { + if (IsAsan() && !__asan_is_valid(buf, size)) { + rc = efault(); + } else if (__isfdkind(fd, kFdZip)) { rc = weaken(__zipos_read)((struct ZiposHandle *)(intptr_t)g_fds.p[fd].handle, (struct iovec[]){{buf, size}}, 1, offset); diff --git a/libc/calls/preadv.c b/libc/calls/preadv.c index dd0784083..b4faa2411 100644 --- a/libc/calls/preadv.c +++ b/libc/calls/preadv.c @@ -25,19 +25,13 @@ #include "libc/dce.h" #include "libc/errno.h" #include "libc/intrin/asan.internal.h" +#include "libc/intrin/kprintf.h" #include "libc/macros.internal.h" #include "libc/sysv/consts/iov.h" #include "libc/sysv/errfuns.h" #include "libc/zipos/zipos.internal.h" -/** - * Reads with maximum generality. - * - * @return number of bytes actually read, or -1 w/ errno - * @asyncsignalsafe - * @vforksafe - */ -ssize_t preadv(int fd, struct iovec *iov, int iovlen, int64_t off) { +static ssize_t Preadv(int fd, struct iovec *iov, int iovlen, int64_t off) { static bool once, demodernize; int i, err; ssize_t rc; @@ -106,3 +100,27 @@ ssize_t preadv(int fd, struct iovec *iov, int iovlen, int64_t off) { return toto; } + +/** + * Reads with maximum generality. + * + * @return number of bytes actually read, or -1 w/ errno + * @asyncsignalsafe + * @vforksafe + */ +ssize_t preadv(int fd, struct iovec *iov, int iovlen, int64_t off) { + ssize_t rc; + rc = Preadv(fd, iov, iovlen, off); +#if defined(SYSDEBUG) && _DATATRACE + if (__strace > 0) { + if (rc == -1 && errno == EFAULT) { + STRACE("preadv(%d, %p, %d, %'ld) → %'zd% m", fd, iov, iovlen, off, rc); + } else { + kprintf(STRACE_PROLOGUE "preadv(%d, [", fd); + __strace_iov(iov, iovlen, rc != -1 ? rc : 0); + kprintf("], %d, %'ld) → %'ld% m%n", iovlen, off, rc); + } + } +#endif + return rc; +} diff --git a/libc/calls/pwrite.c b/libc/calls/pwrite.c index 45bc53219..0335cbe28 100644 --- a/libc/calls/pwrite.c +++ b/libc/calls/pwrite.c @@ -22,6 +22,7 @@ #include "libc/calls/strace.internal.h" #include "libc/calls/struct/iovec.h" #include "libc/dce.h" +#include "libc/intrin/asan.internal.h" #include "libc/macros.internal.h" #include "libc/sysv/errfuns.h" @@ -43,7 +44,9 @@ ssize_t pwrite(int fd, const void *buf, size_t size, int64_t offset) { size_t wrote; if (fd == -1 || offset < 0) return einval(); size = MIN(size, 0x7ffff000); - if (!IsWindows()) { + if (IsAsan() && !__asan_is_valid(buf, size)) { + rc = efault(); + } else if (!IsWindows()) { rc = sys_pwrite(fd, buf, size, offset, offset); } else if (__isfdkind(fd, kFdFile)) { rc = sys_write_nt(fd, (struct iovec[]){{buf, size}}, 1, offset); diff --git a/libc/calls/pwritev.c b/libc/calls/pwritev.c index 4b940eb45..d534dca64 100644 --- a/libc/calls/pwritev.c +++ b/libc/calls/pwritev.c @@ -24,24 +24,14 @@ #include "libc/dce.h" #include "libc/errno.h" #include "libc/intrin/asan.internal.h" +#include "libc/intrin/kprintf.h" #include "libc/macros.internal.h" #include "libc/sysv/consts/iov.h" #include "libc/sysv/errfuns.h" #include "libc/zipos/zipos.internal.h" -/** - * Writes data from multiple buffers to offset. - * - * Please note that it's not an error for a short write to happen. This - * can happen in the kernel if EINTR happens after some of the write has - * been committed. It can also happen if we need to polyfill this system - * call using pwrite(). - * - * @return number of bytes actually sent, or -1 w/ errno - * @asyncsignalsafe - * @vforksafe - */ -ssize_t pwritev(int fd, const struct iovec *iov, int iovlen, int64_t off) { +static ssize_t Pwritev(int fd, const struct iovec *iov, int iovlen, + int64_t off) { static bool once, demodernize; int i, err; ssize_t rc; @@ -110,3 +100,32 @@ ssize_t pwritev(int fd, const struct iovec *iov, int iovlen, int64_t off) { return toto; } + +/** + * Writes data from multiple buffers to offset. + * + * Please note that it's not an error for a short write to happen. This + * can happen in the kernel if EINTR happens after some of the write has + * been committed. It can also happen if we need to polyfill this system + * call using pwrite(). + * + * @return number of bytes actually sent, or -1 w/ errno + * @asyncsignalsafe + * @vforksafe + */ +ssize_t pwritev(int fd, const struct iovec *iov, int iovlen, int64_t off) { + ssize_t rc; + rc = Pwritev(fd, iov, iovlen, off); +#if defined(SYSDEBUG) && _DATATRACE + if (__strace > 0) { + if (rc == -1 && errno == EFAULT) { + STRACE("pwritev(%d, %p, %d, %'ld) → %'zd% m", fd, iov, iovlen, off, rc); + } else { + kprintf(STRACE_PROLOGUE "readv(%d, ", fd); + __strace_iov(iov, iovlen, rc != -1 ? rc : 0); + kprintf(", %d, %'ld) → %'ld% m%n", iovlen, off, rc); + } + } +#endif + return rc; +} diff --git a/libc/str/blake2.c b/libc/str/blake2.c index 5b25ab50e..f00443dea 100644 --- a/libc/str/blake2.c +++ b/libc/str/blake2.c @@ -118,7 +118,7 @@ int BLAKE2B256_Update(struct Blake2b *b2b, const void *in_data, size_t len) { if (todo > len) { todo = len; } - memcpy(&b2b->block.bytes[b2b->block_used], data, todo); + if (todo) memcpy(&b2b->block.bytes[b2b->block_used], data, todo); b2b->block_used += todo; data += todo; len -= todo; @@ -137,7 +137,7 @@ int BLAKE2B256_Update(struct Blake2b *b2b, const void *in_data, size_t len) { data += BLAKE2B_CBLOCK; len -= BLAKE2B_CBLOCK; } - memcpy(b2b->block.bytes, data, len); + if (len) memcpy(b2b->block.bytes, data, len); b2b->block_used = len; return 0; } diff --git a/libc/testlib/runner.c b/libc/testlib/runner.c index e21ef413c..868a4e633 100644 --- a/libc/testlib/runner.c +++ b/libc/testlib/runner.c @@ -17,6 +17,7 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" +#include "libc/intrin/kprintf.h" #include "libc/log/log.h" #include "libc/nexgen32e/nexgen32e.h" #include "libc/runtime/runtime.h" diff --git a/test/libc/release/test.mk b/test/libc/release/test.mk index 834ef18bb..ec61a09a3 100644 --- a/test/libc/release/test.mk +++ b/test/libc/release/test.mk @@ -8,8 +8,8 @@ o/$(MODE)/test/libc/release/cosmopolitan.zip: \ o/$(MODE)/ape/ape.o \ o/$(MODE)/ape/ape-no-modify-self.o \ o/$(MODE)/cosmopolitan.a \ - o/$(MODE)/third_party/infozip/zip.com - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -qj $@ o/cosmopolitan.h o/$(MODE)/ape/ape.lds o/$(MODE)/libc/crt/crt.o o/$(MODE)/ape/ape.o o/$(MODE)/ape/ape-no-modify-self.o o/$(MODE)/cosmopolitan.a + o/$(MODE)/third_party/zip/zip.com + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -qj $@ o/cosmopolitan.h o/$(MODE)/ape/ape.lds o/$(MODE)/libc/crt/crt.o o/$(MODE)/ape/ape.o o/$(MODE)/ape/ape-no-modify-self.o o/$(MODE)/cosmopolitan.a o/$(MODE)/test/libc/release/smoke.com: \ o/$(MODE)/test/libc/release/smoke.com.dbg diff --git a/test/libc/runtime/mmap_test.c b/test/libc/runtime/mmap_test.c index 6675cd006..1f56f6b38 100644 --- a/test/libc/runtime/mmap_test.c +++ b/test/libc/runtime/mmap_test.c @@ -125,7 +125,7 @@ TEST(mmap, fileOffset) { TEST(mmap, mapPrivate_writesDontChangeFile) { int fd; - char *map, buf[5]; + char *map, buf[6]; ASSERT_NE(-1, (fd = open("bar", O_CREAT | O_RDWR, 0644))); EXPECT_NE(-1, ftruncate(fd, FRAMESIZE)); EXPECT_NE(-1, pwrite(fd, "hello", 5, 0)); diff --git a/test/libc/str/str_test.c b/test/libc/str/str_test.c index a1bda4b46..57818969b 100644 --- a/test/libc/str/str_test.c +++ b/test/libc/str/str_test.c @@ -41,5 +41,9 @@ TEST(strclen, testAegeanNumberSupplementaryPlane) { } TEST(strlen16, testCoolKidNulTerminator) { - EXPECT_EQ(2, strlen16((const char16_t *)"\x00\xd8\x00\xdc\x00")); + union { + uint8_t s8[6]; + char16_t s16[3]; + } u = {.s8 = {0x00, 0xd8, 0x00, 0xdc, 0x00, 0x00}}; + EXPECT_EQ(2, strlen16(u.s16)); } diff --git a/third_party/chibicc/chibicc.mk b/third_party/chibicc/chibicc.mk index 9db4de235..fc26c1836 100644 --- a/third_party/chibicc/chibicc.mk +++ b/third_party/chibicc/chibicc.mk @@ -111,12 +111,12 @@ o/$(MODE)/third_party/chibicc/chibicc2.com.dbg: \ o/$(MODE)/third_party/chibicc/chibicc.com: \ o/$(MODE)/third_party/chibicc/chibicc.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/third_party/chibicc/.chibicc/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/third_party/chibicc/.chibicc/.symtab o/$(MODE)/third_party/chibicc/as.com.dbg: \ diff --git a/third_party/infozip/infozip.mk b/third_party/infozip/infozip.mk deleted file mode 100644 index 96b7ec53e..000000000 --- a/third_party/infozip/infozip.mk +++ /dev/null @@ -1,148 +0,0 @@ -#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐ -#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘ - -PKGS += THIRD_PARTY_ZIP - -THIRD_PARTY_ZIP_FILES := \ - $(wildcard third_party/infozip/zip/*) \ - $(wildcard third_party/infozip/zip/unix/*) - -THIRD_PARTY_ZIP_SRCS = $(filter %.c,$(THIRD_PARTY_ZIP_FILES)) -THIRD_PARTY_ZIP_HDRS = $(filter %.h,$(THIRD_PARTY_ZIP_FILES)) -THIRD_PARTY_ZIP_INCS = $(filter %.inc,$(THIRD_PARTY_ZIP_FILES)) - -THIRD_PARTY_ZIP_COMS = \ - o/$(MODE)/third_party/infozip/zip.com \ - o/$(MODE)/third_party/infozip/zipsplit.com \ - o/$(MODE)/third_party/infozip/zipnote.com \ - o/$(MODE)/third_party/infozip/zipcloak.com - -THIRD_PARTY_ZIP_BINS = \ - $(THIRD_PARTY_ZIP_COMS) \ - $(THIRD_PARTY_ZIP_COMS:%=%.dbg) - -THIRD_PARTY_ZIP_OBJS = $(sort \ - $(THIRD_PARTY_ZIP_COM_OBJS) \ - $(THIRD_PARTY_ZIPCLOAK_OBJS) \ - $(THIRD_PARTY_ZIPNOTE_OBJS) \ - $(THIRD_PARTY_ZIPSPLIT_OBJS) \ - ) - -THIRD_PARTY_ZIP_UTIL_OBJS1 = \ - o/$(MODE)/third_party/infozip/zip/globals.o \ - o/$(MODE)/third_party/infozip/zip/unix/unix_.o \ - o/$(MODE)/third_party/infozip/zip/zipfile_.o \ - o/$(MODE)/third_party/infozip/zip/fileio_.o \ - o/$(MODE)/third_party/infozip/zip/util_.o - -THIRD_PARTY_ZIP_UTIL_OBJS2 = \ - o/$(MODE)/third_party/infozip/zip/crypt_.o \ - o/$(MODE)/third_party/infozip/zip/crc32_.o - -THIRD_PARTY_ZIP_UTIL_OBJS = \ - $(THIRD_PARTY_ZIP_UTIL_OBJS1) \ - $(THIRD_PARTY_ZIP_UTIL_OBJS2) - -THIRD_PARTY_ZIP_COM_OBJS = \ - o/$(MODE)/third_party/infozip/zip/zip.o \ - o/$(MODE)/third_party/infozip/zip/zipfile.o \ - o/$(MODE)/third_party/infozip/zip/zipup.o \ - o/$(MODE)/third_party/infozip/zip/fileio.o \ - o/$(MODE)/third_party/infozip/zip/util.o \ - o/$(MODE)/third_party/infozip/zip/globals.o \ - o/$(MODE)/third_party/infozip/zip/crypt.o \ - o/$(MODE)/third_party/infozip/zip/ttyio.o \ - o/$(MODE)/third_party/infozip/zip/unix/unix.o \ - o/$(MODE)/third_party/infozip/zip/crc32.o \ - o/$(MODE)/third_party/infozip/zip/zbz2err.o \ - o/$(MODE)/third_party/infozip/zip/deflate.o \ - o/$(MODE)/third_party/infozip/zip/trees.o - -THIRD_PARTY_ZIPSPLIT_OBJS = \ - o/$(MODE)/third_party/infozip/zip/zipsplit.o \ - $(THIRD_PARTY_ZIP_UTIL_OBJS1) - -THIRD_PARTY_ZIPNOTE_OBJS = \ - o/$(MODE)/third_party/infozip/zip/zipnote.o \ - $(THIRD_PARTY_ZIP_UTIL_OBJS1) - -THIRD_PARTY_ZIPCLOAK_OBJS = \ - o/$(MODE)/third_party/infozip/zip/zipcloak.o \ - o/$(MODE)/third_party/infozip/zip/ttyio.o \ - $(THIRD_PARTY_ZIP_UTIL_OBJS1) \ - $(THIRD_PARTY_ZIP_UTIL_OBJS2) - -THIRD_PARTY_ZIP_LARGE_OBJS = \ - o/$(MODE)/third_party/infozip/zip/zip.o \ - o/$(MODE)/third_party/infozip/zip/zipsplit.o \ - o/$(MODE)/third_party/infozip/zip/fileio.o \ - o/$(MODE)/third_party/infozip/zip/fileio_.o - -o/$(MODE)/third_party/infozip/zip/%_.o: \ - third_party/infozip/zip/%.c \ - o/$(MODE)/third_party/infozip/zip/%.o - @$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.c) $(OUTPUT_OPTION) -DUTIL $< - -$(THIRD_PARTY_ZIP_OBJS): \ - OVERRIDE_CPPFLAGS += \ - -DUNIX \ - -DMMAP \ - -DUNICODE_SUPPORT \ - -DUSE_EF_UT_TIME \ - -DLARGE_FILE_SUPPORT \ - -DHAVE_DIRENT_H \ - -DHAVE_TERMIOS_H \ - -DNO_BZIP2_SUPPORT \ - -DZIP64_SUPPORT - -$(THIRD_PARTY_ZIP_LARGE_OBJS): \ - OVERRIDE_CPPFLAGS += \ - -DSTACK_FRAME_UNLIMITED - -THIRD_PARTY_ZIP_DIRECTDEPS = \ - LIBC_ERRNO \ - LIBC_LIMITS \ - LIBC_ALG \ - LIBC_FMT \ - LIBC_STR \ - LIBC_MEM \ - LIBC_LOG \ - LIBC_CALLS \ - LIBC_STDIO \ - LIBC_TIME \ - LIBC_UNICODE - -THIRD_PARTY_ZIP_DEPS := \ - $(call uniq,$(foreach x,$(THIRD_PARTY_ZIP_DIRECTDEPS),$($(x)))) - -o/$(MODE)/third_party/infozip/zip.com.dbg: \ - $(THIRD_PARTY_ZIP_DEPS) \ - $(THIRD_PARTY_ZIP_COM_OBJS) \ - $(CRT) \ - $(APE_NO_MODIFY_SELF) - @$(APELINK) - -o/$(MODE)/third_party/infozip/zipsplit.com.dbg: \ - $(THIRD_PARTY_ZIP_DEPS) \ - $(THIRD_PARTY_ZIPSPLIT_OBJS) \ - $(CRT) \ - $(APE_NO_MODIFY_SELF) - @$(APELINK) - -o/$(MODE)/third_party/infozip/zipnote.com.dbg: \ - $(THIRD_PARTY_ZIP_DEPS) \ - $(THIRD_PARTY_ZIPNOTE_OBJS) \ - $(CRT) \ - $(APE_NO_MODIFY_SELF) - @$(APELINK) - -o/$(MODE)/third_party/infozip/zipcloak.com.dbg: \ - $(THIRD_PARTY_ZIP_DEPS) \ - $(THIRD_PARTY_ZIPCLOAK_OBJS) \ - $(CRT) \ - $(APE_NO_MODIFY_SELF) - @$(APELINK) - -.PHONY: o/$(MODE)/third_party/infozip -o/$(MODE)/third_party/infozip: \ - $(THIRD_PARTY_ZIP_BINS) diff --git a/third_party/infozip/zip/BUGS b/third_party/infozip/zip/BUGS deleted file mode 100644 index 21a9013f6..000000000 --- a/third_party/infozip/zip/BUGS +++ /dev/null @@ -1,6 +0,0 @@ -- zip sometimes crashes on some versions of NetBSD (0.8, 0.9 and early - 0.9-current), FreeBSD (<= 1.1) and BSDI (< 1.1) . This is due to a - bug in stdio. - Upgrading the stdio package in /usr/src/lib/libc/stdio should - fix the problem. See *BSD mirrors in src/lib/libc/stdio - You must at least replace setvbuf.o in all the libc's with a newer version. diff --git a/third_party/infozip/zip/CHANGES b/third_party/infozip/zip/CHANGES deleted file mode 100644 index 751695f2c..000000000 --- a/third_party/infozip/zip/CHANGES +++ /dev/null @@ -1,3460 +0,0 @@ -------------------------- August 7th 1996 version 2.2a ------------------ - 1. QDOS port (Jonathan Hudson) - 2. win32 volumelabel handling (Paul) - 3. VM/CMS clean up (Greg Hartwig) - 4. leading "../" in internal filenames are allowed (Paul) - 5. System V packages support (John Bush) - 6. Fix handling of atx in zipup() (Onno, Greg) - 7. Fixed typo that caused zip -R to dump core (Onno) - 8. msdos/makefile.dj2: fix for command line too long when linking zip.exe - 9. win95 long filename support with djgpp v2 (Onno, Kimio Itoh) -------------------------- August 9th 1996 version 2.2b ------------------ - 1. windll: use wiz instead of wizip (Mike) - 2. use z->name NOT z->zname to open files (Onno, Mike) ------------------------- September 1st 1996 version 2.2c ------------------ - 1. windll: use fprintf instead of putc to send data to std{out,err} (Mike) - 2. os2: make borlandc version detection equal to unzip 5.30d (Kai Uwe) - 3. use #elif constructions for msdos,os2 and win32 compiler detection (Onno) - 4. fix for incorrect free in zip.c (Onno, Mike, Steve) - 5. BeBox port from Chris - 6. unix/{configure,Makefile} fixes for SCO Xenix 286 (Tom Schmidt) - 7. remove zilog entry from unix/Makefile (Onno) - 8. man page fixes (Tom Schmidt) - 9. SCO ODT {3,5} fixes (Bill Davidsen) ------------------------- October 8th 1996 version 2.2d ------------------ - 1. Fix bug in QDOS patch that broke zipsplit.c (Onno, Paul) - 2. Fix a couple of warnings from BorlandC (Mike) - 3. msdos/makefile.wat: Delete some more files when cleaning up (Paul) - 4. store msdos volumelabels without a dot in them (Paul) - 5. clean up of unix/{Makefile,configure,packaging} (Tom Schmidt) - 6. make QDOS port case independent (Jonathan Hudson) - 7. new amiga SASC makefile (Walter Haidinger) - 8. don't truncate filenames in win32's in2ex() (Paul) - 9. os2/makefile.os2 update for emx 0.9c (Kai Uwe) -10. password() function for QDOS (Jonathan) -11. fix the last(?) free() related bug (Mike) -12. win32: security descriptors operations (Scott Field) -13. win32: FILE_SHARE_DELETE is not defined in some win32 compilers (Onno) -14. win32: fix makefile.wat to include nt.c (Onno) ------------------------- January 17th 1997 version 2.2e ------------------ - 1. define USE_CASE_MAP in osdep.h for those ports that need it (Onno) - 2. define PROCNAME in osdep.h for those ports that need it (Onno) - 3. wild() prototype decl only if PROCNAME defined => delete MSVMS define (Onno) - 4. add DOS EMX makefile (E-Yen Tan) - 5. include a little earlier in qdos/qdos.c (Jonathan) - 6. add ttyio.o to OBJZ in qdos/Makefile.qdos (Jonathan) - 7. remove unused fprintebc define from zip.c (Onno) - 8. use the right password routine in ttyio.c for unzip (Mike) - 9. BeOS update from Chris -10. Fix for 'zip -r foo x:' (Paul) -11. Fix library bug on beos (Chris) -12. Fix calculating version number (kitoh_@mix.or.jp, Walter Haidinger) -13. IsWinNT always returned TRUE (Mike) -14. Windll update from Mike -15. Improved crc routines for x86 from Scott Field -16. Detect in unix/configure if we can use crc_i386.S (Onno) -17. Fix spurious internal logic error (Paul) -18. Fix to include directory names on the Acorn when needed (Sergio) -19. include zip.h in mvs.h (Onno, George Carr) -20. add workaround for AZTEC C compiler bug to revision.h (Paul, Walter) -21. MVS doesn't have rmdir (George Carr) -22. define and use USE_ZIPMAIN for WINDLL en VM_CMS (Onno) -23. Fixes from Greg Hartwig to make CMS standalone versions possible. -24. Move OS specific encryption stuff to the os specific directories (Christian) -25. Change password fetching interface in ttyio and crypt (Christian) -26. Update emx support for 0.9c (Christian) -27. Define WINDLL instead of MSWIN (Christian) -28. Extended time stamp extra field format support (Christian) -29. Support for rsxnt-emx 0.9c win32 compiler (Christian) -30. Use izshr017b (Christian) ------------------------- March 11th 1997 version 2.2f ------------------ - 1. Move makefile.emx, rsxwinnt.h and zip.def to win32 subdir (Kai Uwe) - 2. Add win32 target to makefile.os2 to allow cross compilation (Kai Uwe) - 3. Fix NTSD_EAS link time failures with win32 (Paul) - 4. Fix buffer freed too early in password verification code (Mike) - 5. Remove unix/zipgrep and man/zipgrep.1 (sanvila@ctv.es) - 6. Only use crc_i386.o when we're using an x86 (Onno, Mark) - 7. Remove carriage returns from amiga/crc_68.a (Paul) - 8. New windll from Mike - 9. Fix typo in os2/os2zip.c (Kai Uwe) -10. Don't use ctime (last file status change) for unix and qdos cross compile - (Greg) -11. added gccwin32 crosscompilation target (RSXNT) to os2/makefile.os2 (Kai Uwe) -12. fixed the OS/2 file attribute and time stamp generation for zipping - stdin ("-") (Kai Uwe) -13. fixed the atime and ctime stat fields for the OS/2 Watcom C library - (Kai Uwe) -14. added atime and ctime support for the UT extra field when generated under - OS/2, the atime and ctime values are only stored when zipping (Kai Uwe) -15. qdos patches from Jonathan Hudson mainly for extended time flag handling -16. amiga aztec compiler bug workaround (Paul) -17. fix -v output of zipcloak, zipnote and zipsplit (Paul) -18. new amiga/makefile.azt with targets for debug versions (Paul) ------------------------- March 31st 1997 version 2.2g ------------------ - 1. remove -I/usr/local/include from unix/Makefile (Chris) - 2. Update versinfolines in revision.h (Greg) - 3. change 1U to 0x1 to accomodate non ANSI compilers (Onno, Rodney Brown) - 4. win32zip.c: cast buffer parameter in memcompress() to char * (Mike) - 5. remove beos/zipgrep (Chris) - 6. correct the -e password verification check in zip.c (Christian) - 7. use ZCONST instead of const in the generic code. (Christian) - 8. fix mktime timezone correction when time is near to daylight/nodaylight - switch points. (Christian) - 9. correct dependencies in makefile.os2 (Christian) -10. use a more sensible default for iztime.ctime than "0" when system does not - not support creation time stamps. (Christian) -11. fix VMS_PK_EXTRA function interface declarations. (Christian) -12. implement atime/ctime support in win32. (Christian) -13. win32/win32.c: replacement getch() for Watcom. (Paul) -14. win32/makefile.wat: debug object files kept separate. (Paul) -15. msdos/makefile.wat: debug object files kept separate. (Paul) -16. Fix extended time defines for the acorn. (Sergio) -17. Define PROCNAME() in acorn/osdep.h (Sergio) -18. Ignore exit status of ${INSTALL_D} in unix/Makefile (Chris) -19. Add Metroworks and BEOS info to version() in several files (Chris) -20. Move defines for the password fetch to zip.h (Christian) -21. Support the obsolete version rsxnt 1.1 / emx 0.9b (Christian) -22. Remove obsolete "#define PROCNAME ..." from cmsmvs/cmsmvs.h (Christian) -23. Fix extended time defines for qdos (Jonathan Hudson) -24. Use watcom getch() from unz530q in win32/win32.c (Onno) -25. Don't install zipgrep via the unix package tools (John Bush) -26. use izshr021 (Onno) -27. Fix zipnote: use iname not zname in zipnote.c (Onno) -28. Create proginfo directory (Christian) ------------------------- May 5th 1997 version 2.2h -------------------- - 1. Fix vms/zipup.h: iztime --> iztimes (Onno, Mike Freeman) - 2. Remove windll/wizdll.def (Mike) - 3. Add a couple of external variable declaration to windll.h (Mike) - 4. Remove zipgrep from install in unix/Makefile (Onno) - 5. Make updating .zip files with extended time fields possible (Kai Uwe) - 6. Delete beos/Makefile.gcc, beos/Makefiles handles both compilers (Chris) - 7. Fixes for unused variables (Chris) - 8. Added very simplistic example how to load and call the windll (Mike) - 9. Updated windll documentation to note this example (Mike) -10. Removed an unused memeber of a structure in windll (Mike) -11. Add BUGS instead of infozip.who and algorith.doc with the packaging - tools (John Bush) -12. tailor.h: increment NUM_HOSTS to keep in sync with UnZip (Christian) -13. win32/osdep.h: remove NO_SECURE_TESTS define (Christian) -14. zip.h: add declaration for free_crc_table() (Christian) -15. windll: move everything that's not windows specific into api.* (Mike) -16. use iname when checking for directory names in zipfile.c (Sergio) -17. improved mktime.c with better error checking (Christian) -18. improved crc routines (Christian, Rodney Brown) -19. get the -z option working again (Onno, Brad Clarke) -20. define BROKEN_FSEEK and seekable() for those systems where fseek() - always returns 0 (== OK) (Onno, Jeffrey Altman) ------------------------- May 10th 1997 version 2.2i -------------------- - 1. win32's seekable should only check for FILE_TYPE_DISK (Onno, Jeffrey Altman) - 2. add (ulg) cast to zipbeg = ~0 in zipfile.c (Steve) - 3. seekable() *really* belongs in flush_block, keep it there (Onno) - 4. seekable() calls fseekable(FILE *) (Onno) - 5. define HAVE_FSEEKABLE if a port has their own fseekable (Onno) - 6. WatCom doesn't have _get_osfhandle, use _os_handle instead (Paul) - 7. upgrade to Mike's latest windll sources (Mike) - 8. add -P option so you can specify a password on the commandline (Onno) - 9. Get -@ working again (Onno) -10. emx+RSXNT doesn't know about _get_osfhandle() (Kai Uwe) -11. fix a couple of typos in the OS/2 makefiles (Kai Uwe) -12. fix initialization bug in windll code (Mike) -13. tweak deletedir for RISC OS (Sergio) -14. RISCOS doesn't know about fstat() (Sergio) -15. Remove acorn/acorn (Sergio) -16. Delete debugging statements from version_local() in msdos.c (Greg) -17. Fix huge bug in readzipfile() (Onno) ------------------------- May 18th 1997 version 2.2j -------------------- - 1. Add missing ';' after return ZE_PARMS in zip.c (Mike) - 2. Remove obsolete 'struct stat st' in zipfile.c (Onno) - 3. Get Amiga SFX handling working again (Paul) - 4. Get zip -A working again (Onno) - 5. Change an && to & in zipfile.c (Johnny) - 6. Fix handling of empty sfx archives (Onno, Mike) - 7. Remove experimental entries from the makefiles (Jean-loup) - 8. Add exit codes to the manual page (Onno) - 9. Remove lines from the help screen that contain lesser used options (Onno) ------------------------- June 8th 1997 version 2.2k -------------------- - 1. use zip -t ddmmyyyy for year 2000 stuff (Greg) - 2. zip -@ only handles ONE filename per line (Jean-loup) - 3. beos support for DR9 filesystem and symlinks (Chris) - 4. VB support for windll (Mike) ------------------------- June 10th 1997 version 2.2l ------------------- - 1. beos filetype support (Chris) - 2. fill the buffer in getnam() to get it working again (Onno) - 3. implement -x@filename and -i@filename (Onno) ------------------------- June 22nd 1997 version 2.2m ------------------- - 1. Add a ; after de nextarg label in main() (Onno, Erik Baatz) - 2. Initialize p to NULL in get_filters() (Onno, Frank Donahoe) - 3. Fix typo in first if statement in filetypes() (Johnny Lee) - 4. zip -A works again (Onno, Greg) - 5. don't free zipbuf for VMS and CMS_MVS in main() (Onno, Mike Freeman) - 6. fix make_zip.com, link_zip.com and vmsdefs.h for gcc 2.6.3 on VMS (Onno) - 7. clarify -g option in the man page (Jean-loup) ------------------------- July 6th 1997 version 2.2n ------------------- - 1. use local in readzipfile2() declaration (Onno, Mike Freeman) - 2. return values with windll in get_filters() (Mike) - 3. a couple of minor patches for BEOS (Chris) - 4. zip -g works again (Onno, Chris) - 5. Some more Visual Basic dll support (Mike) - 6. Fix stack overflow in readzipfile() for DOS (Onno, Michael Mauch) ------------------------- August 19th 1997 version 2.2o ------------------- - 1. beos README and Makefile tweaks from Chris. - 2. Syntax corrections for README and man/zip.1 (Frank Donahoe) - 3. Use name not iname when deleting directories in trash() (Christian) - 4. change several wkuvx1 to lists in e-mail addresses (Christian) - 5. default to PK style extra fields for VMS (Christian) - 6. use izshr023 (Christian) - 7. replace buggy time library functions (Walter Haidinger, Paul, Christian) - 8. in2ex() and stat() are needed also when UTIL isn't defined (Greg Hartwig) - 9. don't use type=record in fopen() for MVS and CMS (Greg Hartwig) -10. Change P and K literals to hex for EBCDIC systems (Greg Hartwig) -11. Add output path support for CMS and MVS (Greg Hartwig) -12. Add memtoasc and memtoebc for EBCDIC systems (Greg Hartwig) -13. Handle comments correctly to fix zipnote for CMS and MVS (Greg Hartwig) -14. Add -tt option (do not operate on files after date mmddyy) (Christian) -15. move alloc routines for DOS into the !UTIL block (Christian) -16. move UTIL blocks and version_local() functions to a more logical place - (Christian) -17. Handle -P, -R, -x@, -i@ and -tt for the VMS CLI (Christian) -18. Update VMS help file with the new options (Christian) -19. Use iname in MATCH, not zname (Jonathan Hudson) -20. windll: more Visual Basic support (Mike) -21. windll: more project makefiles (Mike) -22. windll: insert Zip in front of global variable names (Mike) ------------------------- August 25th 1997 version 2.2p ------------------- - 1. Remove unused flags from LFLAGS2 in unix/Makefile (Onno) - 2. SunOS make bug: change unix_.o rule in unix/Makefile (Onno, Mike Freeman) - 3. ZipIsWinNT() instead of IsWinNT() in zip.h (Mike) - 4. Fix -t and -tt behaviour for windll (Mike) - 5. Remove windll makefiles that are now elsewhere (Mike) - 6. BEOS: preserve file attributes associated with symbolic links (Chris) - 7. No need to use in2ex() for ziputils (Christian) - 8. Fix comment handling for EBCDIC systems (Christian) - 9. EBCDIC conversion for entry names read from zipfile in UTIL mode (Christian) -10. Fix "fatal" error messages on EBCDIC systems (Christian) -11. zipnote.c: Fix handling of entry name changes for EBCDIC systems (Christian) -12. removed a large part of "dead" code from ziputils version (Christian) -13. use z->iname in comparison functions for sorting (Christian) -14. new installation utils for the acorn (Sergio) -15. use LSSTAT in set_extra_field for unix and beos (Onno) -16. perror(z->zname) instead of perror("zip warning") (Onno, Geoff Pennington) -17. Amiga SFX should work again (Paul) -18. refer to zip22 in install.doc (Frank Donahoe) ------------------------- September 10th 1997 version 2.2q ------------------- - 1. Change .doc to .txt, these aren't MS-Word documents (John D. Mitchell) - 2. Change msdos$_(OBJ) to msdos_$(OBJ) (Kai Uwe) - 3. Fix a couple of amiga related glitches (Paul) - 4. Support for DOS packed .exe files in makefile.dj2 (Frank Donahoe) - 5. Change warning message for zip -A (Greg) ------------------------- September 29th 1997 version 2.2r ------------------- - 1. Fix make svr4package (Eric Baatz) - 2. Fix VMS warning (Mike Freeman, Christian) - 3. Clean up beos gcc port and beos README (Chris) --------------------------- October 6th 1997 version 2.2s -------------------- - 1. Change lpPrint to lpZipPrint for windll (Mike) - 2. Change lpPassword to lpZipPassword for windll (Mike) - 3. Amiga timezone fixes (Paul) - 4. WatCom C 11.0 makefile fixes (Paul) - 5. Tandem port from Dave Smith - 6. Corrections and updates for install.txt (Christian) - 7. Minor VMS README update (Christian) --------------------------- October 12th 1997 version 2.2t -------------------- - 1. qdos compiler bug workaround (Jonathan) - 2. prevent storing qdos specific filenames that exceed filesystem limits - (Jonathan) - 3. fix undelimited comment in fileio.c (Frank Donahoe) - 4. disable storing of symlinks in BEOS until OS support is available (Chris) - 5. Init hash_head to 0 in amiga/deflate.a (Paul) - 6. Upgrade to izshr025 (Christian) - 7. don't add ".zip" to ZIP name for TANDEM (Dave Smith) - 8. use zipup.h not tandem.h in zipup.c (Dave Smith) - 9. rename history to CHANGES (Onno) -10. rename install.txt to INSTALL (Onno) -11. rename zip.txt to ZIPMAN (Onno) -12. create WHATSNEW (Onno) --------------------------- October 15th 1997 version 2.2u -------------------- - 1. Use Info-ZIP instead of Info-Zip (Christian) - 2. Note recent filename changes in several files (Christian) - 3. Remove a couple of items from the TODO list (Christian, Onno) - 4. Add windll port, zip -t yyyymmdd and zip -R to WHATSNEW (Christian) - 5. VMS documentation cleanups and clarifications (Christian) - 6. dist entry in unix/Makefile (Onno) - 7. remove duplicate amiga/timezone.txt (Christian) - 8. rename ZIPMAN to MANUAL and update a couple of files regarding this (Onno) --------------------------- October 24th 1997 version 2.2v -------------------- - 1. izshr026: in WHERE wiz40 instead of wiz30 (Christian) - 2. izshr026: another couple of Info-ZIP spelling fixes (Christian) - 3. Remove zipgrep from the makefiles that still had it (Christian) - 4. Update makefiles to handle the MANUAL renaming change (Christian) - 5. Fix the last daylight savings bug on the Amiga (Paul) - 6. Fix the SCO Unix specialty detection in unix/configure (Onno, - bug reported by Bo Kullmar for Solaris 2.6 and with uname -X output - for SCO Unix from ken@apisys.com and dgsmith@vnet.ibm.com) - 7. Update WHERE and amiga/time_lib.c from unzip 5.32g (Greg) --------------------------- October 26th 1997 version 2.2w -------------------- - 1. Additional +Onolimit check in unix/configure (Onno, Peter Jones) - 2. Use ZIPERR macro instead of ziperr (Christian) - 3. initialize z->lflg for zip entries without extra field (Christian) - 4. "local (+ locextend)" vs. "central" header consistency check (Christian) - 5. Override local header values with central header values with -A - and differences between these headers (Christain) - 6. made "deltaoff" signed long; offset adjustment may be negative (Christian) - 7. fix a number of "wild" deallocation bugs (Christian) - 8. When zipping from a FAT drive (only 8.3 DOS names) under OS/2 or - WIN32, set z->vem to "OS_DOS | ". - Mark as "made by DOS PKZIP 2.0" only when dosify was requested. (Christian) - 9. DOS port should not store fake unix style external attributes. (Christian) -10. amiga/time_lib.c from izshr028 (Christian) --------------------------- October 31st 1997 version 2.2y -------------------- - 1. amiga/time_lib.c from izshr029 (Christian) - 2. Turbo C++ version code clarification (E-Yen Tan) - 3. Fix spelling in cmsvms/zipname.conven (Rodney Brown) - 4. Fix memset check in unix/configure for Unixware 2.1.1 (Rodney Brown) - 5. Forward declaration fixes for HP-UX bundled compiler (Rodney Brown) --------------------------- November 3rd 1997 version 2.2 -------------------- - 1. Update WHERE (Greg). --------------------------- January 4th 1998 version 2.21a ------------------- - 1. BSD friendly version of version_local() in unix/unix.c (Onno) - 2. No NT versions in DOS version_local() (Steve Salisbury) - 3. -t mmddyyyy instead of -t ddmmyyyy in WHATSNEW (Walter Haidinger) - 4. use generic fseekable() for rsxnt (Christian) - 5. Fix MSC 8.x warnings (Christian, Steve Salisbury) - 6. win32 Borland C++ makefile (E-Yen Tan) - 7. Tandem doesn't know about extensions like .zip,.arj, ... (Dave Smith) - 8. Use dosmatch for EMX and DJGPP too (Christian) - 9. dummy djgpp startup functions to remove command line globbing and - recognition of environment variables from djgpp.env (Christian) -10. include DJGPP_MINOR in DOS version_local() (Christian) -11. TC 2.0 doesn't have mktime() (Christian, mmp@earthling.net) -12. VMS: rename opendir() to zopendir() so avoiding name clash with - VMS 7.x POSIX libraries (Christian, Martin Zinser) -13. Add support for VMS DEC C V 5.6 features (Christian) -14. Use iname for comparison in check_dup (Christian Spieler, Christian Michel) -15. Fix access to uninitialized ioctx records in vms_get_attributes() - Christian, Robert Nielsen) -16. Parenthesis around MAX_MATCH>>1 in match.S (Greg) -17. Use strchr() not strrchr() for -i and -x to get -i@ and -x@ really - working (Onno, Kai Uwe) -18. add chmod statements to unix/Makefile (Quentin Barnes) -19. Windll: handle both -r and -R (Mike) -20. Windll: general error handler in main() via setjmp/longjmp (Mike) -21. Don't allow zip -i@x.lst foo.zip (Onno) -22. vms/link_zip.com: use .eqs. not .nes. when checking with f$search - for the zip AXP object library (David Dachtera) -23. rsxnt 1.3.1 fixes (E-Yen Tan) --------------------------- January 20th 1998 version 2.21b ------------------- - 1. Bigger PATH_MAX for win32's windll (Mike) - 2. Update windll.txt w.r.t. PATH_MAX (Mike) - 3. Amiga SAS/C fixes (Walter, Paul) - 4. zip -i@ and -x@ should *really* work now ...... (Onno) --------------------------- February 20th 1998 version 2.21c ------------------- - 1. make -f unix/Makefile qnx needs LN=ln in its options (Chris) - 2. Support Metroworks Codewarrior/x86 on BEOS (Chris) - 3. Add Norbert Pueschel to proginfo/infozip.who (Walter) - 4. Use big endian for Be types (Chris) - 5. zip -i and -x were broken by the -i@ fix last time around (Christian) - 6. win32 stat bandaid (Paul) - 7. acorn filetype and timestamp fixes (Sergio, D. Krumbholz) - 8. update to izshr30 (Christian) - 9. Support for NTSD in the RSXNT environment (Christian) -10. restructure readzipfile() (Christian) -11. Where needed define MATCH in osdep.h (Christian) -12. version_local() fixes for RSXNT (Christian) -13. New vmsmunch.c (Christian) --------------------------- March 15th 1998 version 2.3a ------------------- - 1. Fixes for the windll API (Mike) - 2. Use CPUTYPE in BorlandC Makefile for DOS (E-Yen Tan) - 3. BEOS: -rostr not available for the x86 compiler (Chris) - 4. preserve file attributes of a symlink on BEOS (Chris) - 5. New VM/CMS README.CMS and version_local() (Ian Gorman) - 6. INSTALL fixes from Takahiro Watanabe - 7. OS/390 port from Paul von Behren - 8. new api.h from Mike --------------------------- April 19th 1998 version 2.3b ------------------- - 1. Improve Tandem file I/O performance (Dave Smith) - 2. New VM/CMS README.CMS and version_local() (Ian Gorman) - 3. cygwin32 port from Cosmin Truta - 4. Workaround for tasm32 5.0 bug in win32/crc_i386.asm (Cosmin Truta) - 5. win32/match32.asm fixes for tasm 5.0 (Cosmin Truta) - 6. simplify OS/390 port (Christian) - 7. win32 timezone handling fixes (Christian) - 8. fix 40-bit time conversion on the acorn (Sergio and Christian) - 9. strip network part from UNC type filenames (Christian) -10. Makefile for OpenMVS (Ian Gorman) -11. Use the Watcom getch() for cygwin32 (Christian) -12. Borland C++ 5.x added to win32's version_local() (Cosmin Truta) -13. Borland C++ needs tzset() in win32 (Christian, Cosmin Truta) --------------------------- May 21st 1998 version 2.3c ------------------- - 1. Better error messages for -i and -x (Christian) - 2. Win32 stat() wrapper needs dos2unixtime (Christian,Paul,Mike) - 3. DJGPP: use _chmod to handle LFN attributes correctly (Michael Mauch) - 4. Fix Borlandc warnings (Mike) - 5. win32/makefile.bor fixes from Michael Mauch - 6. win32/makefile.{dj,emx} fixes from E-Yen Tan - 7. Use izshr031 (Christian) - 8. CMS: use RECFM=V LRECL=32760 by adding "byteseek" (Greg Hartwig) - 9. Check external name for trailing "/" (Greg Hartwig) -10. More specific info in CMS version_local() (Greg Hartwig) -11. Changed usage info to refer to "fm" rather than "path" on CMS (Greg Hartwig) -12. No more "extra data" messages when using the same OS (Greg Hartwig) -13. Rewritten README.CMS, one version for ZIP and UNZIP (Greg Hartwig) -14. DOS/OS2/WIN32/UNIX: ex2in() strips off "//host/share/" from UNC names (SPC) --------------------------- June 23rd 1998 version 2.3d ------------------- - 1. Fixed Win32's stat() bandaid handling of time stamps (SPC) - 2. General fix of file selections for DELETE and FRESHEN action (SPC) - 3. CMS_MVS: Use ASCII coding for TIME extra field ID (SPC) - 4. EBCDIC: Repaired bogus CMS_MVS fix in zipup.c; check the internal - name for trailing (ASCII) '/' to detect directory entries (SPC) - 5. Use explicit ASCII coding when comparing or setting chars in iname (SPC) - 6. Fixed win32/makefile.bor, win32/makefile.dj (support NTSD), - win32/makefile.emx (SPC) - 7. Replaced win32/makefile.cyg by win32/makefile.gcc, containing new - support for mingw32 GCC environment (SPC) - 8. Use izshr032 (SPC) - 9. Modified zipup.c to hold (un)compressed lengths in "ulg" variables, in - an attempt to support handling of huge (>2GByte) files. (SPC) -10. Removed some duplicate #defines from api.h, they are now in crypt.h (SPC) -11. Reenabled "extra data size" info messages in noisy mode for all systems - except RISCOS and CMS_MVS (SPC) -12. For EMX 0.9c, the runtime lib contains a working mktime(), use it (SPC) -13. Miscellanous cosmetic changes (SPC) -14. Move win32/makefile.emx to msdos (E-Yen Tan) -15. make api.h work with zcrypt2.8 (Mike) -16. define ydays differently in api.h to avoid linking problems (Mike) -17. New windll.txt (Mike) -18. win32 lcc patches (E-Yen Tan) -19. win32 lcc makefile (E-Yen Tan) -20. Multiple inclusion bug: no malloc.h when using lcc-win32 (E-Yen Tan) -21. New VB support files for windll (Mike Le Voi, Raymond King) -22. MacOS port by Dirk Haase --------------------------- August 1st 1998 version 2.3e ------------------- - 1. Generalized check for validy of TZ timezone setup info, similar to - UnZip; use it on AMIGA and MSDOS, as before. (SPC) - 2. Apply TZ validy check on OS/2 and enable creation of UT e.f. (SPC) - 3. BEOS: New Makefile, updates for README and Contents (Chris Herborth) - 4. beos/beos.c: declare some private functions as "local" (SPC) - 5. Include memcompress() code only for ports that make use of it, controlled - by preprocessor symbol ZP_NEED_MEMCOMPR (SPC) - 6. cmsmvs/README.CMS fix: Zip archive entries to be extracted into var-length - records CMS files should >>NOT<< contain binary data ... (SPC) - 7. crc32.c, crctab.c: the crc polynom table is ZCONST (SPC) - 8. trees.c: fixed a bug in the deflate algorithm that limited the compressed - size of an archive member to 512 MByte (SPC) - 9. deflate.c: Integrated the changes found in zlib that are neccessary to make - the deflate algorithm deterministic; modified msdos/match.asm to take - care of the "nice_match" global no longer being constant. (SPC) -10. deflate.c, trees.c, zipup.c: Reorganized and simplified deflate's - compressed output buffer handling. I/O and compression code are now - separated more cleanly. (SPC) -11. Killed bits.c by moving its contents into trees.c resp. zipup.c; - synchronized all Makefiles and Make procedures with this change. (SPC) -12. Integrated support for optionally replacement of deflate and crc32 by - public domain zlib code. (SPC) -13. Synchronize the different variants (UNIX/GNU C, OS/2, WIN32) of i386 - assembler replacement for deflate's longest_match() (SPC) -14. Moved the EMX+rsxnt Makefile.emx from msdos/ back into win32/ (SPC) -15. Restored a separate Makefile.emx for DOS; on DOS, some make programs may - have difficulties with recursive invokation (SPC) -16. Fixed the "include header mess" of the new MACOS port and removed the - "work-around hacks" caused by these bad MACOS .h-file includes (SPC) -17. Integrated Dirk Haase's beta4 (27-Jun-98) release of MacZIP (Dirk Haase) -18. Added support for MS Quick C in the MSDOS version_local() report (SPC) -19. Added WIN32 rsxnt targets linking against the emx crtl DLL to Makefile.emx - in os2/ and win32/ (SPC) -20. Fixed typo in os2/os2.c wild() function. (Kai Uwe Rommel) -21. Removed ChangeNameForFAT() from os2/os2.c in2ex() to fix problem with - long filename support. (Kai Uwe Rommel) -22. os2/os2zip.[ch]: correct type of DOS-style timestamp data is "ulg" (SPC) -23. vms/cmdline.c: Removed wrong ';' behind if condition (Johnny Lee) -24. VMS: Preliminary preparations in C code for supporting GNU C on OpenVMS - Alpha (Onno van der Linden, Christian Spieler) -25. VMS: Fixed check against adding zipfile to itself in fileio.c (SPC) -26. WIN32: Added lcc-Win32 variants of i386 assembler code for crc32() and - longest_match(). (SPC) -27. WIN32: Removed bogus type-cast in assignment to statb st_mode member (SPC) -28. zip.c: Fixed MACOS-related typo that broke "-@" command option (SPC) -29. zipup.c: Fixed messed-up expression for assignment to z->ver (SPC) -30. MACOS extra fields: check realloc return values (Onno, Johnny Lee) -31. Fix the PUTBYTE macro in trees.c: >= instead of < (Onno) --------------------------- September 6th 1998 version 2.3f ------------------- - 1. Add zp_tz_is_valid to globals.c (Onno, Frank Donahoe) - 2. Updated tandem files from Dave Smith - 3. Windll: allow comments to zip archive with VB (Mike) - 4. Windll: add support for -b and update the documentation (Mike) - 5. win32: use wbS for FOPW to handle large zip files better (Steve Miller) - 6. MVS fix: use fseek();clearerr() instead of rewind() (Onno, Lee Burton) - 7. Updated VB examples for windll (Mike) - 8. Tandem: use UTC timestamps and GID/UID in extra field (Dave Smith) - 9. Tandem: handle -o option (Dave Smith) -10. default for ZCONST is const in tailor.h, override in osdep.h (Onno) -11. additional Macintosh options in zip.c (Dirk Haase) -12. additional Macintosh options in zip.1 and MANUAL (Onno, Dirk Haase) -13. Integrate Beta 5 of the Macintosh Port (Dirk Haase) --------------------------- October 27th 1998 version 2.3g ------------------- - 1. zip_tz_is_valid should be zp_tz_is_valid (Kai Uwe) - 2. MVS native (not OE) beta fixes (Keith Owens) - 3. LynxOS support from Giuseppe Guerrini - 4. MVS already has stat() and fstat() so use 'em (Keith Owens) - 5. MVS fix in readzipfile() for new, unopened dataset without EOF marker - (Keith Owens) - 6. Remove 16-bit stuff from windll/windll.rc (Mike) - 7. Windll: Use hCurrentInst not hInst (Mike) - 8. In util.c compare strchr() return value with NULL (Onno, Frank Donahoe) - 9. unix/unix.c: initialize variable t in ex2in() (Onno, Frank Danahoe) -10. Remove windll/borland subdirectory (Mike) -11. Really fix extra field realloc() for BeOS and MacOS (Christian) -12. Fix the dj2 LFN related access violation bug (Christian, Joe Forster) -13. proginfo/3rdparty.bug: Added more info about other Zip clone's bugs. -14. The global copyright definitions in revision.h now depend on DEFCPYRT - (Christian). -15. tandem/macros: removed obsolete object file references (Christian) -16. fix memory leak with the "filter" patterns (Christian, Leah Kramer) -17. zip.c: completed the support for MacOS specific -N (Christian) -18. reorganized the Mac specific help screen code (Christian) -19. zipup.c: corrected the USE_ZLIB code to emit "stored" entries under - the same conditions as the "native deflate" code (Christian) -20. A couple of vars that will never be negative should be unsigned (Christian) --------------------------- November 18th 1998 version 2.3h ------------------- - 1. DJGPP: When compressing from stdin don't set binary mode if stdin is - a terminal (E-Yen Tan) - 2. Fix signed/unsigned comparisons in fileio.c, util.c and zipcloak.c - (Frank Donahoe) - 3. Move macgetch() prototype from macos/source/macos.c to macos/osdep.h - (Christian) - 4. _doserrno should have type int, not unsigned int (Christian) - 5. In zipfile.c init a file pointer with NULL to fix gcc warning (Christian) - 6. Upgrade to MacOS beta 7 (Dirk Haase) - 7. Move the #pragma statements from generic sources to cmsmvs.h (Christian) - 8. Support for QNX/Neutrino 2.0 (Chris) - 9. Default to -r in help screen add -R at the bottom (Chris) -10. Clean up Makefile for BeOS R4 on x86 (Chris) -11. Beos: If not storing symlinks store attributes of symlink target (Chris) -12. Use izshr037 (Christian) -13. Remove ZIPERR() macro from in {msdos,win32}/osdep.h (Christian) -14. win32/win32.c: Fix 1-day offset in non-64bit FileTime2utime() (Christian) -15. win32: enable 64-bit FileTime2utime() for MS VC++ >= 5.0 (Christian) -16. cygwin32 only has _P_WAIT (Thomas Klausner) -17. msname() should *really* ignore illegal characters (Thomas Klausner) -18. Fix a missing ')' in Opendir() from win32zip.c (Thomas Klausner) --------------------------- December 5th 1998 version 2.3i ------------------- - 1. Remove the #pragma statements that were forgotten the first time (Ian) - 2. Remove obsolete macos/source/CharMap.h (Steve Salisbury) - 3. isatty(fileno(zstdin)) in zipup.c should be isatty(zstdin) - (Onno, E-Yen Tan) - 4. several "shut up warnings from compiler" fixes (Christian) - 5. several cosmetic source changes (Christian) - 6. win32: make NTSD handling to be robust against alignment and structure - padding problems (Christian) - 7. Apply don't set binary mode when stdin is a terminal in zipup.c for - MSDOS and human68k (Christian) - 8. Upgrade to MacOS beta 8 (Dirk Haase) - 9. Add callback for WINDLL to handle user termination (Mike) -10. Fix typo in acornzip.c (Darren Salt) -11. acorn/sendbits.s: pass correct parameters to flush_outbuf() (Darren Salt) -12. Fixes for IBM C/C++ 3.6 where time_t is a double (Kai Uwe) -13. Fixes for IBM Visual Age C++ for win32 (Douglas Hendrix) -14. man/zip.1: some version numbers in the text were still "2.2" (Christian) -15. win32/makefile.emx: added a compilation variant that generates - standalone executables (Christian) -16. change __CYGWIN32__ into __CYGWIN__ and add compatiblity definition for - B19 and older (Cosmin Truta) -17. create uniform win32 getch() replacement (Christian) -18. put back in define of USE_EF_UT_TIME in tandem.h (Dave Smith) -19. put back in define of USE_CASE_MAP in tandem.h (Dave Smith) -20. updates to make/macros to allow the object to be licensed (Dave Smith) -21. updates to macros/doit to remove mktime.c (Dave Smith) -22. updates to tandem.c for in2ex/mapname/chmod amendments to match Unzip - (Dave Smith) -23. Use izshr039.zip (Christian) -24. Init filenotes to 0 for the amiga too (Onno) -25. get_filters(): remove one flag=0 statement to make -R work again (Onno) --------------------------- December 17th 1998 version 2.3j ------------------ - 1. FOPWT defines opening a temp file for writing (Ian) - 2. Remove handling of bits.c from a couple of tandem files (Christian) - 3. A couple of "shut up warnings from compiler" fixes (Christian) - 4. win32/osdep.h: removed duplicate "IZ_PACKED" definition (Christian) - 5. win32/zipup.h: remove invalid "elseif" preprocessor token (Christian) - 6. sync MacOS help screen with other ports (Christian) - 7. get_filters(): set flag to 0 when -R isn't used (Christian) - 8. "local extra != central extra" now has "info" status (Christian) - 9. use windll directory as "home" directory for builds (Mike) -10. CMS/MVS: define FOPWT (Ian) -11. Upgrade to MacOS beta 9 (Dirk Haase) --------------------------- January 17th 1999 version 2.3k ------------------ - 1. Change FOPW into FOPW_TMP (Christian) - 2. win32: #include uses paths relative to the parent directory (Christian) - 3. Use forward slashes as path separator in #include statements (Christian) - 4. windll: fix descriptions of f{In,Ex}cludeDate (Christian) - 5. win32/makefile.lcc: add some -I options to find files in the - right places (Christian) - 6. Supply default empty IZ_PACKED define (Christian) - 7. windll: Fix some typos, descriptions (Christian) - 8. windll project files: use relative paths, no specific root directory - (Christian) - 9. windll project files: remove link references to import libraries that - are not used by the zip library (Christian) -10. windll: fix potential infinite loop in a VB sample (Mike) -11. windll/windll.txt: remove "may not work with VB" statement (Mike) -12. Multibyte character set support from Yoshioka Tsuneo -13. Theos port from Jean-Michel Dubois -14. Tandem: added simple handling of Enscribe files by converting them into - text type files (Dave Smith) -15. Tandem Extra Field ("TA") containing Tandem File Attributes (Dave Smith) -16. Tandem history file showing background info to (UN)ZIP ports (Dave Smith) -17. create ZIP file on tandem with special file code (1001) (Dave Smith) -18. made tandem.c & tandem.h code completely the same as UNZIP (Dave Smith) -19. unix/configure: move +Onolimit and -Olimit into the machine specific - section (Onno, John Wiersba) --------------------------- February 21st 1999 version 2.3l ------------------ - 1. Fix qdos Makefile (Jonathan Hudson) - 2. fgets instead of gets in zipnote to fix linker warnings (Jonathan Hudson) - 3. Theos: remove _setargv.c and a reference in zip.c (Jean-Michel Dubois) - 4. Theos README (Jean-Michel Dubois) - 5. interchanged the fRecurse flag values for "-R" and "-r" (Christian) - 6. add "z" pr prefix to MBCS functions to avoid name clashes (Christian) - 7. Whenever the position of the increment operator does not matter, the - INCSTR variant is used, which has been mapped to the {PRE|POS}INCSTR - variant that is more efficient. (Christian) - 8. fixed the "-R" handling in fileio.c, filter() function (Christian) - 9. simplified some THEOS specific code additions (Christian) -10. changed the line break of the compiler version message in version_local() - for MSDOS and Win32 to take into account some verbose compilers (Christian) -11. removed the THEOS changes from ttyio.c. Instead, a THEOS specific - setup was added to ttyio.h (Christian) -12. sync vms/link_zip.com with the corresponding make_zip.com (Christian) -13. added compatibility settings for support of MBCS on Win32 with all tested - compilers to win32/osdep.h -14. added type-casts to isalpha() macro calls (Christian) -15. fixed win32's wild_match which was clobbered by the MBCS addition - (Christian) -16. finished up the "potential infinite loop" problems in the VB sample - that Mike started to repair (Christian) -17. in ziperr.h, AZTEK C might require the false comma that was removed - to satisfy THEOS C (Christian) -18. removed the bogus THEOS specific isdir check in zipup.c (Christian) -19. modified the code for line ending translation to be independent - of the local system's convention for '\n' and '\r'; this allowed - the removal of the THEOS specialities (Christian) -20. Tandem: -B option to zip Enscribe files with no record delimiters - (Dave Smith) -21. Tandem: attempt to catch Large Transfer mode failure (Dave Smith) -22. Theos: Fixed keyboard entry functions. (Jean-Michel Dubois) -23. Theos: workaround for the argument wild card expansion that is bugged - in the standard library. Managed by MAINWA_BUG flag. (Jean-Michel Dubois) -24. Theos: support for filenames and notes with accented characters. - (Jean-Michel Dubois) -25. Upgrade to MacOS final (Dirk Haase) --------------------------- March 31st 1999 version 2.3m ------------------- - 1. Theos: for relative paths to root directory cause open, fopen and stat - failure, workaround this. (Jean-Michel Dubois) - 2. Theos: when no path is indicated in a file or directory name and the - file or directory doesn't exist in the current directory it looks for - the file or directory in the root directory, workaround this. - (Jean-Michel Dubois) - 3. Corrected some typos and spelling error in macos/HISTORY.TXT; skipped - off invisible trailing whitespace (Christian) - 4. proginfo/extra.fld: added documentation for Tandem and Theos extra - field layout (Christian with Dave D Smith resp. Jean-Michel Dubois) - 5. qdos/Makefile.qdos: The build of ZipCloak requires inclusion of - the crctab object module; qfileio_.o compilation requires the -DUTIL - flag (Christian) - 6. win32: fix incorrect MB_CUR_MAX macro for mingw32 and lcc (Christian) - 7. theos/_fprintf.c, theos/_rename.c, theos/osdep.h: Some function - parameters require the "const" attribute to achieve compatibility - with ANSI C requirements (Christian) - 8. theos/theos.c: map Theos' (No)Hidden file attribute to MSDOS Hidden - bit in the MSDOS part of zipentry header's external attribute field; - 9. theos/stat.h: prevent multiple inclusions -10. Theos: Fixed wild card management for options other than adding - (Jean-Michel Dubois) -11. Theos: Removed modifications of const strings (Jean-Michel Dubois) -12. Split tandem.c up into separate zip/unzip parts (Dave Smith, Christian) -13. Move inclusion of OS specific zipup.h files to tailor.h (Onno) --------------------------- August 14th 1999 version 2.3n ------------------- - 1. Move inclusion of OS specific zipup.h files back to zipup.c (Onno) - 2. Remove getline() from zipnote.c and use gets() again (Onno) - 3. BeOS PowerPC R4.1 support (Chris) - 4. New DOIT and MACROS files for the tandem port (Dave Smith) - 5. Don't switch the console to binary mode (Michel de Ruiter) - 6. In some circumstances undosm could be freed twice (Mike) - 7. Also define const in tailor.h for ultrix (Onno, Foppa Uberti Massimo) - 8. Tandem: Change zopen in TANZIPC to allow opening of files with missing - alt keys (err 4) (Dave Smith) - 9. Tandem: Assume not DST if can't resolve time (no DST table available) - (Dave Smith) -10. WIN32: skip trailing dots and spaces in getnam (Onno, Dan Kegel) -11. Use ZE_NONE when nothing to freshen or update (Onno, Yuri Sidorenko) -12. Remove tabs from files that don't need them (Onno) -13. Remove tabs and spaces from the end of a text line (Onno) -14. Upgrade macos to 1.04b2 (Dirk) -15. Add -Q documentation to manual page (Jonathan Hudson) -16. Copy hiperspace files instead of renaming them (Keith Owens) -17. Disallow some more characters to appear in DOS filenames when using -k - (Onno, Thomas Klausner) -18. Document missing options and environment variables in the manual (Onno) -19. New acorn/GMakefile to compile with gcc on RISCOS (Darren Salt) -20. ISO 8601 date format support for -t and -tt (Rodney Brown) --------------------------- September 21st 1999 version 2.3o ------------------- - 1. Sync zip.h license with LICENSE (Onno) - 2. Add copyright notice to README, os2zip.c and os2.zip.h (Onno, Greg) - 3. Fix the ASM variable in acorn/GMakefile (Darren Salt) - 4. Add another requirement to acorn/ReadMe.GMakefile (Darren Salt) - 5. Fix unbalanced parenthesis in vms_get_attributes declaration in zip.h - and move it to vms/zipup.h (Onno, Mike Freeman) - 6. Make a couple of os2 files public domain (Kai Uwe) - 7. Change and rename disclaimer array in revision.h (Onno) - 8. Change copyright array in revision.h (Onno) - 9. macstuff.c copyright is the same as macstuff.h (Christian) -10. WHATSNEW: add ISO 8601 dates supported (Christian) -11. fileio.c - msname(): strip off leading dots, these are illegal for - MSDOS compatible names (Christian) -13. fileio.c - replace(): deactivate "dead" code for CMS_MVS (Christian) -14. man/zip.1: "-$" option is also used for WIN32 ports -15. msdos/msdos.c - version_local(): break the version line for - GNU compilers too (Christian) -16. tailor.h: added typecasts to MBCS macros, to suppress "type mismatch" - warnings (Christian) -17. util.c, zip.h, zipfile.c: ZCONSTify several pointers (Christian) -18. util.c - recmatch(), zip.c - version_info(): add compile time option - WILD_STOP_AT_DIR (Christian, Darren Salt) -19. util.c - envargs(): MBCS related fixes (Christian) -20. win32/lm32_lcc.asm: add TAB characters that are required by the lcc - assembler source parser (Christian) -21. zip.c: fix the "is a console" check (Christian) -22. zipnote.c: use getline() (Christian) -23. zipup.c: use zclose() in case of I/O errors (Christian) -24. zipup.c: use ZE_WRITE when a write error occurs (Christian) -25. win32/win32.c: HAVE_INT64 is used by mingw32 (Cosmin Truta) -26. update shared sources to match izshr041 (Christian) --------------------------- November 29th 1999 version 2.3 ------------------ - 1. Missing parenthesis in win32/win32.c (Steve Salisbury) - 2. Add Cosmin Truta to proginfo/infozip.who (Onno) - 3. Remove one parenthesis pair too many from vms_get_attributes() declaration - in vms/zipup.h (Mike Freeman) - 4. qdos .s are expected to start with a #, work around it (Jonathan Hudson) - 5. tandem: -B0 should be deflating not storing (Dave Smith) - 6. human68k updates from Shimazaki Ryo - 7. beos Makefile cleanup (Chris) - 8. workaround for fseek to negativate offset behaviour of the RISC OS - SharedCLibrary (Darren Salt) - 9. set file type for RISC OS in zipcloak.c (Darren Salt) -10. change tandem zgetch() to allow crypt version to work (Dave Smith) -11. fix a comment typo in acorn/riscos.c (Christian) -12. fileio.c: two type-cast to shut up noisy compilers (Christian) -13. human68k: fix missing case_flag argmument (Christian) -14. win32/win32.c: remove HAVE_INT64 completely (Christian) -15. zip.c: raise "cannot zip to console" error when stdout IS a tty (Christian) -16. zip.h: don't use dummy argument names in declarations (Christian) -17. Add missing semicolon in fileio.c (Shimazaki Ryo) -18. win32.c: IBMC compiler >= 3.50 have int64 (Kai Uwe) -19. Handle initialization error return value from MVS stat() in procname() - (Keith Owens) -20. Use RISC OS instead of RiscOS in the manual (Darren Salt) -21. Use # instead of ? as single character wildcard on RISC OS (Darren Salt) -22. New windll example.c (Mike) -23. Correct storage of 8-bit char filenames with RSXNT (Burkhard Hirzinger) -24. fix install in unix/Makefile (Santiago Vila, Onno) -25. Fix zip -L output (Santiago Vila, Onno) -26. Ignore unix special files (Jonathan O'Brien) -27. Upgrade to izshr042 (Onno) -28. Make copyright notice the same as in izshr042 (Onno) -29. Make copyright notice in zip.h the same as LICENSE (Christian) -30. Set tempzf to NULL _after_ it has been closed (Chris Kacher) -31. Change email address for Jonathan Hudson (Jonathan Hudson) -32. Remove win32/winzip.c.orig (Steve Salisbury) -33. Use 'Steve Salisbury' throughout the documentation (Steve Salisbury) -34. Change email address for Steve Salisbury (Steve Salisbury) -35. Change email address for Chris Herborth (Chris Herborth) -36. Use zip23 in INSTALL (Roger Cornelius) -37. Use zcrypt28 in INSTALL (Onno) -38. New acorn/srcrename (Darren Salt) -39. amiga/makefile.azt: make clean should remove some more items (Paul) -40. Change email address for Cosmin Truta (Cosmin Truta) --------------------------- February 11th 2001 version 2.4a ------------------ - 1. Identify newer Borland compilers (Brad Clarke) - 2. Detect Turbo C 2.01 which doesn't have mktime (Brian Lindholm) - 3. Fix the use of -@ together with -i -x (Christian) - 4. Update msdos/README.DOS to match reality (Christian) - 5. win32: use assembler crc32 code (Christian) - 6. windll: _CRTIMP is needed in several function declarations (Christian) - 7. back to zip 2.2 memcompress() behaviour (Kelly Anderson) - 8. new amiga time code based on nih public domain code (Paul Kienitz) - 9. Detect some more Borland C++ builder versions (Brad Clarke) -10. Fix OS/2's extended file attributes compression code (Christian, Kai Uwe) -11. Correct translation of EBCDIC passwords to ASCII (Christian) -12. Attempt at integrating novell patches from Roger Foss (Onno) -13. Use izshr043 (Christian) --------------------------- July 3rd 2001 version 2.4b ------------------ - 1. Fix OS/2's ACL compression code (Christian, Kai Uwe) - 2. Rename netware subdir to novell (Christian) - 3. Remove -dNETWARE -dDOS from novell Makefile (Christian) - 4. Remove defined(NETWARE) from the sources (Christian) - 5. printf is a macro in glibc 2.2, fix version_local function - (Christian, Matthew Wilcox) --------------------------- January 13th 2002 version 2.4c ------------------ - 1. Use klist_items when initilizating koff[] in tandem.c (Dave Smith) - 2. Only call NLMsignals() in zip.c when NLM is defined (Mike, Onno) - 3. include riscos.h instead of acorn/riscos.h in acorn/osdep.h (Andy Wingate) - 4. Use izshr044 (Christian) --------------------------- January 13th 2002 version 2.4d ------------------ - 1. Don't use mmap for stored entries (Christian) - 2. BIG_MEM and MMAP cannot be defined at the same time (Christian) - 3. Allow redirection of version screen to file (Christian) - 4. Fix for OS/2 output redirection bug (Christian, Kai Uwe) - 5. Acorn script for creating self extracting zips (Darren Salt) - 6. Update amiga makefiles to support revised timezone routines (Christian) - 7. Correct memcompress calculation for allocation size (Christian) - 8. Fix FORCE_METHOD debug option for level 1 and 2 (Christian) - 9. Whitespace cleanup in man/zip.1 (Christian) -10. Define IZ_IMP to specify compiler declaration prefixes (Christian) -11. make win32 and msdos version_local() "stdio-macro-safe" (Christian) -12. move tandem's zip specific zipopen to tanzip.c (Christian) -13. first parm is void * in external scope of vms_get_attributes() (Christian) -14. use right novell subdirectory in zipup.c (Christian) -15. update copyright for files modified in 2002 (Onno) --------------------------- January 19th 2002 version 2.4e ------------------ - 1. Add MacOS X to version_local() (Mark) - 2. unix/configure: Init LFLAGS1 to "", MacOS X doesn't like -s (Onno, Mark) - 3. rename errors array to ziperrors to avoid MacOS X library clash (Mark) - 4. Support for the upx executable packer in DOS makefiles (Christian) - 5. remove obsolete -m486 switch from dos djgpp makefile (Christian) - 6. When using DOS, force the use of msdos style external attributes when - updating zip entries created under another OS (Christian) - 7. os2/makefile.os2: fixed ASFLAGS for watcom16dos (Christian) - 8. Update copyright and ftp address in several files (Christian) - 9. The RISCOS port uses '.' as directory separator, not '/' (Christian) -10. win32/makefile.bor: more options to compile the asm CRC code (Christian) -11. win32: use registry to handle timezones with MS C rtl (Christian) -12. acorn: use recommended practice for calling the linker (Andy Wingate) -13. unix/configure: check if CPP works else use ${CC} -E (Onno, Mark) -14. update versioninfolines in revision.h to match reality (Onno) --------------------------- February 10th 2002 version 2.4f ------------------ - 1. vms: Zip -V is now able to handle file sizes up to 4Gb (Christian) - 2. vms: Include target environment detection for MMS/MMK (Christian) - 3. Change dummy message from zipcloak (Christian) - 4. acorn: add riscos specific -/ option (Darren) - 5. Update acorn's WILD_STOP_AT_DIR feature (Christian) - 6. acorn: Fix buffer allocation for -/ option (Christian, Darren) - 7. acorn: fix make clean (Andy Wingate) - 8. acorn: use tabs for GMakefile to make GNU make happy (Andy Wingate) - 9. tandem: use nskopen not zipopen (Dave Smith) -10. tandem: allow passing of CRYPT define (Dave Smith) -11. use izshr045 (Christian) --------------------------- April 1st 2002 version 2.4g ------------------ - 1. acorn: fix assembler and compiler options in makefile (Darren) - 2. use izshr046 (Christian) - 3. MVS: define isatty to 1 to fix screen output (Christian) - 4. tandem: encryption really works now (Dave Smith) - 5. win32: detect Borland C++ builder 6 (Brad Clarke) --------------------------- April 30th 2003 version 2.4h ------------------ - 1. tandem: fix temporary file contention (Dave Smith) - 2. cmsmvs: generate better filenames with -j (Owen Leibman) - 3. tandem: fix temporary file leftovers (Dave Smith) - 4. solaris: enable large file I/O to break 2G barrier (Rick Moakley, Onno) - -Note: Zip 2.4 was never released. That code was the start of the Zip 3.0 -effort below. Some changes and fixes also made it to the Zip 2.3x releases. - ----------------------- January 21st 2004 version 3.0a ---------------------- -Initial work on Zip 3.0 by Ed Gordon and Rainer Nausedat - 1. Changed some comments to update copyrights (Ed) - 2. Changed text in command line messages from zip 2.4 to zip 3.0 (Ed) - 3. Changes to many files for Zip64 wrapped in ifdef ZIP64_SUPPORT (Rainer) - 4. Attempt to fix buggy Win32 buffered 64-bit calls (Ed) - 5. Add functions to zipfile.c for Little-Endian memory writes (Rainer) - 6. Add functions to zipfile.c for writing Zip64 extra fields (Rainer) - 7. Major changes to putlocal, putcentral, and putend (Rainer) - 8. Fixing -F and -FF for Zip64 postponed (Ed and Rainer) - 9. Command line code replaced. Global table sets options, long options now - supported. Permutes so order of arguments can vary (Ed) -10. Fix bug where not allowed to use -@ with stdout but was with stdin. - Now can read filenames from stdin using -@ and output to stdout and - no longer am allowed to use -@ if reading from stdin (Ed) -11. Replace stat() with zstat(), fstat() with zfstat() and struct - stat with z_stat in Zip64 blocks. Put 64-bit file calls in ifdef - LARGE_FILE_SUPPORT blocks. Can implement Zip64 without > 4 GB - file support but for now need large files for Zip64 support (Ed) -12. Move port-specific code to osdep.h and win32.c (port specific) and - tailor.h (generic) and remove temporary os_io.c. As OF() is - not defined until after osdep.h includes in tailor.h function - prototypes for zfseeko, zftello, and zstat after that in tailor.h (Ed) -13. Settings of ZIP64_SUPPORT and LARGE_FILE_SUPPORT automatic based on - port and version of compiler. Defining NO_ZIP64_SUPPORT or - NO_LARGE_FILE_SUPPORT overrides this (Ed) -14. Bugs compiling scanzipf_fix(...) in zipfile.c and the fix functions could - use rewrite (Rainer and Ed) -15. Add prototype for zfopen for mapping to 64-bit fopen on ports using - inodes but not implemented (Ed) -16. More work on extended local headers and encypted archives (Rainer) -17. Fix DLL files so now compiles (Ed) -18. File size in dll limited to 32-bit in structure. A new DLL api is needed - to return 64-bit file sizes. Current api fixed to return max 32-bit if - more than that (Ed) -19. Add local header Zip64 support and local extra field. Fixed cast - to ulg missed previously that forced zstat to return value mod 4 GB in - zipup.c which kept local header code from seeing actual file size (Ed) -20. Add new option --force-zip64 to force use of zip64 fields. Could - be temporary (Ed) -21. Fix for VB added to api.c that just store the passed strings internally. - Should update api to optionally return file sizes as 64-bit in call back - and to accept RootDir and other strings in same call that zips (Ed) -22. Readme updated to describe new features and mention updated mail group - web links (Ed) -23. Minor bugs in output format found and fixed. Now can add - files > 4 GB to archive and unzip using major unzippers (Ed) -24. If zip used as filter (zip - -) and sizes exceed limits of extended - local header (data descriptor) then set max 32-bit values there. Major - unzippers ignore and use central directory values which are correct. Can - create Zip64 data descriptor using --force-zip64 option but seems no need - for it (Ed) -25. A few bugs in how headers are handled prevented zipping large numbers - of files. Fixed (Rainer) -26. A bit of an attempt to fix -F and -FF. Seems to work but not that - robust. More work needed (Ed) -27. After some cast and other fixes zip compiles on Linux Red Hat 9 using Unix - generic. Added automatic detection of fseeko64 and if detected - sets LARGE_FILE_SUPPORT and setting that sets ZIP64_SUPPORT. Works but - could not test large files on the small system (Ed) -28. Tried to fix bug that prevents zipnotes from compiling when ZIP64_SUPPORT - is set. Still broke. This crashes the Unix Makefile but after - zip is compiled (Ed) ----------------------- May 8th 2004 version 3.0b ---------------------- - 1. Update license headers on more files (Ed) - 2. Change many ZIP64_SUPPORT ifdefs to LARGE_FILE_SUPPORT where appropriate. - Now can test ports using three stages, compile with NO_LARGE_FILE_SUPPORT - (which disables ZIP64_SUPPORT) to test base code, compile with - NO_ZIP64_SUPPORT to test the 64-bit file calls (assuming port sets - LARGE_FILE_SUPPORT) but otherwise use the base code, and without either - to test Zip64 if enabled on port (Ed) - 3. Fix zipnotes bug by moving a ZIP64_SUPPORT block in zipfile.c (Ed) - 4. Add Large File Summit (LFS) code to Unix port to enable 64-bit calls. - Update configure to include test for all needed 64-bit file calls before - enabling LARGE_FILE_SUPPORT for unix port (Ed) - 5. Merge encryption code from zcrypt29 (files from unzip) into zip and - enable by default (Ed) - 6. New man pages for zipnote, zipsplit, and zipcloak (Greg, Ed) - 7. Add encryption notice to crypt.c comments and to version information - in zip.c (Greg, Ed) - 8. Add Russian OEM EBCDIC support when OEM_RUSS defined in ebcdic.h but - Dmitri reports that 0x2F not '/' so make recommended change in cutpath - call in zipfile.c used by -D option (Dmitri - Nov 10 2003 email) - 9. ToDo30 file added to list what's left to do in this release (Ed) -10. Change fopen to zfopen for large file code and map to fopen64 for - Unix (Ed) -11. ftello64 seems broken in zipup.c on Linux (kernel 2.4), returning - negatives past the 2 GB barrier, though ftello64 works in a test program. - Likely error in defines. For now skip ftello64 check for Unix with - LARGE_FILE_SUPPORT. -12. A few updates in Readme. Needs overhaul likely. Also verified mxserver - is gone and replaced with list addresses (Ed) -13. First iterations at updating WinDLL for Zip64 (Mike) -14. Decide to drop backward dll compatibility in favor of a cleaner - dll interface. Decide to add string interfaces for VB (Ed, Mike) -15. Add string interfaces to dll interface to bypass array limitations - imposed by VB and add -x and -i to interface (Mike) -16. Create new VB example using new Zip64 dll interface (Ed) -17. Add O_LARGEFILE define for zopen in unix/zipup.h to enable reading - large files in unix (Ed) -18. Combine ZpSetOptions and ZpArchive dll calls to allow removing all VB kluges - in api.c to work around VB garbage collecting passed strings (Mike) -19. Change new VBz64 example to use updated interface. All works without - kluges (Ed) ----------------------- August 15th 2004 version 3.0c ---------------------- - 1. Add date formats in -t and -tt date errors (Ed) - 2. Add -so to display all available options (Ed) - 3. Many fixes from Dan Nelson to fix some large file support problems and - add large file support to a few ports. Main change is rather than use - explicit 64-bit calls like fopen64 now set 64-bit environment and use - standard calls. Also add a define for 64-bit printf format used to - print 64-bit stats (Dan, Ed) - 4. Changes to Unix config based on suggestions from Dan Nelson. Check - if off_t is at least 64 bit (Dan, Ed) - 5. Add -- to get_option. Any arguments after -- on command line now - read as paths and not options (Ed) - 6. Add extended help (Ed) - 7. Change add_filter flag parameter from char to int as some compilers have - problems with char arguments (Ed) - 8. Changed filter() to do R and i separately so i has precedence over R (Ed) - 9. Split variable t in zip.c into t (off_t) and tf (ulg) (Ed) -10. Add quotes to zipname in check_zipfile for MSDOS to allow spaces in - archive path given to unzip to test ( , Ed) -11. Move zip.h include before ctype.h include in trees.c and zipup.c as - when ctype.h is first and using 64-bit environment at least on unix port - found it defines off_t as 4 bytes in those files as off_t is defined as - 8 bytes in other files and this changes the size of the zlist structure - which is not good (Ed) -12. Add default 64-bit file environment to tailor.h if LARGE_FILE_SUPPORT - is set but no port 64-bit file defines are set up earlier in the file. - Should allow other ports to set LARGE_FILE_SUPPORT on the compiler - command line to test if the standard defines work (Ed) -13. Adjust binary detection in trees.c by changing 20% binary (4 out of 5 - ascii) that used >> 2 to 2% (64 out of 65) using >> 6 instead. - trees.c (Ed) ----------------------- November 12th 2004 version 3.0d ---------------------- - 1. Add global variable for EncryptionPassword in VBz64 example and - some other password callback cleanup (Ed) - 2. Add -W option to turn on WILD_STOP_AT_DIR where wildcards will not - include directory boundaries in matches (Ed) - 3. Add -nw option "no wild" to completely disable wildcards in MATCH - function. Allows a list of files to be read in without worrying about - wildcards or escapes (Ed) - 4. Add -s option split-size but not implemented (Ed) - 5. Add -sp option split-pause but not implemented (Ed) - 6. Add changes for WiZ including moving Win32 64-bit wrappers into - win32i64.c to avoid naming conflict between libraries in WiZ (Mike, Ed) - 7. Some large file fixes in crypt.c (Ed) - 8. Add new error code ZE_UNSUP for unsupported compiler options. Add - check of size of zoff_t in zip.c when LARGE_FILE_SUPPORT enabled (Ed) - 9. Changed ZE_UNSUP to ZE_COMPERR to avoid conflict with unzip (Ed) -10. On VMS (sufficiently recent, non-VAX), DECC$ARGV_PARSE_STYLE is set - automatically to preserve case of the command line if the user has - SET PROCESS /PARSE = EXTEND. This obviates quoting upper-case - options, like -V, when enabled. VMS.C (Steven Schweda (SMS)) -11. On VMS, building with macro VMS_PRESERVE_CASE defined preserves case - of names in archive, instead of forcing lower-case (the former and - current default behavior). VMSZIP.C (SMS) -12. On VMS, in some of the simplest cases, ODS5 extended file name - escape characters ("^") are removed from names in archive. - VMSZIP.C (SMS) -13. On VMS, fixed a problem in some cases with mixed-case directory - names, where too much of the directory hierarchy was included in the - path names in the archive. VMSZIP.C (SMS) -14. On VMS, minor changes for large file support (long -> zoff_t). - VMSZIP.C (SMS) -15. On VMS, changed some structure declarations to typedefs, and - rearranged to simplify #if's and reduce potential name conflicts. - VMS.H, VMS_IM.C, VMS_PK.C (SMS) -16. On VMS, reformed -V (/VMS) processing. Added -VV (/VMS=ALL). - Removed some sign bits to accomodate files bigger than 2GB. - CMDLINE.C, VMS_IM.C, VMS_PK.C, ZIP.C, ZIP_CLI.CLD, ZIP_CLI.HELP, - ZIPUP.H (SMS) -17. Update command line options to support -VV as distinct option (Ed) -18. More VMS changes (SMS) -19. Add zoff_t format function (SMS) -20. On VMS, when -b was not used, temporary archive files were always - created in the current default directory, rather than in the archive - file destination directory. VMS now uses its own tempname() - function. FILEIO.C, VMS.C (SMS) -21. Remove using FNMAX for path size in a few places including filetime.c - to avoid exceeding limit (based on fixes from Greg and others) (Ed) -22. Add port atheos (Ruslan Nickolaev, Ed) -23. Bug fix adds different extra fields for local and central in VMS (SMS) -24. Now short options also take optional values as next argument (Ed) -25. Change -dd to control -v dots (SMS, Ed) -26. On VMS, a new open callback function senses (where supported) the - process RMS_DEFAULT values for file extend quantity (deq), - multi-block count (mbc), and multi-buffer count (mbf), and sets the - FAB/RAB parameters accordingly. The default deq is now much larger - than before (16384, was none), and the default mbc is now 127 - (up from 64), speeding creation of a large archive file. Explicitly - set RMS_DEFAULT values override built-in defaults. OSDEP.H, VMS.C - (SMS) -27. VMS CLI definitions and CLI help have been updated, and may be - approximately correct. CMDLINE.C, ZIP_CLI.CLD, ZIP_CLI.HELP (SMS) -28. The man file zip.1 updated and Makefile updated to generate manual - pages for zipcloak.1, zipnote.1, and zipsplit.1 (Ed) ----------------------- July 23rd 2005 version 3.0e ---------------------- - 1. Debian patch 004 - apply 2.4i configure changes from Onno to remove - need for -fno-builtin in unix/configure (Onno, Ed) - 2. Debian patch 005 for bug 279867 - fix bug that could crash on large paths - and create security problem. Apply patch changes from Greg (Greg, Ed) - 3. SourceForge patch 1074363 - add win32i64.c to win32/makefile.w32 (Ed) - 4. Add check when not ZIP64_SUPPORT in scanzipf_reg() in zipfile.c if - Zip64 archive being read (Ed) - 5. Renamed fzofft() used to format zoff_t values to zip_fzofft() to remove - conflict when combined with UnZip in WiZ (Mike) - 6. Add check in scanzipf_reg() in zipfile.c if Zip64 archive being read (Ed) - 7. Fixes for amiga/makefile.azt to define directory for object files (Paul) - 8. Define prototypes for local functions optionerr, get_shortopt and - get_longopt in fileio.c. Define err argument of optionerr as ZCONST (Paul) - 9. Add help_extended and DisplayRunningStats prototypes, fix other prototypes - in zip.c (Paul) -10. Split int kk off of k for argument types (Paul) -11. Aztec #endif quirk fix in zip.c for Amiga (Paul) -12. Add detection of binary in first buffer read from file in zipup.c to avoid - a -l or -ll translation on binary file. Not perfect but at least should - catch some binary files (Ed) -13. Remove check for >= 128 from binary check in zipup.c as <= 6 enough for - signed char (SMS, Ed) -14. SF Bug 1074368 - check for empty zip file in readzipfile() in zipfile.c - (Christian d'Heureuse, Ed) -15. Add error exit to prevent archive corruption when updating a large-file - archive with a small-file program. Add ZE_ZIP64 error. - ziperr.h, zipfile.c (SMS) -16. Change percent() in zipup.c to do rounding better, handle cases near limits - while rounding, and allow negative percent returns (SMS, Ed) -17. Add function ffile_size() in zipfile.c but in #if 0 block until determine - if works on all ports under all conditions. Currently only used for size - check for Zip64 archive detection if compiled without ZIP64_SUPPORT and - this check may already be handled in scanzipf_reg() and should be added to - scanzipf_fix() when that is updated (SMS, Ed) -18. Change >>1 to /2 in zipsplit.c to allow for negative percent returns (SMS) -19. Add type uzoff_t for unsigned zoff_t things. Should clean up some casting - (Ed) -20. Based on discussions with other development groups, when data descriptors - (extended local headers) are used, force to Zip64. This is compatible - with other unzips and does not require a change of the AppNote, but the - resulting archive requires Zip64 to read. Using standard data descriptors - would mean that the zip operation would fail if a Zip64 entry was - encountered. See zipfile.c (Ed) -21. Add define SPLIT_SUPPORT to enable splits. The command line options are - done and the globals are set up but nothing more. globals.c, zip.h, and - zip.c mainly (Ed) -22. Create spanning signature at beginning of archive when splitting enabled. - If reading a split archive skip the spanning signature unless creating a - split archive. zip.c, globals.c (Ed) -23. Start implementing split archives. Define two methods. split_method = 1 - updates local headers and is the most compatible but requires updating - previous splits. split_method = 2 uses data descriptors and should work - for streams and removable media but may not be as compatible with other - zip applications. (In part based on previous discussions with Rainer.) - Updated global variables to include bytes written to just the current - entry in the current split. zipfile.c (Ed) -24. Add note about output redirection to zip.1 (?, Ed) -25. Remove num < 0 check as num now unsigned. util.c (SMS, Ed) -26. Change lastchar to lastchr in fileio.c in places to avoid function by same - name (SMS, Ed) -27. Moved #endif /* !WINDLL */ in zip.c (Mike) -28. Account for vms directory version being ;1. vmszip.c (SMS) -29. Fix Zip64 check in scanzipf_reg to use the buffer. zipfile.c (Ed) -30. Default define size_t (for use by Steve's ffile_size() function). tailor.h (Ed) -31. Enable Steve's ffile_size() function and enable large file check. It - currently does not allow file sizes over 2 GB but the code is not supporting - it anyway without large file support. Should remove that part of the check - when the casts are fixed. zipfile.c (Ed) -32. Fixes for djgpp. Now compiles with djgpp 2 (Ed) -33. Add new VC6 projects for win32 and windll (Cosmin) -34. Convert some variables in zipsplit.c from ulg to zoff_t so compiles (Ed) -35. Add wildcards to extended help. zip.c (Ed) -36. For optional option value now '-' is same as missing value. fileio.c (Ed) -37. Remove extra free() from -dd option switch. zip.c (Ed) -38. Change write_unsigned_to_mem() to write_ulong_to_mem() and write_short_to_mem() - to write_ushort_to_mem(). zipfile.c (Ed) -39. Create new append to mem functions. zipfile.c (Ed) -40. Change zlist nam and ext from extent to ushort as that is what gets written. - zipfile.c (Ed) -41. Change GetSD to use ush instead of size_t. win32/win32zip.c (Ed) -42. Change PutLocal(), PutExtended(), PutCentral(), and PutEnd() to write to - memory and then write the block at once to the file. zipfile.c (Ed) -43. Change zcomlen from extent to ush, other extent conversions. zipfile.c, - globals.c, zip.h (Ed) -44. Add is_seekable() and global output_is_seekable. Do seekable check - when output file is opened. zipup.c, globals.c, zip.h, zip.c (Ed) -45. Do not increment files_so_far and bytes_so_far if file could not be read. - zip.c (Ed) -46. If force_zip64 set, only force compressed size in central directory to Zip64 - instead of all entries (csize, usize, off, disk) in Zip64 extra field. This - fixes inconsistent handling of disk numbers. zipfile.c (Ed) -47. Add end status if displaying running stats and not all files were read. - zip.c (Ed) -48. Change force_zip64 to zip64_archive in putend(). zipfile.c (Ed) -49. Enable the i686-optimized code by default. crc_i386.S, - win32/crc_i386.asm, win32/crc_i386.c (Cosmin) -50. Document and implement a new text detection scheme provided by Cosmin in - set_file_type(). Should be able to handle UTF-8 and some other character sets. - proginfo/txtvsbin.txt, trees.c (Cosmin, Johnny, Christian) -51. Update binary detection for -l and -ll to use Cosmin black list. zipup.c (Ed) -52. Change ZE_BIG to include read and write. ziperr.h (Ed) -53. If archive not seekable then use data descriptors. If ZIP64_SUPPORT always - create Zip64 data descriptors and add a Zip64 extra field to flag it is - a Zip64 data descriptor. This is klugy but should be compatible with other - unzips. See the note in zipfile.c for details. (Ed) -54. Use ush for comment length in putend(). Instead of extent use ush for - zcount and fcount same as in zip file. zip.h (Ed) -55. Update VB readme. windll/VB/readmeVB.txt (Ed) -56. Change (INSTALL) to (INSTALL_PROGRAM). unix/Makefile (, Ed) -57. During update the file and byte status counts were off. Fixed by not coun- - ting files copied from old to new as those are not in totals. zip.c (Ed) -58. Change from -b to -bx for nroff of manuals to text files. unix/Makefile (Ed) -59. Add cygwin to makefile. unix/Makefile (, Ed) -60. Fix bug where files to delete not added to list. zip.c (Ed) -61. Fix delete stats. zip.c (Ed) -62. Increment version of crypt to 2.10. Update default behavior notes. - crypt.c, crypt.h (Paul, Christian) -63. Format changes, add parentheses to zfseeko(), fix output bytes, add ifdef - blocks for ZIP10, fzofft formatting, casts. crypt.c (Christian) -64. Cast block_start to unsigned. deflate.c (Christian) -65. Let -R patterns match in subdirectories. Update filter() to use switch, - use global icount and Rcount, handle subdirectories, update icount and - RCount in filterlist_to_patterns(). fileio.c, zip.c, zip.h, globals.c - (Christian) -66. Enclose option -! and use_privileges under NTSD_EAS guard. globals.c, - zip.c, zip.h (Cosmin) -67. Updates to version, copyright, license. [I did not split the copyright - to 2 lines as it already takes up space on the help screen. Ed] - revision.h (Christian) -68. Add ZCONST to some read-only string pointer arguments in function - declarations. zipcloak.c, zipnote.c, zipsplit.c, zip.c, zip.h (Christian) -69. Fix byte counts on exit in zipcloak() and zipbare() to fix zipcloak bug - (Christian) -70. Modified zipnote.c to use WRBUFSIZ to handle line widths of at least 2047 - characters in write mode (Christian) -71. Change simple() and greedy() from zoff_t to uzoff_t. zipsplit.c (Christian) -72. Remove duplicate copyright notices. zipsplit.c (Christian) -73. Remove export notice from help page. Move notice to bottom of license - page. zipcloak.c (Ed) -74. File USexport.msg export history added. (Greg) -75. Added support for VMS ODS5 extended file names. (Eight-bit only, no - Unicode.) VMS name character "/" is mapped to Zip name character - "?". New command-line options -C[2|5][-] (/PRESERVE_CASE[=opts]) - control name case preservation and/or down-casing. globals.c, - zip.c, zip.h, vms/cmdline.c, vms/vms_im.c, vms/vms_pk.c, vms/vms.c, - vms/vmszip.c, vms/vms.h (SMS) -76. New VMS option -ww (/DOT_VERSION) stores version numbers as ".nnn" - instead of ";nnn" [changed from -Y to -ww (Ed)]. zip.c (SMS) -77. Changes to vms_open(). vms/vms_im.c, vms/vms_pk.c -78. Changes to vms_read(). vms/vms_pk.c (SMS) -79. Documentation updates. vms/vms_zip.rnh (SMS) -80. Minor updates. vms/zip_cli.help, vms/cmdline.c, vms/vms_zip.rnh (Ed) -81. Changes to vmsmunch(). vms/vmsmunch.c (SMS) -82. Do some updating of VMS options. vms/zip_cli.cld (SMS) -83. Moved the VMS-specific ziptyp() function from zipfile.c to vms/vms.c - to segregate better the RMS stuff. (SMS) -84. Put 64-bit calls in ZIP64_SUPPORT ifdef blocks, change some long parameters - for append to memory block functions to ulg, remove redundant includes, - add OFT protos to some functions with parameter types that get promoted - like ush to avoid warnings in VMS. zipfile.c (SMS) -85. Use zip_fzofft() to format number. zipsplit.c (SMS) -86. Add file_id.diz from Zip 2.31 (?, Ed) -87. Update install from Zip 2.31 (?, Ed) -88. Update license from Zip 2.31. License (?, Ed) -89. Update Readme.cr from Zip 2.31 (?, Ed) -90. Add 64-bit assembler for Win32 from Zip 2.31. win32/makefile.a64, - win32/readme.a64, win32/gvmat64.asm (?, Ed) -91. Update Readme (Ed) -92. Update headers. crctab.c, crc32.c, deflate.c, ebcdic.h, fileio.h (Ed) -93. Option for extra verbose VMS, change DIAG_FLAG from verbose to - (verbose >= 2). vms/vms.c (SMS) -94. Update copyright header. qdos/qdos.c (Christian, Ed) -95. Change exit(0) to exit(ZE_OK). qdos/qdos.c (Christian) -96. Change ulg to unsigned long. tailor.h (, Christian) -97. Default uzoff_t to unsigned long long if LARGE_FILE_SUPPORT manually - enabled for an otherwise unsupported port. tailor.h (Ed) -98. Update copyright header. tailor.h (Ed) -99. Change EXIT(0) to EXIT(ZE_LOGIC) for ziperr recursion. zip.c (Christian) -100. Change EXIT(0) to EXIT(ZE_OK) for successful returns. zip.c, - zipcloak.c (Christian) -101. Update license. zip.h (Christian) -102. Initialized mesg in zipcloak.c, zipnote.c, zipsplit.c to fix access - violation crashes. (Christian) -103. Added -q (Quiet mode) option to zipcloak, zipnote, zipsplit. (Christian) -104. Add proto of mb_clen(). fileio.c (Cosmin) -105. Synchronize ttyio.c and ttyio.h with the unzip-5.52 source. (Cosmin) -106. Control the POSIX emulation provided by some Unix-on-Windows compiler - distributions, such as Cygwin, via the FORCE_WIN32_OVER_UNIX macro. - tailor.h, win32/Makefile.gcc (Cosmin) -107. Remove getenv() declaration. util.c (Cosmin) -108. Fix definitions of zopen and zstdin. unix/zipup.h (Cosmin) -109. Enable binary file operations for DJGPP and Cygwin. unix/osdep.h (Cosmin) -110. Remove -DMSDOS from CFLAGS; use correct dependency in target crc_i386.obj. - win32/makefile.w32, win32/makenoas.w32 (Cosmin) -111. Update win32/makefile.bor and win32/makefile.gcc (Cosmin) -112. Put mktemp() declaration inside the NO_PROTO guard. tailor.h (Cosmin) -113. Use the right type (DWORD) for volSerNo, maxCompLen and fileSysFlags - in FSusesLocalTime(). win32/win32.c (Cosmin) -114. Set the "zip Debug" configuration as default. win32/vc6/zip.dsp (Cosmin) -115. Define ASM_CRC by default. win32/osdep.h (Cosmin) -116. Avoid using file names that are distinguished solely by letter case; - e.g. crc_i386.S and crc_i386.s. unix/Makefile (Cosmin) -117. Stylistic fix inside ex2in(). unix/unix.c (Cosmin) -118. Change zlist dsk from ush to ulg to support Zip64 and added casts in - zipfile.c to write ush. zip.h, zipfile.c (Christian, Ed) -119. Conditionally apply S_IFLNK to support DJGPP. unix/unix.c (Cosmin) -120. Change -dd [siz] (display dots, set optional dot size) to the options - -dd (turn dots on, use 10 MB default) and -ds siz (set dot size). - Found that using -dd with an optional value got confusing as detection - of an optional argument, when the next argument was not either an option - or the end of the line, was easy to overlook. Easier to avoid optional - values. zip.c (Ed) -121. Change text output of manual pages to zip.txt, zip.txt, zipcloak.txt, - zipnote.txt, zipsplit.txt. unix/Makefile (Christian, Ed) -122. Change comments using // to /* */ format. api.c, zip.c (Christian) -123. Add support for signals SIGABRT, SIGBREAK, SIGBUS, SIGILL, and SIGSEGV - to utilities. zipcloak.c, zipnote.c, zipsplit.c (Christian) -124. Update ToDo30.txt file (Ed) -125. Delete old Manual file (Ed) -126. Update WHERE from Zip 2.32 (Ed) -127. Change description of dot-size. zip.c (Ed) -128. Change VMS to use -ds to set dotsize. vms/cmdline.c (Ed) -129. Update manuals. man/zip.1, man/zipsplit.1, man/zipnote.1, - man/zipcloak.1 (Ed) -130. Detect i586, i686 and Cygwin in version_local(). unix/unix.c (Cosmin) -131. Add clean target. win32/makefile.w32, win32/makenoas.w32 (Cosmin) -132. Changed most 64-bit size/offset variable declarations (like zoff_t) - into "unsigned" type (like uzoff_t), for better backward compatibility - with non-ZIP64_SUPPORT setups where "ulg" was used for these variables. - deflate.c, fileio.c, globals.c, trees.c, vms/vms_pk.c, win32zip.c, - zip.c, zip.h, zipfile.c, zipup.c (Christian) -133. Add (ulg) cast to strstart in flush_block. deflate.c (Christian) -134. Updated Win32 LARGE_FILE_SUPPORT setup for Watcom and MinGW. - tailor.h, win32/osdep.h (Christian) -135. Add attempt count to tempname(). fileio.c (Christian) -136. Fixed size counter handling in debug code for Zip64. trees.c (Christian) -137. Moved cryptnote display text definition into revision.h, like was done - in Zip 2.31. zip.c, revision.h (Christian) -138. Add ZCONST. fileio.c (Christian) -139. Removed earlier change in trash() where ASCII-containing iname was - searched for native-coded '/' characters. [Added note but left as - changed 5/20/05 EG] zipfile.c (Christian) -140. Change zipup size error message to use zip_fzofft(). zipup.c (Christian) -141. Updated win32/makefile.wat to enable Zip64 support and use directory - for intermediate files. (Christian) -142. Change fcount and zcount from ulg to extent as extent is used internally, - but Zip64 standard supports up to ulg. Add note to zip.h. globals.c, - zip.h (Christian) -143. Define NO_W32TIMES_IZFIX in compile options when appropriate. Add - version information for USE_ZLIB compiler option. zip.c (Christian) -144. Add support for SIGABRT, SIGBREAK, SIGBUS, SIGILL, and SIGSEGV signals. - zip.c (Christian) -145. Add display-usize option to show uncompressed size. zip.c (Ed) -146. Add many descriptions to options table. zip.c (Ed) -147. Remove -R from help screen as on extended help screen. zip.c (Ed) -148. Add basics to extended help. zip.c (Ed) -149. Fix checks in scanzipf_reg() for empty file since cenbeg now unsigned. - Change buffer from t to b in small big check. Back up after small - zip big archive check. zipfile.c (Ed) -150. Change Zip64 not supported warning in scanzipf_reg(). zipfile.c (Ed) -151. Fix bug where local and central headers were not matching when compiled - with NO_LARGE_FILE_SUPPORT. Restored order of zlist structure elements - to match order of local header as scanzipf_reg() compares it as an - array of bytes to the local header. Gag. It needs fixing but at least - it works as intended now. zip.h, zipfile.c (Ed) -152. Minor fix from 10000 to 10 K for WriteNumString(). util.c (Ed) -153. Add overflow check to file_read(). zipup.c (SMS) -154. Add parameter p1 product specification. vms/collect_deps.com (SMS) -155. VMS changes. vms/descrip_mkdeps.mms (SMS) -156. Change zoff_t to uzoff_t and unsigned int to size_t. vms/vms_im.c, - vms/vms_pk.c (SMS) -157. Fix ; that was : at end of line. Fix DisplayNumString() prototype. - zip.h (Ed) -158. Get rid of leading blanks in DisplayNumString(). util.c (Ed) -159. Reset dot_count each file. zipup.c (Ed) -160. Minor changes to extended help. zip.c (Ed) -161. Move defines into DEFINED_ONCE block. api.h (Mike) -162. Add Still Remaining And Planned For Zip 3.0 section. WhatsNew (Ed) -163. Delete quotes around CHANGES. Readme (Ed) -164. Add -lf, open file at path and use for logging, -la, append to - existing logfile, and -li, include informational messages, options. - globals.c, zip.h, zip.c (Ed) -165. Update extended help to include logging. zip.c (Ed) -166. Add support for required short option value in form -o=value as optional - does. fileio.c (Ed) -167. If bytes_total is smaller than bytes_so_far for some reason then display - negative of bytes_to_go. This can happen if files grow in size after all - the sizes are initially added up. zip.c (Ed) -168. Use usize from filetime for adding to bytes_total when updating instead - of size in old entry. zip.c (Ed) -169. Change status counts files_so_far and bytes_so_far to include bad files - so the status counts end at the end but add bad_files_so_far and - bad_bytes_so_far to track bad files. After minor fixes it looks like - the counts remaining at the end are correct, even when some files are - not readable. Update bad file warnings. zip.c, zip.h, globals.c, - zipup.c (Ed) -170. Add uq for unsigned q in zipup(). Initialize z->len in case an error - later so have a valid size. zipup.c (Ed) -171. Check noisy in DisplayRunningStats() so logging is independent of it. - zip.c (Ed) -172. Add check in DOS for windows and if running DOS version on Windows warn - user. zip.c, msdos/msdos.c, msdos/osdep.h (Johnny) -173. Add errno.h for strerror(errno) call. zip.c, zipup.c (SMS) -174. Fix log problem if using -q option. zipup.c (Ed) -175. Change "Far char" to "char Far" as Far is a qualifier not for the char - type but the storage allocation of the array. fileio.c (Christian) -176. Update note on extent. globals.c (Christian, Ed) -177. Remove extra USE_ZLIB. zip.c (Christian) -178. Add note for the OEM_RUSS '/' bug. Need to look at later as it seems - the Russian bug remains unfixed. zipfile.c (Christian, Ed) -180. So byte counts always come out even, create good_bytes_so_far to - count bytes read in and convert bytes_so_far to use the counts - from the initial scan. If files change during the zip operation - good_bytes_so_far will change and not match bytes_so_far. - zip.h, globals.c, zip.c (Ed) -181. Changes to extended help. zip.c (Ed) -182. Update WhatsNew (Ed) -183. Update DLL resource copyright. windll.rc, windll.aps (Ed) -184. Add directory search improvements to Win32 (within recursion, reuse - attribs from directory lookup to avoid calling stat()). Add - getd_attribs(), procname_win32(). win32/win32zip.c (Johnny) -185. Cache result of IsFileSystemOldFAT() to avoid repetitive system calls - for identical information. win32/win32.c (Johnny) -186. Add optimization to dosmatch(): apply alternate shortcut code when the - pattern to match consists of one multichar wildcard ('*') followed - by a fixed string. util.c (Johnny) -187. Move DOS check_for_windows() checks to Help and Version and errors - only. Shorten message to one line. zip.c, msdos/msdos.c (Ed) -188. Define WIN32_OEM to enable oem ansi conversions for more than RSXNT. - Not yet fully implemented. win32/win32.c, win32zip.c, zip.c, - zipfile.c (Ed) -189. Directory search improvements for MSDOS. msdos/msdos.c (Johnny) -190. Add caching of directory information. If pattern is just *string no - need to recurse. win32/win32.c (Johnny) -191. If wild_stop_at_dir then do recurse to handle cases like a/b/*.txt. - win32/win32.c (Ed) -192. Additional improvements to directory search speedups, including - a) MSDOS port fixes for Turbo C++ compiler - b) In both Win32 and MSDOS, change getDirEntryAttr() into macro, - saving one function call overhead - e) Add explaining comment to optimized procname_{local} code - f) In util.c, move "*literal" pattern-matching optimization from - dosmatch() to recmatch(). Advantages: - - optimization used for all systems - - optimization applied to all occurences where a "*" is last wildcard - in pattern - - "dosmatch()" only preconditoning wrapper for matching workhorse - "recmatch()", it should not implement matching algorithms itself - - optimization not applied for WILD_STOP_AT_DIR option - g) >>>disabled<<< "*literal" optimization for all MBCS-aware environments, - because suspect that supplied optimization code is not MBCS-clean - (for details see the comment within the patch), so IS NOT USED for - win32 port! Can force activation of match optimization by specifying - conditional compilation symbol TEST_FOR_MBCS_CLEAN. - (Christian) -193. Add and move comments, implement changes for directory search improvements - in Zip 3.0 util.c (Ed) -194. In win32/win32.c, IsFileSystemOldFAT(), add declarations of static caching - variables where missing to fix win32 port compilation bug (Christian) -195. Correct changed arguments in RSXNT-only character set conversion - call. win32/win32zip.c (Christian) -196. Implement Directory Search improvements from Zip 2.32. win32/win32zip.c - (Johnny, Ed) -197. Debian Bug #312090 fix. Reworded man page to give multiple examples of - recursion, not just zip -r foo foo. man/zip.1 (Ed) -198. Change "-Aa -D_HPUX_SOURCE +e" to -Ae for HP. "HP-UX with the HP compiler - and on AIX 4.2.0. AIX 5.1 with gcc-3.4.3 (32-bit) and Darwin built fine - - though AIX 5.1 needed CC=gcc make -e ... to find gcc. According to the - HP-UX man page -Ae is equivalent to -Aa -D_HPUX_SOURCE +e it seems the - +e is needed and -Ae is more terse anyway." Expression generated before - was too long. unix/configure (Rodney Brown) -199. Add support for osf4.0f that does not have fseeko or ftello but has 64-bit - fseek and ftell though. tailor.h (Rodney) -200. Fix unsigned char to char in recmatch(), add casts for compares. util.c - (Ed) -201. Fix for alpha off_t long long. unix/osdep.h (Rodney) -202. Change shmatch() from uch to char and change parameters to recmatch(). - Change dosmatch(). util.c (SMS, Rodney, Ed) -203. Add local for DisplayRunningStats(). zip.c (Rodney, Ed) -204. Disable unused append_ubyte_to_mem(). Fix error messages in other append. - zipfile.c (Rodney, Ed) -205. Delete unused getDirEntryAttribs(). msdos/msdos.c (Christian) -206. Change warning when running msdos version on Windows. msdos/msdos.c (Ed) -207. Change recmatch() to support MBCS matching. util.c (Christian) -208. Update WhatsNew (Ed) -209. Update Readme (Ed) -210. Format Readme to fit in 80 character lines (SMS, Ed) -211. Rename install.vms to install_vms.txt. vms/install_vms.txt (SMS) -212. Add reference to vms/install_vms.txt in INSTALL (SMS) -213. Update INSTALL (Ed) -214. Remove ALT_NEXTBYTE and Building UnZip sections as no longer needed. - vms/notes.txt (SMS, Ed) -215. Add note to TODO (Ed) -216. Update Makefile message to suggest using generic. unix/Makefile (Ed) -217. Update text output of manual. zip.txt (Ed) -218. Update VMS section. INSTALL (SMS, Ed) -219. Minor changes in vms/install_vms.txt (SMS, Ed) -220. Update VMS install information. INSTALL, vms/install_vms.txt (SMS, Ed) -221. Do not use _stati64 under Cygwin. win32/osdep.h (Cosmin) -222. Add note to Makefile to use generic first. unix/Makefile (Ed) -223. Add Test option for VMS CLI. vms/cmdline.c (SMS, ?) -224. Add noconfirm to deletes, define symbol edit. vms/descrip.mms (SMS) -225. Changes to vms/install_vms.txt (SMS) -226. Add note on symbols to VMS. INSTALL (SMS) -227. Update license headers. vms/osdep.h, vms/vms.h, vms/vmsmunch.c, - vms/zipup.h, vms/vmszip.c, vms/vms.c, vms/vms_im.c, vms/vms_pk.c, - vms/command.c (Ed) -228. Add stsdef.h include for VMS and convert unzip test return to VMS - result for VMS. zip.c (SMS) -229. Add const to ziperr(). amiga/amiga.c (Paul) -230. Clean up makefile. amiga/makefile.azt (Paul) -231. Don't try Amiga large file support. amiga/osdep.h (Paul) -232. Add note on -V and -VV. vms/notes.txt (SMS) -233. Small update. vms/zip_cli.help (SMS) -234. Format Windows warning message. msdos/msdos.c (Christian) -235. Format changes. util.c (Christian) -236. Update VMS. INSTALL (SMS) -237. Add creation of intermediate object directories. msdos/makefile.wat - (Christian) -238. Add void * cast. msdos/msdos.c (Christian) -239. Add include for mktemp(). msdos/osdep.h (Christian) -240. Fix __RSXNT__ and WIN32_OEM define blocks. win32/win32.c (Christian) -241. Fix __RSXNT__ and WIN32_OEM define blocks. win32/win32zip.c (Christian) -242. Add != NULL to check. zip.c (Christian) -243. Fix WIN32_OEM. zipfile.c (Christian) ----------------------- October 11th 2005 version 3.0f01 ---------------------- -(the internal betas may be merged later) - 1. Add DSEG for Watcom data segment. msdos/makefile.wat (Christian) - 2. Add -zq and use assembler. os2/makefile.os2 (Christian) - 3. Update header. os2/match32.asm (Christian) - 4. Change len from int to unsigned int. os2/os2.c (Christian) - 5. In GetLongPathEA() limit tempbuf to CCHMAXPATH. os2/os2.c (Christian) - 6. Add DWATCOM_DSEG to use data segment. win32/makefile.wat (Christian) - 7. Update header and add DGROUP. win32/match32.asm (Christian) - 8. Add UNICODE_SUPPORT define. zip.h, zip.c (Ed) - 9. Add oname to f and z structs for the display name to use in messages. - Change z->zname to z->oname in messages. fileio.c, zip.c, win32zip.c, - zipup.c, zipfile.c, zip.h (Ed) -10. Move multi-byte defines to make global (they were needed with wide - characters but that was taken out and left them where they are). - fileio.c, zip.h -11. Add copy_args(), free_args(), and insert_arg() to create copy of argv - that can free() and to support inserting "@" in get_option for lists. - fileio.c, zip.h -12. Insert arg "@" after list if not followed by option. fileio.c -13. Add args variable and copy argv to args so can use insert_arg(). zip.c -14. Add MKS Korn Shell note. zip.c -15. Change cast of option in add_filter() calls from char to int. zip.c -16. Implement multi-byte version of Unicode support. To support Win32 NT - wide calls will require additional work not planned for this release. - Changes include (Ed): - - Add use_wide_to_mb_default flag. globals.c, zip.h - - Add compiler UNICODE_SUPPORT version information. zip.c - - Add uname to f and z structs for UTF-8 name. zip.c - - Moved some defines out of ZIP64 section. zipfile.c - - Add define UTF8_PATH_EF_TAG for Unicode Path extra field. Currently - the tag is 0x7075 which is 'u' 'p' for Unicode path and seems - free according to the AppNote. The extra field is - tag (2 bytes 'u' 'p') - size (2 bytes) - Unicode Path size (2 bytes) - unused (2 bytes set to 0) - unused (2 bytes set to 0) - Unicode path (variable) - The unused locations also serve as a check in case the tag is in - use already. - - Add add_Unicode_Path_local_extra_field() and - add_Unicode_Path_cen_extra_field() functions. zipfile.c - - Add read_Unicode_Path_entry() function. zipfile.c - - Set uname and oname in scanzipf_ref(). zipfile.c - - Add define wide_to_mb_default. Add zchar but not used. win32/osdep.h - - Add wide command line reading but don't use. win32/win32.c - - Add port functions for Unicode, including local_to_utf8_string(), - wide_to_escape_string() (for converting a wide character that can't be - converted to mb in the local character set to a reversable escape string), - escape_string_to_wide(), wide_to_local_string(), local_to_display_string() - (for creating the display version of name), utf8_to_local_string(), - local_to_wide_string(), wide_to_utf8_string() (NOT IMPLEMENTED), and - utf8_to_wide_string() (NOT IMPLEMENTED). win32/win32.c - - Implement attempt at escape function. Whenever a wide character can't - be mapped to the local character set, this function gets called. - Currently the wide character is converted to a string of hex digits. - If the wide can fit in 2 bytes then the form #1234 is used. If not, - the 4-byte form #L12345678 is used. - It compiles but needs the utf8 functions implemented. Also needs testing - in a multi-byte environment and only Windows is implemented so need to at - least do Unix. (Ed) -17. Update freeup() to include uname and oname. zip.c -18. Move define wide_to_mb_default so default for all is '_'. zip.h (Ed) -19. No changes needed to osdep.h and update unix/unix.c but not tested. (Ed) ----------------------- October 19th 2005 version 3.0f02 ---------------------- - 1. Remove null value check for split_size as get_option() already checks. - zip.c (Ed) - 2. Update f$search(). vms/descrip.mms (SMS) - 3. Save parse name before search and use that on failure. Change name parsing - in ziptyp() to solve a problem with search-list logical name device directory - specs. vms/vms.c (SMS) - 4. Compile in UNICODE_SUPPORT if have wchar_t and mbstowcs(). unix/configure (Ed) - 5. Move Unicode defines to zip.h and functions to fileio.c so generic. Create - a new OEM function for Windows. fileio.c, zip.h, tailor.h, win32/win32.c (Ed) - 6. Add UTF-8 functions. fileio.c (Paul) - 7. Convert Unicode functions to use zwchar defined as unsigned long for wide - char. fileio.c, zip.h (Ed) - 8. Add wchar_t check for Unix. unix/configure (Ed) - 9. Add default when zwchar (4 bytes) is too big for wchar_t (2 bytes). zip.h (Ed) -10. Allow for states for wide characters but surrogates not done. fileio.c (Ed) -11. Update WhatsNew (Ed) ----------------------- December 16th 2005 version 3.0f03 ---------------------- - 1. Fix broke encryption when ZIP64_SUPPORT enabled by accounting for need for - data description when encrypting. Data description is not required for - encryption (WinZip does not use one) but seems needed by Zip for some reason. - zipfile.c (Ed) - 2. Add function bfwrite() to do buffered fwrite(). Most output already is - written by zfwrite used by crypt.c which now calls bfwrite. All splitting - and new byte counts are done in bfwrite. fileio.c (Ed) - 3. Move some functions out of ZIP64_SUPPORT defines for use with UNICODE_SUPPORT. - zipfile.c, zip.h (Ed) - 4. Add is_ascii_string() and only create Unicode extra field if z->iname is - not ascii. zipfile.c, zip.h, fileio.c, (Ed) - 5. Add parameter rewrite to putlocal() to note when rewriting bytes so the bytes - rewritten are not counted in output totals. zipfile.c, zip.h (Ed) - 6. Handle VMS ... wildcard. util.c (SMS) - 7. Make tempzip file name global. zip.c, globals.c, zip.h (Ed) - 8. Add out_path global and -O path option to allow the output archive to have a - different name than the input archive, if there is one. This allows - updating a split archive, since output to the same split name would otherwise - be complicated and not user friendly. Use out_path for output. zip.h, - zip.c, globals.c (Ed) - 9. Many output functions that had output file y as parameter, such as zipup(), - zipcopy(), putlocal(), putcentral(), and putend(), now do not as y is - now global. This allows changing y as splits are created. zip.c (Ed) -10. Add function zipmessage() for writing messages like zipwarn() but are - informational. zip.c (Ed) -11. Minor changes to help. zip.c (Ed) -12. Add SPLIT_SUPPORT to version output. zip.c (Ed) -13. Add rename_split() to rename and set attributes for a split. zip.c (Ed) -14. Add set_filetype() to set attributes of split. zip.c (Ed) -15. Change variable a (holds attributes) to zipfile_attributes and make global. - zip.c, zip.h, globals.c (Ed) -16. Add key_needed flag for encryption and move setting key to after - command line processed. zip.c (SMS) -17. Initialize dot size using default only if dot_size not set. zip.c (Ed) -18. Change command line processing so that last -P or -e is used. zip.c - (Ed) -19. Fix broke writing of 4-byte spanning signature at the beginning of the archive - if splitting. zip.c (Ed) -20. Use bfcopy() instead of fcopy() to copy archive beginning. bfcopy() uses - global y. zip.c (Ed) -21. It looks like tempzf is no longer used. zip.c (Ed) -22. Account for SUNPRO_C and DECC_VER. Change SPARC to Sparc. unix/unix.c (SMS) -23. Remove GNUC. vms/cmdline.c (SMS) -24. Change case of system calls. vms/vms.c (SMS) -25. Add fix for VMS ... matching, but may change Zip to avoid ex2in() and in2ex() - for pattern matching in future. vms/vmszip.c (SMS) -26. Remove /NODIRNAMES and /DIRNAMES from VMS help. vms/zip_cli.help (SMS) -27. Define new globals zip64_eocd_disk, zip64_eocd_offset, current_local_tempname, - bytes_this_split, and bytes_this_entry for splits. globals.c, zip.h (Ed) -28. Add SUNPRO C and DEC C compile checks. unix/configure (SMS) -29. Add CFLAGS_NOOPT for removing optimization for configure. unix/Makefile (SMS) -30. Modify crypthead() to use bfwrite(). crypt.h, crypt.c (Ed) -31. Modify zfwrite() to use global output file. crypt.h, crypt.c (Ed) -32. Modify zfwrite() when no encryption to use bfwrite(). crypt.h (Ed) -33. Add bfcopy() to copy to y. fileio.c (Ed) -34. Add close_split() and bfwrite() for splits. fileio.c (Ed) -35. Add is_ascii_string() to check if UTF-8 extra field is needed. fileio.c (Ed) -36. Change Unicode escape of 2-byte wide from #1234 to #U1234. fileio.c (Ed) -37. Add read_Unicode_Path_entry() to read the UTF-8 path extra field. zipfile.c (Ed) -38. Latest Unicode Path extra field format is - 1 byte Version of Unicode Path Extra Field - 2 bytes Name Field Checksum - variable UTF-8 Version of Name -39. Use CRC-32 for Unicode Path Checksum and AND halves. zipfile.c (Paul) -40. Add Unicode Path Checksum check to make sure extra field applies to Name field - still. zipfile.c (Christian) -41. Move get_extra_field() out of Zip64 block and make available for splits. - zipfile.c (Ed) -42. Check in putlocal() using is_ascii_string() and don't create Unicode path - extra field if name is ASCII characters. zipfile.c (Ed) -43. If local header for split is on another disk and using split method 1, close - that split in putlocal() after rewrite local header. zipfile.c (Ed) -44. Fix data descriptor bug when encrypting where putextended() did not handle the - not Zip64 case, which mostly only happens now for encryption. zipfile.c (Ed) -45. Check for ASCII name using is_ascii_string() in putcentral() for Unicode path - extra field. zipfile.c (Ed) -46. Instead of single disk values, update putend() to use real split values for - current_disk, cd-start_disk, cd_entries_this_disk, cd_start_offset, - zip64_eocd_disk, zip64_eocd_offset, and current_disk and allow for - needing Zip64 if exceed standard max values for current_disk, cd_start_disk, - cd_entries_this_disk, total_cd_entries, and cd_start_offset. zipfile.c (Ed) -47. Use current_local_offset and current_local_disk for z->off and z->dsk in - zipup(). zipup.c (Ed) -48. Fix bug where force_zip64 was used to determine descriptor size but can have - Zip64 entry without force_zip64 so use zip64_entry. zipup.c (Ed) -49. Change the p - o != s compression size test for splits to bytes_this_entry - != (key ? s + 12 : s) and avoid ftell() in split. zipup.c (Ed) -50. If local header is on a previous split and split method 1 do the seek on that - split to update header. zipup.c (Ed) -51. For streaming, only force Zip64 if reading stdin and writing a non-seekable - device. In other cases can detect either the input file size and set Zip64 - if needed or seek in the output to update the local headers. zipup.c, - zipfile.c, zipup.c (Ed) -52. Allow creation of stored archives with descriptors for testing. Currently - they can't reliably be read but this is planned. zipup.c, zipfile.c, zip.c - (Ed) -53. Update help, adding in -e, -P, -s splitsize, -sp, and -sv options. zip.c (Ed) -54. Spelling fix in zipsplit man page. man/zipsplit.1, zipsplit.txt (Ed) -55. New option -sv and variable noisy_splits to enable verbose splitting. - Default is to quietly create splits, unless -sp set to pause between splits. - zip.h, zip.c, globals.c, fileio.c (Ed) ----------------------- December 23rd 2005 version 3.0f04 ---------------------- - 1. Move inlined text-vs-binary checks from file_read() into a separate, - new function named is_text_buf(). zipup.c, util.c, zip.h (Cosmin) - 2. Fix calls to putlocal to remove the removed dest parameter. crypt.c (Ed) - 3. Add get_split_path() to get the path for a split given the disk number. - fileio.c, zip.h (Ed) - 4. Change formatting of zipmessage() to remove tabbing and add formatting - to call to zipmessage(). fileio.c, zip.c (Ed) - 5. Initialize many variables such as y and tempzip. zip.c, fileio.c, - zipfile.c (Ed) - 6. Add loop to pause during split method 2 to allow changing disk or changing - the path for the next split. fileio.c (Ed) - 7. If after starting new split there is not enough room for the remaining buffer - for split method 1 display error and exit and for split method 2 we can - display a warning and user can replace disk or change path. fileio.c (Ed) - 8. Add list to store input file arguments using add_name() to add the name to - filelist_struc filelist and then process the names after the input archive - is read. zip.c (Ed) - 9. Fix infinite loop when opening a log file whose name contains multiple '/'. - zip.c (Cosmin) -10. Move split size message lower and only output if option sv sets - noisy splits. zip.c (Ed) -11. Set y to output file, remove output file from zipcopy(), putlocal(), - putcentral(), and putend(). zipsplit.c, zipnote.c, zipcloak.c (Ed) -12. Add code for not SPLIT_SUPPORT case. zipfile.c, zipup.c (Ed) -13. Prepend '-' to commands from target clean. - win32/makefile.w32, win32/makenoas.w32, win32/makefile.bor (Cosmin) -14. Must not call putenv() in iz_w32_prepareTZenv() under Cygwin. - win32/osdep.h (Cosmin) -15. Add browse info in Visual C++ 6 project. win32/vc6/zip*.dsp (Cosmin) ----------------------- December 27th 2005 version 3.0f05 ---------------------- - 1. Add proposed changes to License (Ed) - 2. Fix -l corruption bug by using memcpy() instead of wrongly changing the - buffer pointer. Fix was left out of last beta. zipup.c (Cosmin) - 3. Fix get_split_path() parameter. zip.h (SMS, Ed) - 4. Add -dg and display_globaldots to display dots globally for entire archive - instead of for each file. Is not affected by noisy flag. globals.c, - zip.h, zip.c, zipup.c, fileio.c (Ed) - 5. Make dot_count and dot_size uzoff_t, dot_count because with global dots - dot_count does not reset and with terabyte files the number of buffers - could exceed 2G, dot_size to allow use of ReadNumString() to read number. - zip.c, zip.h, globals.c (Ed) - 6. Add Deletion to help. zip.c (Ed) - 7. Fix delete date. zip.c (Ed) - 8. For streaming, need to assume Zip64 if writing a non-seekable device so - extra field for Zip64 is created if needed. zipup.c, zipfile.c, zipup.c (Ed) - 9. Add remove_local_extra_field() and remove_central_extra_field(). - zipfile.c (Ed) -10. Remove disabled copyright from license(). zip.c (Ed) -11. Clean up recent changes. zip.c, zipfile.c, fileio.c, zip.h, zipup.c (Ed) -12. Create scanzipf_regnew() for new file scan. zipfile.c (Ed) ----------------------- December 29th 2005 version 3.0f06 ---------------------- - 1. Change dot_size and dot_count from uzoff_t to zoff_t to allow use of - negative flag values. globals.c, zip.h (SMS, Ed) - 2. Remove file parameter to bfwrite() in putend(). zipfile.c (SMS, Ed) - 3. Add back code for not SPLIT_SUPPORT to putend(). zipfile.c (SMS, Ed) - 4. Change tag from ush to ulg in remove_local_extra_field() and - remove_central_extra_field() to avoid parameter problems. zipfile.c (Ed) - 5. Add allow_empty_archive to flag when want to create an empty archive. - globals.c, zip.h (Ed) - 6. Set allow_empty_archive when using -i and expecting an archive to be - created. This is in response to the 2/14/05 email. zip.c (Ed) - 7. Make before and after variables that hold the dates of files to - process or delete global so can use them in scanzipf_regnew(). zip.h, - zip.c, globals.c (Ed) - 8. Change scanzipf_regnew() to be based on scanzipf_fix() which seems closer. - Still have not coded the new regular zipfile reader. zipfile.c (Ed) - 9. For new reader first get add list and then read old archive and filter - as reading old entries. zip.c, zipfile.c (Ed) -10. Define USE_NEW_READ to turn on using new reader, which is being - created. This allows all to work while the new reader is being worked - on. zip.c, zipfile.c (Ed) ----------------------- January 9th 2006 version 3.0f07 ---------------------- - 1. Remove dest parameter from crypthead() and zipcopy(). crypt.c (SMS, Ed) - 2. Change -ds to handle dots for as small as every 32 KB. zip.c (Ed) - 3. Add ask_for_split_write_path() and ask_for_split_read_path() for - asking where to put the next write split and for locating the next - read split. zip.h, fileio.c (Ed) - 4. Add in_path to track where reading splits from. zip.h, globals.c, zip.c (Ed) - 5. Update copyright date on changed files to include 2006 (Ed) - 6. Replace stderr with mesg for most output messages. deflate.c, fileio.c, - trees.c, util.c, zip.c, zipcloak.c, zipfile.c, zipnote.c, zipsplit.c - 7. Add mesg_line_started to track if need new line on mesg output and update - zipmessage() and zipwarn() to use it. Set mesg_line_started to 1 when - newline not last character written to mesg and 0 when it is. deflate.c, - zip.h, zip.c, globals.c, zipup(), fileio.c (Ed) - 8. Include base_path as parameter for get_split_path(). fileio.c (Ed) - 9. Account for VMS version in split path. Add vms_file_version(). fileio.c, - zip.c, vms/vms.c, vms/vms.h (SMS) -10. Create crc16f() to create ANDed halves crc32 for Unicode using copy - of crc32() but may change to use main copy. zipfile.c, zip.h, - fileio.c (Ed) -11. Close in_path and out_path in finish() and ziperr(). zip.c (Ed) -12. Change perror() to strerror() and print to mesg in ziperr(). zip.c (Ed) -13. Add find_next_signature() to find the next signature when reading a - zip file. zipfile.c (Ed) -14. Add find_signature() to find a given signature from current point in - archive. zipfile.c (Ed) -15. Add at_signature() to check if at a given signature in archive. - zipfile.c (Ed) -16. Changes to scanzipf_regnew() but far from done. zipfile.c (Ed) -17. Changes to readzipfile() to close input archive file and allow new - zipfile reader to open and close files as goes through splits. - zipfile.c (Ed) -18. Change -s to default to MB and set minimum split size to 64k. - zip.c (Ed) -19. Add link to user32.lib for CharToOem(). makefile.w32, makenoas.w32 - (Cosmin) -20. Remove unused Z64_EFPos. globals.c (Ed) ----------------------- February 13th 2006 version 3.0f08 ---------------------- - 1. Move option checks before any work is done. zip.c (Ed) - 2. Update bfcopy() to handle reading splits and remove input file - parameter and use global in_file. fileio.c (Ed) - 3. Change ask_for_split_read_path() to allow user aborting. fileio.c (Ed) - 4. Change get_split_path() to use standard file extensions from most - recent AppNote of .z01, .z02, ..., .z99, .z100, .z101, ... fileio.c (Ed) - 5. Change is_ascii_string to use 0x7F for ASCII detection. fileio.c (Ed) - 6. Add copy_only global for when -O is used to change the format of an - archive without changing the contents. This allows for converting an - archive to a split archive for instance. The global copy_only is used - to output status information for copies when normally copied files - have no status messages. globals.c (Ed) - 7. Add in_file, split_path, total_disks, current_in_disk, and - current_in_offset as globals to track reading splits. zip.h, - globals.c (Ed) - 8. Update copyright date. revision.h (Ed) - 9. Close in_file if open in finish(). zip.c (Ed) -10. Add -O (big o) to extended help. zip.c (Ed) -11. Remove readzipfile() from zipstdout() and use main call later down. - zip.c (Ed) -12. Move archive reading and file scanning after command line checks. - zip.c (Ed) -13. If -O out_zip and so have_out is set then set copy_only and allow - copying instead of error message *Nothing to do*. zip.c (Ed) -14. If zipbeg is just 4 bytes and spanning then assume is spanning - signature and set zipbeg to 0 to ignore. zip.c (Ed) -15. Don't open initial write test as modify if have_out is set and so have - a separate output file. zip.c (Ed) -16. If zipbeg is 0 and nothing at beginning of archive to copy then don't - open input file until zipcopy() does. zip.c (Ed) -17. If stuff at beginning then copy and close input file. Should be able - to keep it open but easier to close it and let zipcopy() reopen it. - zip.c (Ed) -18. Add status message when copy_only set so something is displayed. - zip.c (Ed) -19. Instead of closing x at bottom close in_file. The variable x was used - inconsistently and it seemed easier to make in_file global instead. - Then again y remains the global output variable. zip.c (Ed) -20. Update copyright. zipnote.c, zipsplit.c, zipcloak.c (Ed) -21. Change adjust_zip_local_entry() to return 1 if the entry is Zip64 and - 0 if not. This is needed to know how large the extended local header - is later. zipfile.c (Ed) -22. Add read_Unicode_Path_local_entry() to read the local version of the - Unicode Path extra field. zipfile.c (Ed) -23. Handle disk in adjust_zip_central_entry(). zipfile.c (Ed) -24. Change USE_NEW_READ to SPLIT_SUPPORT as splits seems to be stable more - or less. zipfile.c (Ed) -25. Add is_signature() to compate signatures. zipfile.c (Ed) -26. Create scanzipf_fixnew(). It should look like scanzipf_regnew(). - zipfile.c (Ed) -27. Change scanzipf_regnew() to read the central directory and create zlist - and handle reading traditionally. Allows using central directory - information, in particular file sizes, in zipcopy() while reading - entries. Use global in_file instead of f for input file and set to NULL - when not a valid file so finish() only tries to close it if needed. - Check to make sure the End Of Central Directory record found is infact - the last one in case a stored archive is in the last 64 KB. Refuse - to update a split archive but recommend using -O instead. zipfile.c (Ed) -28. Change readable check in readzipfile() to require input archive to exist - if using -O out_archive. zipfile.c (Ed) -29. Change putlocal() to not create a Zip64 extra field unless needed and - on rewriting the local header to remove Zip64 extra field if was created - but not needed. Add check if assumed entry does not need Zip64 but does, - meaning probably the uncompressed size is less than 4 GB but the - compressed size is over 4 GB. zipfile.c (Ed) -30. Change zipcopy() to use the global in_file and y files and to open and - close read splits as needed. Checks the local header against the - central directory header to verify same file, which should be as using - the disk and offset values from the central directory. Update disk and - offset in central directory. zipfile.c (Ed) -31. Change out_path and out_len to base_path and base_len in - get_split_path(). fileio.c (SMS) -32. Update command line options for VMS to include verbose splitting. - vms/zip_cli.cmd, vms/cmdline.c (SMS) -33. Handle HP. unix/unix.c (SMS) -34. Add adler16() checksum function. util.c (Cosmin) -35. Use FILE_FLAG_BACKUP_SEMANTICS and a less demanding access mode - in CreateFile() when retrieving file attributes. Fixes a problem - when adding a directory entry from an NTFS or a CDFS partition - (i.e. one that stores timestamps using universal time), and the - directory timestamp is not the same daylight savings time setting. - The effect is an offset in the timestamp by one hour, if zip is - built using NT_TZBUG_WORKAROUND. The problem is not exposed, - however, if NO_W32TIMES_IZFIX is defined. win32/win32.c (Cosmin) ----------------------- March 19th 2006 version 3.0f09 ---------------------- - 1. Fix encryption problem where a large file with uncompressable data - can cause deflate to store bad data. See crypt.c for details. - Thanks to the nice people at WinZip for finding and providing the - details of this problem. crypt.c (Ed) - 2. Add note at top of Extended Help to refer to the Zip Manual. zip.c - (Ed) - 3. Update extended help for delete. zip.c (Ed) - 4. Change crypthead() to use buffer and bfwrite() which is split aware. - crypt.c (Ed) - 5. Create SPLIT_SUPPORT version of zipcloak() and zipbare() and read - local header rather than assume data using central header. crypt.c (Ed) - 6. Change zfwrite() to use global output file y. crypt.c (Ed) - 7. Remove in and out parameters from zipcloak() and zipbare() for - splits. crypt.h, zipcloak.c (Ed) - 8. Change get_split_path() to get_in_split_path() and get_out_split_path(). - zipfile.c, fileio.c, zip.h (Ed) - 9. Change crc32f() to crc32u(). fileio.c, zip.h (Ed) -10. Add encryption overwrite fix to copy_block() and remove from zfwrite(). - crypt.c, tree.c (Ed, Christian) -11. Add note on bug fix. WhatsNew (Ed) -12. Add copy_only mode. zip.c (Ed) -13. Make SPLIT_SUPPORT the default. zip.h (Ed) -14. Add set_filetype(), rename_split(), and zipmessage(). zipcloak.c, - zipnote.c, zipsplit.c (Ed) -15. Add long option support. zipcloak.c (Ed) -16. Set in_path. zipcloak.c, zipnote.c, zipsplit.c (Ed) -17. Use SPLIT_SUPPORT calls. zipcloak.c, zipnote.c, zipsplit.c (Ed) -18. Set current_disk, cd_start_disk, and cd_entries_this_disk for use - by putend() and bytes_this_split for putcentral(). zipsplit.c (Ed) -19. Include ctype.h for toupper(). zipfile.c (Ed) -20. Add readlocal() for utilities to read local header. zipfile.c (Ed) -21. Put Zip64 variables and code in ZIP64_SUPPORT ifdef in scanzipf_regnew(). - zipfile.c (Ed, SMS) -22. Use zip_fzofft() for converting offset. zipfile.c (Ed, SMS) -23. Add casts to many append to memory calls. zipfile.c (Ed) -24. Move handling of .zip split to get_in_split_path() and - get_out_split_path(). zipfile.c (Ed) -25. Handle fix = 3 case for ZipNote that renames entries in zipcopy(). - zipfile.c (Ed) -26. Restore clearing of extended local header bit when not encrypting. When - encrypting need to output extended local header using putextended() in - zipcopy(). zipfile.c (Ed) -27. Add notes on using file time for encrypting. zipup.c (Ed) -28. Remove extended local header bit separately for z->lflg (local flags) - and z->flg (central directory flags). These should be the same but - could be different. zipup.c (Ed) -29. Suppress command line globbing for MINGW. win32/win32.c (Christian) -30. Add EF UT time fix for delete. zip.c (Christian) ----------------------- April 28th 2006 version 3.0f10 ---------------------- - 1. Add note to extended help to escape [ as [[] or use -nw. zip.c (Ed) - 2. Remove local declaration of tempfile as now global. zipnote.c, - zipcloak.c (SMS) - 3. Add zip_fzofft() for outputting uzoff_t bin size c. zipsplit.c (SMS) - 4. Add only_archive_set and clear_archive_bits to do Window archive bit - selection and clearing. Add -AS option to require DOS Archive bit - be set and -AC to clear archive bits of included files. Add - ClearArchiveBit() to clear archive bits after archive created. - Only Win32. globals.c, zip.h, zip.c, win32zip.c, win32.c (Ed) - 5. Change procname_win32() and readd() to check archive bit. - win32/win32zip.c (Ed) - 6. Update copyright. win32/win32zip.h (Ed) - 7. Add mesg_line_started = 0 to stats to remove blank line when clearing - archive bits. zipup.c (Ed) - 8. Add zip_fzofft() to format split size. zipsplit.c (SMS) - 9. Update help for splits and archive bit and add note on escaping [. - zip.c (Ed) -10. Add -M option and bad_open_is_error to exit with error if any input - file unreadable. Also error if -M and would get "name not matched" - warning. zip.c (Ed) -11. Copy Zip 2.32 csharp example, though it is designed for zip32.dll and - not zip32z64.dll from Zip 3.0. Updated note. windll/csharp (Ed) -12. Change -M to -MM and define -mm to avoid accidental use of -m. - zip.c (Ed) -13. Define split_method -1 to not allow splitting, mainly used when reading - a split archive to stop automatic splitting of output with same - split size. Now -s=0 or -s- disables splitting. zip.h, globals.c, - zip.c (Ed) -14. Add fflush() after dots displayed. deflate.c, fileio.c, zipup.c (Ed) -15. Instead of assuming buffer size as 32 KB for dots, use WSIZE for - compressing and SBSZ for storing and calculate as dots are counted. - Now dot_count and dot_size are bytes instead of buffers. Add dots - to Delete and Archive modes. zip.c, zipup.c, deflate.c, fileio.c (Ed) -16. If reading a split archive and split size has not been given, get - size of first split read by zipcopy(), which should be the first - split, and set split size to that, making the output archive the same - split size as the input archive. Delay -sv split size message - if split size is 0 at first but then changed. zipfile.c (Ed) -17. Add proc_archive_name() for new archive mode to process names in old - archive only and skip looking on the file system. Easier than modifying - the various port codes. fileio.c (Ed) -18. Fix cd_start_offset bug. fileio.c (Ed) -19. Create new action ARCHIVE that looks for matches only in old archive - for Copy Mode. If no input paths and there is an output archive, - Copy Mode is assumed even without ARCHIVE. Old default Copy Mode - when no input files updated to work like -U mode and allow filters. - New global copy_only currently only used to control global dots. - zip.c, fileio.c, globals.c, zip.h (Ed) -20. Update help. Change extended help to more help. Update more help - to include internal modes delete and new Archive. Update help for - formatting options. Update help for wildcards. Remove streaming - examples from top basic section. Indent examples. Help for new - --out and Copy Mode. Add warnings that output using data descriptors - may not be compatible with some unzips. Update dots help and add - warning that dot size is approximate. Add help for new DOS archive - bit options. More help for -b and -MM. zip.c (Ed) -21. Add support for Unix FIFO (named pipe). Add set_extra_field() stat - name ending in '/' fix found in Zip 2.32. unix/unix.c (Ed) -22. Add check to not allow setting -U (internal copy) in similar cases to - -d (delete). zip.c (Ed) -23. Add counts for internal modes Delete and Archive. Byte counts for -db - remain uncompressed size for external modes, but internal modes Delete - and Archive now use compressed sizes as these copy that many bytes. - zip.c (Ed) -24. Add check for when ftell() wraps. zipup.c (Ed) -25. Add mesg_line_started = 0 to result percentage message. zipup.c (Ed) -26. Update contact information. unix/packaging/preinstall.in (SMS, Ed) -27. A few Zip64 fixes to set Zip64 correctly and fix disk and offset of - Zip64 End Of Central Directory. zipsplit.c (Ed) -28. Update comments for get_option(). fileio.c (Ed) -29. Update DLL version. windll/windll.rc (SMS, Ed) -30. New option -sf shows files that would be operated on. zip.c (Ed) ----------------------- May 5th 2006 version 3.0f11 ---------------------- - 1. Use C prototypes for Unicode functions. fileio.c (SMS) - 2. Change constant for mask in set_file_type from unsigned to signed. - trees.c (SMS) - 3. Use C prototypes for zip_fzofft() and zip_fuzofft() signed and - unsigned zoff_t formatting functions. util.c (SMS) - 4. Remove U from constants in Adler16 code. util.c, zip.h (SMS) - 5. Add spaces to VMS usage to avoid misinterpretation. zip.c (SMS) - 6. Add OF() to at_signature(). zipfile.c (SMS) - 7. Use zip_zofft() for entries error. zipfile.c (SMS) - 8. Remove U in constants in percent(). zipup.c (SMS) - 9. VMS command line updates. vms/cmdline.c, vms/descrip_deps.mms, - vms/vms_zip.rnh, zip_cli.cld, vms/zip_cli.help (SMS) -10. Update to VMS help. vms/zip_cli.help (Ed) -11. Check for memmove() and strerror(). Remove specific 64-bit support - for SunOS, as large file support now does. unix/configure (SMS) -12. Add emergency replacements for memmove() and strerror(). - unix/unix.c (SMS) -13. Remove old not SPLIT_SUPPORT code. globals.c, zipnote.c, fileio.c, - crypt.h, crypt.c, zipcloak.c, zip.h, zip.c, zipup.c, zipsplit.c, - zipfile.c (Ed) ----------------------- May 12th 2006 version 3.0f12 ---------------------- - 1. Add UNICODE_SUPPORT ifdef around uname in zipup(). zip.c (SMS) - 2. Change size from uzoff_t to zoff_t in zipcopy(). zipfile.c (SMS, Ed) - 3. Fix a bug where filetime() returns -1 for device but not handled in - byte counts. zip.c (Ed) - 4. Add check for UnZip version and exit if not 6.00 or later if - a Zip64 archive. Define popen() and pclose() in Win32 to native - _popen() and _pclose(). ziperr.h, zip.c, win32/osdep.h (Ed) - 5. Add -sb option to ring bell when pause to change disk. Use new - global split_bell. global.c, zip.h, zip.c, fileio.c (Ed) - 6. Enable crc32u() and use for Unicode extra field. fileio.c (Ed) - 7. Add -dv to display volume being written to. zip.c, zip.h, - globals.c (Ed) - 8. Update WhatsNew. WhatsNew (Ed) - 9. Help updates. zip.c (Ed) -10. Create option -X- (negated -X) to keep old extra fields and remove - -XX which is now -X. Make get_extra_field() global. Add - copy_nondup_extra_fields()to copy old extra fields not already - in new extra fields. zipup.c, zip.c, zipfile.c (Ed) -11. Use output name oname for -sf option to show files that would be - worked on. zip.c (Ed) -12. When updating or freshening old entries, read the old local header - with readlocal() to get local flags and extra fields. zip.c (Ed) -13. Add UNICODE_SUPPORT ifdefs around uname code. zip.c (SMS, Ed) -14. If WIN32_OEM set then on WIN32 store OEM name in archive. As read - DOS or WIN32 archives convert assumed OEM paths to ANSI. Remove old - WIN32_OEM code. Make oem_to_local_string() global for WIN32_OEM and - local_to_oem_string() global for WIN32_OEM and UNICODE_SUPPORT. - zip.h, zipfile.c, zipup.c, win32/win32.c, win32/win32zip.c (Ed) -15. Update error 8 to include wrong unzip. ziperr.h (Ed) -16. Change checksum for Unicode extra field to standard crc32 using - C version crc32u(). Add crctab.c. win32/vc6/zipnote.dsp, - win32/vc6/zipsplit.dsp, zipfile.c -17. Update readlocal() to handle multi-disk archives if not UTIL. - zipfile.c (Ed) -18. Convert size to signed zoff_t in zipcopy(). Update note. - zipfile.c (Ed) -19. Update Readme. Readme (Ed) -20. Add crctab.o to zipsplit and zipnote. unix/Makefile (Ed) -21. Proposed update to license. License (Ed) ----------------------- May 20th 2006 version 3.0f13 ---------------------- - 1. Reformat License file. License (Cosmin) - 2. Change %d to %lu for disk number and add cast. zip.c (Cosmin, Ed) - 3. Display Scanning files message after delay at start based on - suggestion from Greg. Currently the time is checked every 100 - entries processed. After 100 entries the start time is saved. - After 5 seconds or 100 entries after that, whichever takes - longer, the Scanning files message is displayed and every 2 seconds - or 100 entries, whichever takes longer, after that a dot is displayed. - fileio.c, zip.c, globals.c, zip.h (Greg, Ed) - 4. Add Unicode mismatch flag and option -UN. Default is now a Unicode - mismatch is an error. -UN=warn outputs warnings and continues, - -UN=ignore disables warnings, and -UN=no ignores the Unicode extra - fields. globals.c, zip.h, zipfile.c (Ed) - 5. Add options for VMS. vms/cmdline.c, vms/zip_cld.cld (SMS) - 6. Add casts to percent(). zipup.c (Ed) - 7. Minor changes to logfile formatting. zip.c (Ed) - 8. Update help. zip.c (Ed) - 9. Add -Z=compression-method option. zip.c (Ed) -10. Add sd: to -sd status messages. zip.c (Ed) -11. Instead of original argv[] use args[] for -sc show command line - to show final command line. zip.c (Ed) -12. Change argv[] to args[] for logfile. zip.c (Ed) -13. Put results of -sf show files in log file if open. zip.c (Ed) -14. Add Johnny's bzip2 patch but not tested. win32/makefile, zip.c, - zip.h, zipup.c (Johnny) -15. Minor tweeks to bzip2 to work with latest beta. zip.c, zipup.c (Ed) -16. Add -sf- to list files that would be included only in log file - and not on stdout as list can be long. Only list totals on stdout. - zip.c (Ed) -17. Create check_unzip_version(). Fix Unix check. Zip still creates - the temporary archive then does the check, and if it fails - the archive is deleted, even if the check fails because of the wrong - verion of UnZip. On Unix only 'unzip' the system version of UnZip - is checked, not './unzip' which would allow putting a local more - up to date version of UnZip in the current directory for the check. - There should be a way to override the system version of UnZip for - the -T test. zip.c (Ed) ----------------------- July 12th 2006 version 3.0f14 ---------------------- - 1. Change crypt version from 2.10 to 2.91 to match Zip 2.32 and avoid - confusion. crypt.h (Cosmin) - 2. Add abbrevmatch() to handle option values that can be abbreviated - like compression method. util.c, zip.h, zip.c (Ed) - 3. Change USE_BZIP2 to BZIP2_SUPPORT as USE_BZIP2 implies it replaces - deflation maybe. zip.c, zip.h, zipup.c (Ed) - 4. Update man page. man/zip.1, zip.txt (Ed) - 5. Add bzip2 to VMS. vms/build_zip.com, vms/bzlib.h, vms/cmdline.c, - vms/descrip.mms, vms/descrip_src.mms, vms/find_bzip2_lib.com, - vms/install_vms.txt, vms/zip_cli.cld (SMS) - 6. Remove zipfile parameter from bzfilecompress(). Add unsigned - cast for EOF in bzip2 code. Add bzip2 version information. - zipup.c, zip.c (SMS) - 7. Add bzip2 to Unix. unix/configure (SMS) - 8. Add and update bzip2 descriptions. INSTALL, README, WhatsNew, - bzip2/install.txt (SMS, Ed) - 9. Add vc6bz2 projects for compiling bzip2 code into zip (not the - best approach perhaps). win32/vc6/readmevc.txt, - win32/vc6bz2/readvcbz.txt, win32/vc6bz2/zip.dsp, win32/vc6bz2/zip.dsw, - win32/vc6bz2/zipcloak.dsp, win32/vc6bz2/zipnote.dsp, - win32/vc6bz2/zipsplit.dsp (Ed) -10. Add support for VC++ 2005 by disabling deprecation. win32/osdep.h - (Cosmin) -11. Update instructions for makefile. unix/Makefile (Ed) -12. Update todo list. todo30.txt (Ed) -13. Reduce #if 0 block to now allow extra data message. zipfile.c (Ed) -14. Add note that readlocal() reads local headers. zipfile.c (Ed) -15. Archive comment was not being read by new scanzipf_regew(). Added. - zipfile.c (Ed) -16. Handle reading and writing OEM comments. zipfile.c (Ed) -17. Update Zip64 data descriptor note. zipfile.c (Ed) -18. Format filetypes() check. zipup.c (Ed) -19. Update note to remember to force deflation for descriptors by - release. zipup.c (Ed) -20. In compression code using libraries, enable dots for noisy also. - zipup.c (Ed) -21. Update extended help to add more of the basic options and - compression method. zip.c (Ed) -22. Add additional lines bz_opt_ver2 and bz_opt_ver3 to bzip2 - version to give credit to bzip2. zip.c (Ed) -23. Add descriptions to version information for USE_EF_UT_TIME, - NTSD_EAS, WILD_STOP_AT_DIR, WIN32_OEM, LARGE_FILE_SUPPORT, - ZIP64_SUPPORT, and UNICODE_SUPPORT similar to how UnZip does. - zip.c (Ed) -24. Add note that crypt is modified in Zip 3. zip.c (Ed) -25. Use abbrevmatch() and update warnings for compression - method selection. zip.c (Ed) -26. Update config to handle either using IZ_BZIP2 to define - the location of the bzip2 files or the bzip2 directory. - unix/configure, zipup.c, zip.c (SMS, Ed) ----------------------- July 14th 2006 version 3.0f15 ---------------------- - 1. Change USE_BZIP2 to BZIP2_SUPPORT in VMS. vms/descrip_src.mms, - vms/build_zip.com (SMS) - 2. Add SYS$DISK:. vms/descrip.mms, vms/build_zip.com (SMS) - 3. Change vms/install.txt to [.vms]install.txt. bzip2/install.txt (SMS) - 4. Change VMS files to lower case. vms/mod_dep.com, vms/install_vms.txt, - vms/zip.opt, vms/hlp_lib_next.com, vms/notes.txt, vms/unixlib_gcc.h, - vms/unixio_gcc.h (SMS) - 5. Remove old VMS files. vms/descrip-old.mms (removed), - vms/link_zip.com (removed), vms/make_zip.com (removed), - vms/makefile.vms (removed) (SMS) ----------------------- July 24th 2006 version 3.0f16 ---------------------- - 1. Fix global dots so can set with dot size. deflate.c, fileio.c (Ed) - 2. Update License top line to refer only to license. License (Cosmin) - 3. Update License. License (Ed) - 4. Implement zero length UTF-8 path length as flag standard path is UTF-8 - and should use that. This allows Zip to use the standard path as - UTF-8 when the local character set is UTF-8. zipfile.c (Ed) - 5. Update WhatsNew. WhatsNew (Ed) - 6. Change case of bzip2/install.txt. INSTALL (Ed) - 7. Change MANUAL.txt to ZIP.txt and update ftp site. README (Ed) - 8. Update announcement. zip30f.ann (Ed) - 9. Now also check if OS has bzip2 library and can use that. - unix/configure, zip.c (Mark Adler, Ed) -10. Add fix from akt@m5.dion.ne.jp in Japan to recurse on doublebyte - characters without processing in recmatch(). This should not be needed - unless the rest of the code in there is broke for Japanese character - sets in some way. Need to test. util.c (Ed) -11. Add note for bzip2. zip.c (Ed) -12. Do not do seek wrap test if ftell() returns -1 as from a pipe. Add - output of last ftell() and current ftell() for zipfile too big seek - error. zipup.c (Ed) -13. Add version to the options table. Remove the check to display version - before the command line is processed. Add to option -v a check to - display the version if that is the only argument. Can still enable - verbose with piping by using zip -v - - format. zip.c (Ed) -14. Add abbrevmatch() for -UN option. zip.c (Ed) ----------------------- August 7th 2006 version 3.0f17 ---------------------- - 1. Change license modifications to retain intent of copyright holders, as - any major change in license conditions would require contacting all - copyright holders. LICENSE (Greg, Ed) - 2. Move debugging statement after zipstdout() where mesg is set to stderr. - Add mesg and fflush() to sd messages where needed so that messages go - to stderr when piping. zip.c (Ed) - 3. Update encryption comment. zipup.c (Ed) - 4. Do not use data descriptors for directories. zipup.c (Mark, Ed) - 5. Update Q & A to match license. README (Ed) - 6. Update WhatsNew. WHATSNEW (Ed) - 7. Add ifndef around version_info() for dll. zip.c (Ed) - 8. Add -TT (--unzip-path) to allow setting the unzip command to use with - -T to test the archive. zip.c (Ed) - 9. Add -DF (--difference-archive) which requires --out and turns off - copying unchanged entries to the new archive creating an archive with - just the changes and additions since the original archive was created. - zip.c, globals.c, zip.h (Ed) -10. Update help. zip.c (Ed) ----------------------- September 7th 2006 version 3.0f18 ---------------------- - 1. Split -t and -tt options and remove limitation that only one can be - used to allow setting a date range. zip.c, WhatsNew (Ed) - 2. Minor changes in comments. zipfile.c (Ed) - 3. Add entries for format of Unicode Path and Unicode Comment extra fields. - proginfo/extrafld.txt (Ed) - 4. Change note at top of infozip.who, but needs to be updated with all new - contributors. proginfo/infozip.who (Ed) - 5. Note Zip 3 and UnZip 6 now support Zip64. proginfo/ziplimit.txt (Ed) - 6. Add note on Unicode. README (Ed) - 7. Update WHATSNEW. WHATSNEW (Ed) - 8. Update help. zip.c (Ed) - 9. Add {} support to -TT option, allowing insertion of temp archive path - into the command string to -TT similar to Unix find does. zip.c (Ed) -10. Start changes for -F fix option. Add checks when reading input archive - and skip bad central directory entries and bad local entries. Currently - -F requires the central directory to be intact (except for bad CD entries - that will be skipped) and local entries and data to be where the - central directory say they are. This allows all recovered entries to - be complete with all central directory information. Calculate CRC of - input entry and compare to CRC from central directory. Allow skipping - split disks the user may not have. Store state of output archive - before each local entry and data are read, allowing seeking back and - restoring state to skip bad entries. fileio.c, global.c, zipfile.c, - zip.h (Ed) -11. Started changes for fixfix. fileio.c (Ed) -12. Update help on -t and -tt. zip.c (Ed) -13. Add note on Unicode support, but may change if add handling of names - with characters not supported in current character set. README (Ed) -14. Combined ToDo30.txt and ToDo but more to be done. TODO (Ed) -15. Update ToDo list. ToDo30.txt (Ed) -16. Add -F and -FF to help. zip.c (Ed) -17. Run fix mode in copy mode, as it is copying from one archive to - another, and use those checks. zip.c (Ed) -18. Add Try -F and Try -FF warnings in places. zipfile.c (Ed) -19. Allow reading version 4.6 (bzip2) archives. zipfile.c (Ed) -20. Add Unicode Path and Unicode Comment extra field descriptions. - proginfo/extrafld.txt (Ed) -21. First attempt at updating the Who file. proginfo/infozip.who (Ed) -22. Add note to top of ziplimit.txt. proginfo/ziplimit.txt (Ed) -23. Add possible fix for paths returned by the Win32 directory scan with - '?' in the name. These are characters in the Unicode name stored on - disk but not represented in the multi-byte character set used by zip - for the scan. In this case, return the short name in 8.3 format so - directory scan can continue. Could put the Unicode name in the Unicode - extra field, but not done. Add warning when long name is replaced - by short name. Not fully tested. win32/win32zip.c, zip.h, zip.c, - fileio.c (Ed) -24. If archive name and -sf are the only parameters, list archive contents. - zip.c (Ed) ----------------------- September 8th 2006 version 3.0f19 ---------------------- - 1. Fix error message. zipfile.c (SMS, Ed) - 2. Put crc32() in ifndef UTIL as only needed for fix. fileio.c (SMS, Ed) ----------------------- November 3rd 2006 version 3.0f20 ----------------------- - 1. Fix comment. vms/vmszip.c (SMS) - 2. Include oem_to_local_string() if UNICODE_SUPPORT. win32/win32.c, - zip.h (Ed) - 3. Modify procname_win32() to flag a path not supported by the local - character set so can get Unicode for it. Check Unicode names. - win32/win32zip.c (Ed) - 4. Add matching of escaped Unicode names to proc_archive_name() that - reads entries from an archive. Add sorted zlist zusort. - globals.c, fileio.c, zip.h, zipfile.c (Ed) - 5. Add support for non-local character set names and paths for WIN32, - getting and storing the UTF-8 path when needed. Use 8.3 name - when normal name has characters not supported in current local - character set. Note when short name used. zip.c, fileio.c (Ed) - 6. Add support for fix = 2 which reads local headers first to - bfcopy(). fileio.c, zip.h (Ed) - 7. Allow selection of .zip split in ask_for_split_read_path() when - reading a split archive that has no end records giving the total - split count. fileio.c (Ed) - 8. Add zoff_t casts to dot counts. fileio.c (Ed) - 9. Comment changes for Unicode. fileio.c (Ed) -10. Call wide_to_local_string() separately in utf8_to_local_string() - to free up temp value. fileio.c (Ed) -11. Support new AppNote bit 11 for forcing UTF-8, but needs finishing. - globals.c (Ed) -12. Add to zlist struct zuname for the escaped version of the UTF-8 - name in uname and add ouname for the display version of zuname. - zip.c, zip.h, zipfile.c (Ed) -13. Add zipmessage_nl() that can output to the screen and to the log - file like zipmessage(), but can write lines without a newline. - zip.c, zip.h, zipcloak.c, zipnote.c, zipsplit.c (Ed) -14. Update help for -FF and Unicode. zip.c (Ed) -15. Change > to >= for byte message check to avoid -0 (negative zero). - zip.c (Ed) -16. Add -su show unicode option which adds escaped unicode paths to - -sf. Also uses show_files = 3. zip.c (Ed) -17. Update comments for -UN and -X. zip.c (Ed) -18. Add support for new AppNote bit 11 that says standard path and - comment have UTF-8 when -UN=f is used. zip.c (Ed) -19. Fix zipfile name message by replacing value with zipfile. - zip.c (Ed) -20. Add new code for -FF, which processes archives by trying to read - the EOCDR to get split count, then starting with the local - entries. This option does not use the standard code but does - everything itself. Add scanzipf_fixnew(), which tries to read - the EOCDR, then the local entries, then the central directory. - zip.c, zipfile.c (Ed) -21. Update note for ZIP64_CENTRAL_DIR_TAIL_SIZE. zipfile.c (Ed) -22. Put read_Unicode_Path_entry() and read_Unicode_Path_local_entry() - into UNICODE_SUPPORT ifdef. zipfile.c (Ed) -23. Add zuqcmp() and zubcmp() to support Unicode sorted list of - paths. zipfile.c (Ed) -24. Update zsearch() to also search unicode paths. zipfile.c (Ed) -25. Split out iname in read_Unicode_Path_entry() for debugging. - Should put it back. Update Unicode mismatch warning. - zipfile.c (Ed) -26. Update Unicode in readlocal(). zipfile.c (Ed) -27. Add more Unicode support to scanzipf_regnew(). zipfile.c (Ed) -28. Add support for fix = 2 to zipcopy(). Add checks and warnings, - but allow scan to continue when can. Use local data to fill - in central directory fields in case no central directory entry - for local entry. zipfile.c (Ed) -29. Add get_win32_utf8path() to get UTF-8 from Windows if can. - zipfile.c (Ed) ----------------------- November 7th 2006 version 3.0f21 ----------------------- - 1. Add crude data descriptor support to -FF in bfcopy() that should be - updated by release. fileio.c (Ed) - 2. Change %d to %s and use zip_fzofft() to format zoff_t byte count. - zipfile.c (SMS, Ed) - 3. Call local_to_oem_string() for only WIN32 in zipcopy(). zipfile.c - (SMS, Ed) ----------------------- November 29th 2006 version 3.0f22 ----------------------- - 1. Change ' to " in extended help. zip.c (Ed) - 2. Change -dv disk number display to indisk>outdisk. zip.c (Ed) - 3. Finish -FF fix option. Move detailed output to require -v. zip.c (Ed) - 4. Add note to help to use -v with -FF to see details. zip.c (Ed) - 5. Add -sU option to view only Unicode names when exist. zip.c (Ed) - 6. Change default dot size in verbose from every buffer to 10 MB. zip.c (Ed) - 7. Exit if --out and in path same as out path. zip.c (Ed) - 8. Remove verbose information when fixing archive. zip.c (Ed) - 9. Initialize in disk to 0, but still problem with disk number of first entry - for each disk lagging by 1. zip.c (Ed) -10. Consistently use ZE error codes for exit from ask_for_split_read_path. - zipfile.c, zip.c (Ed) -11. Seek back when fix finds bad entries. Also skip last entry of split - if next split is missing. Should check if entry completed. zip.c (Ed) -12. Add messages to -sd for writing the central directory, replacing the old - zip file, and setting file type. zip.c (Ed) -13. Don't set file type on stdout. zip.c (Ed) -14. Increase errbuf from FNMAX + 81 to FNMAX + 4081. zip.h (Ed) -15. Add skip_this_disk, des_good, des_crc, des_csize, and des_usize globals - for -FF and reading data descriptors. Change note on display_volume. - Add global skip_current_disk. zip.h, globals.c (Ed) -16. BFWRITE_HEADER define now also does data descriptor. zip.h (Ed) -17. Skip zipoddities() if fix. Maybe can later add back. zipfile.c (Ed) -18. Update fix messages. zipfile.c (Ed) -19. Allow user to end archive early using ZE_EOF. zipfile.c, fileio.c (Ed) -20. Only show split numbers and offsets for -FF if verbose. zipfile.c (Ed) -21. Handle spanning signature at top of split archive. zipfile.c (Ed) -22. Only close in_file if open. zipfile.c (Ed) -23. Add note if no .zip and only splits suggest use -FF. zipfile.c (Ed) -24. In putlocal() and putcentral() only convert to OEM if z->vem == 20. - zipfile.c (Ed) -25. Do not OEM convert archive comment as PKWare says this should - be ASCII. zipfile.c (Ed) -26. Fix swap of siz and len and LOCSIZ and LOCLEN. zipfile.c (Ed) -27. Call read_Unicode_Path_local_entry() before OEM conversion so Unicode - checksum checks iname before conversion. zipfile.c (Ed) -28. Only check if local and central crc match if not stream entry. - zipfile.c (Ed) -29. Keep data descriptors if fix == 2, but need to look at this. - zipfile.c (Ed) -30. Fix bug adding up header bytes in n by adding 4 for signature. - zipfile.c (Ed) -31. If fix == 2 use local crc for central, otherwise use central crc - for local. zipfile.c (Ed) -32. In zipcopy(), check data descriptor and skip if not correct one. - zipfile.c (Ed) -33. Add SH, LG, and LLG macros from zipfile.c to allow reading the data in - the data descriptor. fileio.c (Ed) -34. In bfcopy(), read and check the data descriptor if n == -2. If - run out of bytes before find descriptor, return error. fileio.c (Ed) -35. In ask_for_split_read_path(), increase buf to SPLIT_MAX_PATH + 100, - fix bug by adding "- 1", set split_dir = "" if current directory, - and update prompts to add skip and end choices. Add skip and end - choices. fileio.c (Ed) -36. Increase buffer for fgets to SPLIT_MAXPATH. fileio.c (Ed) -37. Update WhatsNew. WhatsNew (Ed) ----------------------- December 10th 2006 version 3.0f23 ----------------------- - 1. Handle additional ODS5 issues by upper casing many symbols and file names. - vms/build_zip.com, vms/collect_deps.com, vms/descrip.mms, - vms/descrip_mkdeps.mms, vms/descrip_src.mms, vms/find_bzip2_lib.com (SMS) - 2. Update VMS Find Help Library code. vms/hlp_lib_next.com (SMS) - 3. Instead of tempname use temp_name as parameter to avoid function - tempname(). zipsplit.c, zipnote.c, zipcloak.c, zip.c (Ed) - 4. If fixing archive with -FF and no EOCDR to get disk count, see if top of - archive has spanning signature or local header and guess if it is - single-disk archive, then ask user to confirm. zipfile.c (Ed) - 5. For Unix where NO_MKSTEMP is not defined, replace mktemp() with mkstemp() - that avoids a race condition. zip.c, zipcloak.c, zipnote.c, fileio.c (Ed) - 6. Eliminate mkstemp() warning by using mkstemp() instead of mktemp() for - Unix. Only for UNIX and if NO_MKSTEMP is not defined. Many OS do not - have mkstemp(). zipcloak.c, zipnote.c, zip.c, fileio.c (Ed) - 7. If UNICODE_SUPPORT and UNIX then try to switch to UTF-8 locale to allow - displaying of Unicode, otherwise just get escapes. This results in some - characters displaying as whitespace if needed fonts, such as East Asian, - are not installed. zip.c (Ed) - 8. If new global unicode_escape_all is set, then escape all non-ASCII - characters when converting Unicode file path. This allows viewing paths - as escapes on Unix that would otherwise be white space. If not set, any - characters that map to the current locale are returned as is. Can only - display if either supported as base by the OS or fonts installed. Set - using -UN=escape option. zip.c, fileio.c, zip.h, globals.c (Ed) - 9. Update extended help for Unicode. zip.c (Ed) -10. All variables used by Win32 in global.c should now be initialized at - start so dll is initialized each call. zip.c (Ed) ----------------------- January 1st 2007 version 3.0f24 ----------------------- - 1. Fix a problem when building with (old, obsolete) IM attribute encoding - combined with bzip2 support. vms/descrip_src.mms (SMS) - 2. Update WHATSNEW. WhatsNew (Ed) - 3. Update README. ReadMe (Ed) - 4. Remove in_crc code. Too involved to implement but may look at later. - fileio.c, globals.c, zip.c (Ed) - 5. Use 0x50 and 0x4b for 'P' and 'K' in signatures to handle EBCDIC case. - zipfile.c, fileio.c (Ed) - 6. Implement new -FS file sync option that deletes entries missing on the - file system from an archive being updated. globals.c, zip.c (?, Ed) - 7. Update help. zip.h, zip.c (Ed) - 8. Include scanning files dots when update small but new file scan long. - zip.c (Ed) - 9. Ask if single-file archive when using -FF and can't tell. zipfile.c (Ed) -10. Display message when entry would be truncated. zipfile.c (Ed) -11. Check for VMS_IM_EXTRA. Update bzip2 support for VMS. Change - destination directory if large-file enabled. vms/build_zip.com, - vms/descrip_src.mms (SMS) -12. Change parameters for VMS bzip2 search. vms/find_bzip2_lib.com (SMS) ----------------------- January 12th 2007 version 3.0f25 ----------------------- - 1. Incorporate faster crc32.c including the Rodney Brown changes (originally - implemented in the zlib project) from UnZip, which includes the - IZ_CRC_BE_OPTIMIZ and IZ_CRC_LE_OPTIMIZ optimizations when those symbols - are defined. These modifications include: - - enlarge unrolling of loops to do 16 bytes per turn - - use offsets to access each item - - add support for "unfolded tables" optimization variant - crc32.c (Christian) - 2. As the crc32.c module now includes crc table generation, remove crctab.c. - crctab.c (remove) (Christian) - 3. Update crc i386 assembler code from UnZip (details see above). - win32/crc_lcc.asm, win32/crc_i386.asm, win32/crc_i386.c, crc_i386.S - (Christian) - 4. Guard against redefinition of symbols @CodeSize and @DataSize in memory - model setup section to work around Open Watcom (version 1.6) wasm - assembler problem. msdos/crc_i86.asm (Christian) - 5. Change type of keys[] array for new crc, add IZ_CRC_BE_OPTIMIZ, and - use new crypt crc table. Use header buffer instead of buf for header. - crypt.c, crypt.h (Christian) - 6. Update version and remove crc table. crypt.h (Christian) - 7. Add crc32.h, change sprintf() format for disk number from d to lu as - can go over 16-bit, remove crc32u(). fileio.c (Christian) - 8. Update to use new crc. msdos/makefile.bor, msdos/makefile.dj1, - msdos/makefile.dj2, msdos/makefile.emx, msdos/makefile.msc, - msdos/makefile.tc, msdos/makefile.wat, unix/Makefile, - vms/build_zip.com, vms/descrip_deps.mms, vms/descrip_src.mms, - vms/osdep.h, win32/makefile.bor, win32/makefile.dj, win32/makefile.emx, - win32/makefile.gcc, win32/makefile.ibm, win32/makefile.lcc, - win32/makefile.w10, win32/makefile.w32, win32/makefile.wat, - win32/makenoas.w32, win32/vc6/zip.dsp, - win32/vc6/zipcloak.dsp, win32/vc6/zipnote.dsp, win32/vc6/zipsplit.dsp, - win32/vc6bz2/zip.dsp, win32/vc6bz2/zipcloak.dsp, win32/vc6bz2/zipnote.dsp, - win32/vc6bz2/zipsplit.dsp, windll/visualc/dll/zip32.dsp, - windll/visualc/dll/zip32.mak, windll/visualc/lib/zip32.dsp, - win32/visualc/lib/zip32.mak (Christian) - 9. Include crc32.h. Make variable uname local in proc_archive_name(). - Remove unused num and new_base_path. Change %02d to %02l2 for - disk number in print format. Remove crc32u() as now use crc32(). - Add parentheses around conditions in loops. Use 0 instead of NULL - for zwchar. fileio.c (Christian) -10. Add z_uint4 defines from crypt.c to tailor.h. Move uch, ush, and ulg - typedefs before tailor.h include which needs them. tailor.h, zip.h (SMS) -11. Include crc32.h. change add_name() to return not int but long - since number of command line arguments can exceed 16 bits. Cast - variable option to (int) for subtraction. Change 0x400 to 0x400L. - Add braces to show_files print block. zip.c (Christian) -12. Add warning if use -F or -FF without --out. Change defined(NO_MKSTEMP) - to !defined(NO_MKSTEMP). zip.c (Ed) -13. Define EC64LOC and EC64REC for size of Zip64 EOCD Locator and Zip64 - EOCD Record. Add extern for crc_32_tab. Move crc32() to crc32.h. - zip.h (Christian) -14. Add crc.h. zipcloak.c (Christian) -15. Include crc32.h. Comment out scanzipf_reg() and scanzipf_fix() as - no longer used, which are left in for now for comparison. Cast - blocksize to extent for malloc(). Instead of 0x10000 malloc 0xFFFF for - extra field block so fits in 16 bits. Instead of crc32u() use crc32(). - Only do lflg != flg check for fix == 2. Add comments to various #endif. - Indent comment. Comment out copy_sig() which is not used. Reduce size - of SCAN_BUFSIZE to EC64REC for MEMORY16. Use ENDHEAD for EOCDR size. - Change %u to %lu in print formats for disk count. Use EC64LOC for size - of Zip64 EOCD Locator. Use EC64REC for size of Zip64 EOCD Record. - Add streaming and was_zip64 to ZIP64_SUPPORT. Remove lflg != flg check - in zipcopy(). zipfile.c (Christian) -16. Add note that z-flg & ~0xf check will fail if new bit 12 for UTF-8 paths - and comments is set. Update -FF warning. zipfile.c (Ed) -17. Include crc32.h. Modify tempzn update. Fix comment. Set - z->lflg = z->flg after deflate as deflate may have set bits in z->flg - [Ed, Christian]. Include BZIP2_SUPPORT block in !UTIL block. zipup.c - (Christian) -18. Changes to use crc32.c. acorn/gmakefile, acorn/makefile, amiga/lmkfile, - amiga/makefile.azt, amiga/smakefile, aosvs/make.cli, atari/makefile, - atheos/makefile, beos/makefile, cmsmvs/cczip.exec, cmsmvs/mvs.mki, - cmsmvs/zip.makefile, cmsmvs/zipmvsc.job, cmsmvs/zipvmc.exec, - human68k/makefile, human68k/makefile.gcc, novell/makefile, novell/zip.lnk, - os2/makefile.os2, qdos/makefile.qdos, qdos/makefile.qlzip, tandem/history, - tandem/macros, tandem/tandem.h, theos/makefile, tops20/make.mic, - unix/configure, unix/makefile, win32/makefile.a64 (Christian) -19. Add note to use BZ_NO_STDIO. bzip2/install.txt (Ed) -20. Remove crctab. cmsmvs/zipvmc.exec (Ed) -21. Update comment. macos/source/pathname.c (Christian) -22. Start of manual update. Zip.1 (Ed) -23. Changes to use crc32.c. vms/descrip.mms, vms/descrip_deps.mms, - vms/descrip_mkdeps.mms, vms/descrip_src.mms, vms/vms.c (SMS) ----------------------- January 17th 2007 version 3.0f26 ----------------------- - 1. Add note for UnZip. crypt.c (Christian) - 2. Change current_disk and disk_number from int to ulg. Change num from int - to unsigned int. [Even though a 16-bit system likely won't see more than - 64k disks, it probably should be ulg - Ed] Remove unused mbsize. Change - match from long to int as the number of possible options should always fit - in that. fileio.c, globals.c (Christian) - 3. Use -Gt to force some data into separate data segments so all data fits. - msdos/makefile.msc (Christian) - 4. Move some copyright constants to far to save near space. - revision.h (Christian) - 5. Change u for character from int to unsigned int. util.c (Christian) - 6. Move include of crc32.h from vms/vms.c to vms/vms_pk.c. vms/vms.c, - vms/vms_pk.c (Christian) - 7. Update crci386_.o. win32/makefile.gcc (Christian) - 8. Use NOASM=1 to disable assembler and clear variables when do not. - win32/makefile.w32 (Christian) - 9. Remove unused totalslashes and returnslashes from get_win32_utf8path(). - win32/win32zip.c (Christian) -10. Remove local versions of tempzip and tempzf. - zip.c (Christian) -11. Make options[] far. Change cd_start_disk from int to ulg. Cast -1 to - (ulg) for cd_start_disk. Put here = zftello() in DEBUG defines. - zip.h, zip.c (Christian) -12. Change length of zipfile comment parameter from ush to extent. Change - disk numbers from int to ulg in close_split(), ask_for_split_read_path(), - ask_for_split_write_path(), get_in_split_path(), find_in_split_path(), - get_out_split_path(). Add Far to longopt and name strings in - option_struct. zip.h (Christian) -13. Add far to options[]. zipcloak.c (Christian, Ed) -14. Define write_string_to_mem() only for UNICODE_SUPPORT. Change ulg to - extent for append to mem memory offset and blocksize parameters. Make - at_signature() local. Cast usValue to char. Remove unused oname in - read_Unicode_Path_local_entry(). Remove local definitions of zip64_entry - as Zip is always processing one entry at a time and this is a global - flag for the current entry. Make find_next_signature() and - find_signature() local. Add ZCONST to signature parameter. Make - is_signature() and at_signature() local. Change m, result of fread(), - from int to extent. Reduce SCAN_BUFSIZE from 0x40000 to the size of the - largest header being read. As find_next_signature() is used to scan for - the next signature and that reads a byte at a time, the scan buf is only - used to read in the found headers. Since we skip the extra parts of the - Zip64 EOCDR, all headers are a fixed size. Remove unused variables from - scanzipf_fixnew(). Use ENDCOM for end comment offset. Instead of 64 KB - seek back 128 KB to find EOCDR. Use ENDOFF and ENDTOT for offsets in - EOCDR. Remove tabs. Merge versions of putend(). Update Amiga SFX. - Remove unused offset in zipcopy(). Make size local in zipcopy(). - zipfile.c (Christian) -15. Update putend() comment. zipfile.c (Ed) -16. Add far to options[]. zipnote.c, zipsplit.c (Christian) -17. Add NO_ASM versions of Win32 zipnote, zipsplit, and zipcloak projects. - Add crc32.h and crc32.c to zipsplit and zipnote projects. - win32/vc6/zipsplit.dsp, win32/vc6/zipnote.dsp, win32/vc6/zipcloak.dsp (Ed) -18. Add NO_ASM versions of Win32 bzip2 zipnote, zipsplit, and Zipcloak - projects. Add crc32.h and crc32.c. win32/vc6bz2/zipsplit.dsp, - win32/vc6bz2/zipnote.dsp, win32/vc6bz2/zipcloak.dsp (Ed) -19. Update Win32 dll and lib projects and make files. - windll/visualc/lib/zip32.dsp, windll/visualc/lib/zip32.mak, - windll/visualc/dll/zip32.dsp, windll/visualc/dll/zip32.mak (Ed) -20. Remove space in front of #ifdef and other conditionals that slipped in. - zipfile.c, zipup.c (SMS) -21. Updates for bzip2. vms/bzlib.h, vms/install_vms.txt (SMS) -22. Updates. vms/notes.txt (SMS) -23. Update copyrights. crc32.c, deflate.c, globals.c, revision.h, ziperr.h, - trees.c, win32/nt.c, win32/win32.c, win32/win32i64.c, win32/win32zip.h, - win32/zipup.h (Ed) -24. Update WhatsNew. WHATSNEW (Ed) ----------------------- February 4th 2007 version 3.0f27 ----------------------- - 1. Fix array sizes and loop lengths in wide_to_escape_string(). fileio.c - (Johnny, Ed) - 2. Fix escape_string_to_wide() to handle hex strings, then comment out as - not used. zip.h, fileio.c (Ed) - 3. Use ZIPERRORS() macro instead of ziperrors[] array. zip.c, zipcloak.c, - zipnote.c, zipsplit.c (SMS) - 4. Add VMS-compatible "severity" values, add new ZE_SEV_PERR define to - set when perror() needs to be called, add ZIPERRORS() macro, change - PERR() to use ZE_SEV_PERR, change ziperrors[] to new structure array - to hold error strings, add new VMS facility names and severity codes - assigned by HP to ziperrors[] array, and add new official - VMS_MSG_IDENT. ziperr.h (SMS) - 5. Change ZE_SEV defines to ZE_S to save space and reformat ziperrors[]. - ziperr.h (Ed) - 6. Update install.txt to include generic Unix case. bzip2/install.txt (Ed) - 7. Add creation of message file and add NOMSG message. vms/build_zip.com, - vms/descrip.mms, vms/install_vms.txt (SMS) - 8. Update notes.txt to add changes to program exit status values and changes - to messages. vms/notes.txt (SMS) - 9. Include crc32.h, include ssdef.h, instead of FAB_OR_NAM use FAB_OR_NAML, - add status code summary note detailing old versus new error codes, and if - CTL_FAC_IZ_ZIP is 0x7FFF and OLD_STATUS is defined use old VMS error codes. - vms/vms.c (SMS) -10. Change FAB_OR_NAM to FAB_OR_NAML and remove NAME_DNA, NAME_DNS, NAME_FNA, - and NAME_FNS. vms/vms.h (SMS) -11. Change FAB_OR_NAM to FAB_OR_NAML. vms/vms_im.c, vms/vms_pk.c, - vms/vmszip.c (SMS) -12. Fix compile warning on VC 2005. win32/makefile.w32 (Johnny) -13. Update readmevb.txt and readvb64.txt. windll/vb/readmevb.txt, - windll/vbz64/readvb64.txt (Ed) -14. Change tch from int to ulg in utf8_from_ucs4_char(). Move comments to keep - line lengths to 80 characters. fileio.c (Christian) -15. Update comment for total_cd_entries. global.c, zip.c, zip.h (Christian) -16. Comment out unused Adler-16 code. util.c, zip.h (Christian) -17. Add InterlockedExchangePointer() macro if not defined. Update Initialize() - to use macro. nt.c (Christian) -18. Move zip64 eocd disk and offset variables next to input archive variables. - zip.c (Ed) -19. Remove zipbegset from scanzipf_fixnew() as offsets are ignored when this - is fixing archives. Add comment to cd_total_entries. Remove local - cd_start_disk and cd_start_offset as these are already global. Use - ZIP_UWORD16_MAX when disk number exceeds this to flag use of Zip64. - zipfile.c (Christian) -20. Some comment changes. zipfile.c (Ed) -21. Fix indentation in places. zipsplit.c (Christian) -22. Remove unused variable zfile. zipup.c (Christian) -23. Update manual. zip.1, zip.txt, zipsplit.txt (Ed) ----------------------- February 22nd 2007 version 3.0f28 ---------------------- - 1. Update notes. vms/notes.txt (SMS) - 2. Add stream_lf.fdl to specify carriage control. vms/stream_lf.fdl (SMS) - 3. Update License to also refer to www.info-zip.org and to hopefully provide - an example of misrepresentative use. LICENSE (Ed) - 4. Update Readme. README (Ed) - 5. Update WhatsNew. WHATSNEW (Ed) - 6. Change output archive cd_start_disk and cd_start_offset to input archive - local in_cd_start_disk and in_cd_start_offset in scanzipf_fixnew() and - scanzipf_regnew() to avoid mixing in and out. zipfile.c (Ed) - 7. Update copyright. Remove crc32.h include. vms/vms.c (Christian) - 8. Changes for new crc32. Remove CRC32. Add CRCA_0 and CRCAUO. Add - compiling of crc_i386.S. win32/makefile.emx. (Christian) - 9. Add handlers for better RSXNT and Windows OEM conversions. Add detailed - comments on conversions. win32/osdef.h (Christian) -10. Define CP_UTF8. win32/rsxntwin.h (Christian) -11. Define WIN32_LEAN_AND_MEAN to reduce size of Windows includes. - win32/win32.c, win32/win32zip.c, zip.c (Christian) -12. Use only standard FAT attributes if OEM. win32/win32zip.c (Christian) -13. Add use of INTERN_TO_OEM() and related OEM changes. Add console comment. - zip.c (Christian) -14. Change severity from char to int. Update macros. ziperror.h. (Christian) -15. Update Visual Basic project to clarify some of the code. - windll/vbz64/vbzip.vbp, windll/vbz64/vbzipbas.bas, - windll/vbz64/vbzipfrm.frm (Ed) -16. Update copyright. api.c (Ed) -17. Update format for duplicate entry warning. fileio.c (Ed) -18. Instead of ifdef __RSXNT__ use ifdef WIN32. Define WIN32_LEAN_AND_MEAN. - Use WIN32_CRT_OEM. Change OEM check from vem == 20 to vem & 0xff00 == 0 - and instead of local_to_oem_string() use _INTERN_OEM(). Remove unused - first_CD in scanzipf_fixnew(). Instead of oem_to_local_string() use - Ext_ASCII_TO_Native(). Instead of local_to_oem_string() use - INTERN_TO_OEM(). zipfile.c (Christian) -19. Replace escape from zipsplit man page with '. zipsplit.txt (Christian) -20. Instead of using 20 every time, account for dosify when setting vem. - Update FAT comment. zipup.c (Christian) ------------------------- March 3rd 2007 version 3.0f29 ------------------------- - 1. Remove crctab.c. vms/build_zip.com (SMS) - 2. Add LFLAGS_ARCH. vms/descrip.mms (SMS) - 3. Remove redundant includes descrip.h, rms.h, and atrdef.h. - vms/vmsmunch.c (SMS) - 4. Remove includes descrip.h and rms.h. vms/vmszip.c (SMS) - 5. Only define NO_UNISTD_H if __VAX defined or __CRTL_VER is - less than 70301000, allowing support of the new symbolic - links in VMS. Also use unlink instead of delete if version - above 70000000. vms/osdep.h (SMS) - 6. Formatting changes. vms/notes.txt, vms/install_vms.txt (Christian) - 7. Remove spaces before tabs. win32/makefile.emx (Christian) - 8. Formatting change. win32/osdep.h (Christian) - 9. If -y on VMS open the link not the target file. vms/vms_im.c (SMS) -10. If -y on VMS search for the link, not the target file. vms/vms_pk.c (SMS) -11. Change default for Unicode path mismatch from error to warning, so - processing will continue. zip.c, globals.c (Ed) ------------------------- March 12th 2007 version 3.0f30 ------------------------ - 1. Add bzip2 support for the reduced no stdio bzip2 library for VMS and Unix. - Use libbz2_ns_.olb for VMS bzip2 library which is compiled from the VMS - version of bzip2 with the BZ_NO_STDIO flag set. This flag removes most - standard bzip2 stdio support and enables using a callback routine for - errors. zbz2err.c, unix/Makefile, vms/build_zip.com, vms/descrip.mms, - vms/descrip_deps.mms, vms/descrip_src.mms (SMS) - 2. Add zbz2err.c to Win32 vc6bz2 project for support of BZ_NO_STDIO for bzip2. - Modify zbz2err.c to handle different ports. zbz2err.c (Ed) - 3. Update license. zip.h (Ed) - 4. Update copyright. zip.c, zipfile.c, zipup.c, zbz2err.c, revision.h (Ed) - 5. Fix bug where directories got set to ver 4.6 in local headers instead of - ver 1.0 when using bzip2. zipfile.c, zipup.c (Ed) - 6. Minor updates to INSTALL. INSTALL (Ed) - 7. Minor updates to README. README (Ed) - 8. Add BZ_NO_STDIO to vc6bz2 projects. Error routine seems to work. - win32/vc6bz2 (Ed) - 9. Set bit FAB$M_BIO (.fab$v_bio) in the FAB when using sys$open() on a - symlink. vms/vms_im.c (SMS) -10. Change sys$disk to SYS$DISK. vms/build_zip.com (SMS) -11. Update extended help. zip.c (Ed) -12. Update bzip2 install. bzip2/install.txt (Ed) ------------------------- March 19th 2007 version 3.0f31 ------------------------ - 1. Define bz2_olb as LIBBZ2_NS.OLB. Change LIBBZ2.OLB to bz2_olb. Use - ZZBZ2ERR.C error callback for bzip2. vms/build_zip.com (SMS) - 2. Change NO_SYMLINK to NO_SYMLINKS to be consistent with UnZip. tailor.h, - acorn/osdep.h, macos/osdep.h, tops20/osdep.h, vms/osdep.h (SMS) - 3. Minor note changes. Add section on Symbolic Links. vms/notes.txt (SMS) - 4. Update copyright. globals.c (Ed) - 5. Update License with official copy. LICENSE (Greg, Ed) - 6. Update Readme. README (Ed) - 7. Add support for NO_BZIP2_SUPPORT. tailor.h (Ed) - 8. Add common compiler flags to Install. INSTALL (Ed) - 9. Remove SPLIT_FILE define. zip.c (Ed) -10. Minor updates to extended help. zip.c (Ed) -11. Modify Makefile to also build bzip2 library if found. Split $MAKE - ("make -f unix/Makefile") into $MAKE and $MAKEF, leaving $MAKE as defined by - Make and defining $MAKEF to "-f unix/Makefile". Add clean_bzip2 target. - unix/Makefile (SMS) -12. Modify configure to handle compiling bzip2. unix/configure (SMS) -13. Remove linking bzip2 with utilities. Other changes. unix/Makefile (Ed) -14. Change bzip2 wrong library errors to warnings. Put back OS bzip2 library - check. Only compile bzip2 if in bzip2 directory. unix/configure (Ed) -15. More modifications to Makefile and configure to only allow compiling in - the bzip2 directory. unix/Makefile, unix/configure (Ed) ------------------------- March 27th 2007 version 3.0f32 ------------------------ - 1. Modify configure and Makefile to only allow compiling bzip2 in the Zip bzip2 - source directory. unix/Makefile, unix/configure (SMS, Ed) - 2. Update bzip2 installation instructions. bzip2/install.txt (SMS, Ed) - 3. Remove need for BZIP2_USEBZIP2DIR define by using an appropiate include dir - specification (-I ../../bzip2) when needed. zip.c, win32/vc6bz2/zip.dsp, - unix/configure (SMS, Ed, Christian) - 4. Update VC6 readme. win32/readmeVC.txt (Christian, Ed) - 5. Add crc32.h to VC projects. Add assembler group to zipcloak, zipnote, and - zipsplit projects. Add BZ_NO_STDIO to all configurations with bzip2 so - reduced bzip2 code is used. win32/vc6/zip.dsp, win32/vc6/zipcloak.dsp, - win32/vc6/zipnote.dsp, win32/vc6/zipsplit.dsp (Christian) - 6. Update VC6bz2 readme. win32/readVCBZ.txt (Christian, Ed) - 7. Modify bzip2 VC6 workspace to use standard zipcloak, zipnote, and zipsplit - projects as they don't need bzip2. win32/vc6bz2/zip.dsw (Christian) - 8. Fix zlib flag problem by properly setting and clearing deflInit flag to - initialize and release resources. zipup.c (Bill Brinzer, Christian) - 9. Update copyright. crypt.h, api.c, tailor.h, fileio.c, ziperr.h, - zipsplit.c, zipnote.c, zipcloak.c, util.c (Ed) ------------------------- April 25th 2007 version 3.0f33 ------------------------ - 1. Fix -dd display_dots option for VMS. Fix adding value for -ds to command - line. Fix /NAMES = AS_IS for older header files. cmdline.c (SMS) - 2. Add Win32 wide scan support. In fileio.c add Win32 wide functions lastw(), - msnamew(), newnamew(), wchar_to_wide_string(), is_ascii_stringw(), - wchar_to_local_string(), and wchar_to_utf8_string(). In globals.c - add no_win32_wide that is true if the wide versions of calls like - GetFileAttributesW() do not work as on Win9x without the Unicode kit. - In tailor.h define zwstat for stats that use wchar_t strings and - defines SSTATW and LSSTATW. In util.c add isshexpw() and recmatchw() - and dosmatchw() for matching using wchar_t strings. In win32.c add - FSusesLocalTimeW(), IsFileSystemOldFATW(), GetFileModeW(), GetLongPathEAW(), - and zstat_zipwin32w(). In win32zip.c add zdirscanw structure, - GetDirAttribsW(), zDIRSCANW, readdw(), wild_recursew(), procname_win32w(), - OpenDirScanW(), GetNextDirEntryW(), CloseDirScanW(), procnamew(), - local_to_wchar_string(), wchar_to_utf8_string(), in wild() code to - check if W versions are supported and send zip down byte or wide path, - ex2inw(), in2exw(), and filetimew(). In zipup.h define zwopen to use - wide paths. In zipup.c if supported use filetimew() and zwopen(). - In zip.h add namew, inamew, and znamew to zlist and flist. In zip.c - remove duplicate initialization of use_wide_to_mb_default, force_zip64, - zip64_entry, and zip64_archive. Use filetimew() if UNICODE_SUPPORT and - using wide paths for directory scan. Remove old 8.3 path Unicode fix as - now use wide paths and get all where the 8.3 kluge missed paths where - characters in path needed multiple code pages. Changes to bit 11 Unicode - but still not ready. fileio.c, globals.c, tailor.h, util.c, zipup.h, - win32/win32.c, win32/win32zip.c, win32/win32.h, zipup.c, zip.c (Ed) - 3. Update copyright. Don't define UNICODE_SUPPORT if already defined. - Define MATCHW and zstat_zipwin32w(). win32/osdep.h (Ed) ------------------------- April 29th 2007 version 3.0f34 ------------------------ - 1. Add temporary option -sC to test Unicode file creation enabled with - UNICODE_TEST define. zip.c, fileio.c (Ed) - 2. On Unix display control characters as ^X as UnZip. (SMS) fileio.c - 3. Update extended help. zip.c (Ed) - 4. Fix bugs in Unicode changes. zip.c, fileio.c (SMS, Ed) - 5. Add NAMES AS_IS support. Handle root dir [000000]. zip.h, - vms/install_vms.txt, vms/vmszip.c, vms/vmsmunch.c (SMS) - 6. Add global zipfile_exists to handle missing zipfile errors better. zip.h, - globals.c, zip.c (Ed) - 7. Add functions utf8_to_escape_string(), wide_to_escape_string(), - local_to_escape_string(), utf8_to_wchar_string(), and - rename wide_to_escape_string() to wide_char_to_escape_string(). fileio.c, - win32/win32zip.c, zip.h (Ed) - 9. Free f->inamew in fexpel(). Use zuname for matching. fileio.c (Ed) -10. Fix memory bug by setting z->namew, z->inamew, and z->znamew to NULL. - Set f->namew, f->inamew, and f->znamew to NULL for new file in newname(). - Free wide_string in local_to_utf8(). Other Unicode fixes. Add namew, - inamew, and znamew to freeup(). fileio.c, win32/win32zip.c, zip.h (Ed) -11. Move wchar functions only used by Windows to win32zip.c. fileio.c, - zip.h (Ed) -12. Fix spelling in manual. zip.1 (SMS, Ed) -13. Add zuebcmp() for Unicode. zipfile.c -14. Open files to read using wide name as input path. zipup.c (Ed) -15. Update help. zip.c (Ed) -16. Change -TT long option from --unzip-path to --unzip-command. zip.c (Ed) -17. Update Manual to include section on Unicode, add -TT option, make some - changes to Unicode in other sections, update copyright at bottom, and - some small changes to wording and examples. man/zip.1, zip.txt (Ed) -18. Put #ifdef WIN32 around WIN32 blocks. zipfile.c (Ed) -------------------------- May 14th 2007 version 3.0f35 ------------------------- - 1. Update VMS to include new options. vms/cmdline.c, vms/zip_cli.cld (SMS) - 2. Update VMS help. vms/vms_zip.rnh (SMS) - 3. Minor updates to VMS help. vms/vms_zip.rnh (Ed) - 4. Create global filter_match_case that defaults to 1 (case-sensitive). zip.c - zip.h, globals.c (Ed) - 5. Add option -fc to fold case for case-insensitive matching in filter(). - Currently enabled only for WIN32. zip.c, win32/osdep.h (Ed) - 6. Change (action == DELETE || action == FRESHEN) to filter_match_case in - PROCNAME() define. I just couldn't figure out what was going on here and - why the case flag was controlled by this. zip.c (Ed) - 7. Update WhatsNew. WHATSNEW (Ed) -------------------------- May 17th 2007 version 3.0f36 ------------------------- - 1. Touch date on generated file. vms/ZIP_MSG.MSG (SMS, Ed) - 2. Update Betas readme to include Release Candidates. Betas_Readme.txt (Ed) - 3. Update Zip 3.0f announcement. zip30f.ann (Ed) - 4. Minor updates to VMS help. vms/cvthelp.tpu, vms/vms_zip.rnh (SMS) - 5. Major changes to VMS CLI help. vms/zip_cli.help (SMS, Ed) - 6. Update license. revision.h (Ed) -------------------------- May 21st 2007 version 3.0f37 ------------------------- - 1. Rename -fc (fold case) to -ic (ignore case) which may be more intuitive. - zip.c (Ed) - 2. VMS CLI updates for new options. vms/cmdline.c, vms/vms_zip.rnh, - vms/zip_cli.cld, vms/zip_cli.help (SMS) - 3. Updates to support Watcom C, mingw, djgppv2 and msc-16-bit, including - supporting wide stat and compare calls and work-around for problem with - "no symlink support" detection. tailor.h, util.c, zip.c, win32/osdep.h, - win32/win32.c, win32/win32/zipup.h (Christian) -------------------------- May 29th 2007 version 3.0f38 ------------------------- - 1. Update description. file_id.diz (Ed) - 2. Handle better when not splitting and run out of disk space. Also, for split - method 1 (automatically write all splits to same place) exit if run out of - space instead of filling available space with near empty splits. For split - method 2 require splits to be at least 64K bytes (the minimum split size). - fileio.c (Ed) - 3. Add line break in ziperr() if message line has been started. zip.c (Ed) - 4. In ziperr() don't close output handle y if same as current_local_file handle - and just closed that. zip.c (Ed) - 5. Change default definition of PROCNAME() to handle new filter_match_case flag - and restore backward compatibility. zip.c (Christian, Ed) - 6. Add note detailing definition of PROCNAME(). zip.c (Ed) - 7. Remove nonlocalpath parameter from procname_win32() and procname_win32w() - and variables nonlocal_path and nonlocal_name as this is not used now that - unicode is implemented in WIN32 using the wide calls. - 8. Enable ignore case option for VMS. zip.c (SMS) - 9. Update -v and other updates in manual. man/zip.1 (Christian, Ed) -10. Updates for Watcom C and Win32 symlinks. win32/osdep.h (Christian) -11. Fix historic problem with VAX seeking. zipfile.c (SMS) -12. Add NAM_M_EXP_DEV. Add determination if device is in file specification. - If device name in file specification do ODS2 and ODS5 down-casing. - Define explicite_dev(). vms/vms.h, vms/vmszip.c (SMS) -------------------------- June 4th 2007 version 3.0f39 ------------------------- - 1. Update osdep.h to use new filter_match_case flag. vms/osdep.h (SMS) - 2. Fix unterminated string bug and trim extra allocated space in - local_to_display_string(). fileio.c (Ed) - 3. Updated extended help for -u and -ic options. zip.c (Ed) - 4. Update Manual. man/zip.1, zip.txt (Ed) -------------------------- June 15th 2007 version 3.0f40 ------------------------- - 1. Update Unicode Path and Unicode Comment descriptions based on suggestions - from WinZip. proginfo/extrafld.txt (Steve Gross, Ed) - 2. Update descriptions for Add, Update, and Freshen in the manual. man/zip.1 - (Christian) - 3. Update default definition of PROCNAME() to use filter_case_match flag to - turn off case matching in filter(). zip.c (Christian) - 4. Update WhatsNew. WHATSNEW (Ed) - 5. Update announcement. zip30f.ann (Ed) - 6. Update manual. man/zip.1, zip.txt (Ed) -------------------------- July 7th 2007 version 3.0f41 ------------------------- - 1. Use File Name as Unicode path if UTF-8 flag is set in header. zip.c, - globals.c, zipfile.c, zip.h (Ed) - 2. Update ToDo. TODO (Ed) - 3. Update WhatsNew. WHATSNEW (Ed) - 4. Update ReadMe. README (Ed) - 5. Fix problems with incompatible stat types on Win32. fileio.c, tailor.h, - zip.h, win32/win32.c, win32/win32zip.c, win32/osdep.h (Ed) - 6. Define NO_STREAMING_STORE to turn off storing while streaming. - INSTALL, zipup.c (Ed) - 7. Define UNICODE_ALLOW_FORCE to enable -UN=force option which is now - disabled and would need work. globals.c, zip.h (Ed) - 8. Add global using_utf8 to flag when OS current character set is UTF-8. - If an existing entry has the UTF-8 flag set the flag is kept. If a new - entry needs Unicode and on a UTF-8 system assume the strings are UTF-8 - and set the UTF-8 flag. globals.c, zip.h (Ed) - 9. Update Unicode extra field descriptions. proginfo/extrafld.txt (Ed) -10. Add include directory so can find bzip2 header file when using bzip2 - directory. unix/configure (Ed) -11. Fix wide character wild(), wild_recursew() and OpenDirScanW() for Win32 so - work like the regular versions. win32/win32zip.c (Ed) -12. Update Unicode in manual. Update -W description in manual zip.1 -13. Flush logfile writing. zip.c (Ed) -14. Update extended help for -UN option. Update help for Update to note it - updates files where the OS has a later date. Chance -UN=Exit to -UN=Quit - so can abbreviate to first letter. zip.c (Ed) -15. Fix a bug in readzipfile() when zip used in pipe. Other pipe fixes. zip.c, - zipfile.c (Ed) ------------------------- August 10th 2007 version 3.0f42 ----------------------- - 1. Update error message for -DF. zip.c (Ed) - 2. Add bzipped message to write to log file. zipup.c (Ed) - 3. Update bzip2 install instructions. bzip2/install.txt (Ed) - 4. Move local.h include to tailor.h to fix compiler multiple define. tailor.h, - zip.c (SMS) - 5. Add additional C compiler checks for GNU and HP. unix/configure (SMS) - 6. Fix to build libbz2.a. unix/Makefile (SMS) - 7. Update copyright. acorn/osdep.h, macos/osdep.h, tops20/osdep.h, - vms/vmszip.c, vms/vmsmunch.c, vms/vms_pk.c, vms/vms_im.c, vms/vms.h, - vms/vms.c, vms/osdep.h, win32/rsxntwin.h, win32/osdep.h, win32/nt.c (Ed) - 8. Change zfeeko(file, 0, SEEK_SET) to rewind(file) in ffile_size() so - EOF is always reset. This was creating problems in WIN32 when - NO_ZIP64_SUPPORT was set but LARGE_FILE_SUPPORT was set. zipfile.c (Ed) - 9. Update compile -v descriptions for LARGE_FILE_SUPPORT and ZIP64_SUPPORT to - be more specific as to what each does. zip.c (Ed) -10. Fix bug that added the local header size to the next entry compressed size - giving a wrong compressed size error if splitting and the split occurs when - writing a local header. fileio.c (Ed) -11. Remove UNICODE_TEST define from VC 6 projects. win32/vc6/zip.dsp, - win32/vc6/zipcloak.dsp, win32/vc6/zipnote.dsp, win32/vc6/zipsplit.dsp (Ed) -12. Update extended help. zip.c (Ed) -13. Only output -FF central directory messages in verbose mode. zipfile.c (Ed) -14. Add note about possible bug when copying entries from a split archive. - WHATSNEW (Ed) ------------------------- August 11th 2007 version 3.0f43 ----------------------- - 1. Display locale inside check to avoid NULL locale. zip.c (SMS, Ed) - 2. Add include wchar.h to tailor.h. tailor.h (SMS) ------------------------- August 21st 2007 version 3.0f44 ----------------------- - 1. Remove verbose messages when setting locale as verbose flag is not set yet. - zip.c (SMS, Ed) - 2. Change reading splits message "abort archive" to "abort archive - quit" and - change selection letter from a to q so q quits consistently. For quit, - don't confirm as more annoying than helpful. fileio.c (Ed) - 3. In bfwrite() handle case where a split ends at the end of one entry and - trying to write the next local header forces opening next split. This - caused copying entries from one archive to another to fail if this came up. - Also handle case where a new split is needed while writing central directory - entries. Now close last split and update pointers to point to the new - split. fileio.c (Ed) - 4. Update use of mesg_line_started and add new logfile_line_started to account - for line ends in logfile. fflush() output. zip.c, zip.h, globals.c (Ed) - 5. Move setting split size if input archive is split and split_size not set - to after archive is read. zipfile.c, zip.c (Ed) - 6. Update Manual to describe Unicode as implemented and note that old splits - are not automatically excluded. man/zip.1, zip.txt (Ed) - 7. Update WhatsNew to remove note that creating and copying split archives - is broke as it seems fully working now. WHATSNEW (Ed) - 8. Update announcement. zip30f.ann (Ed) ------------------------- August 31st 2007 version 3.0f45 ----------------------- - 1. Unicode fix for VMS. tailor.h (SMS) - 2. Add member current to zlist structure to flag when an archive entry is - current with the matching OS file using file time and size. This is used by - File Sync to copy current entries from archive. zip.h, zip.c (Ed) - 3. Comment out zip info verbose extra data message as this message does not - seem to add much. zipfile.c (Ed) - 4. Add local and central directory Version Needed To Extract to mismatch - warning. Update warning text. zipfile.c (Ed) - 5. Add function BlankRunningStats() to output blanks for the running stats - part of the line to use when displaying stats for entries not on the mark - list so all output lines up. zip.c - 6. Add -FS to extended help as new mode. zip.c (Ed) - 7. Update description of -FF to remove Assume Worst. zip.c (Ed) - 8. Add all_current flag that is set if all entries in archive are current and - skip updating archive if -FS and all entries are current. zip.c (Ed) - 9. Change argv[] to args[] for "try: zip" error message as message depends on - new argument order in args where options are now at beginning. zip.c (Ed) -10. For File Sync, copy entries to new archive if file time and size are the - same. If verbose, output ok when copying current entries, otherwise no - message when current_entry. Set all_current to 0 if an entry not marked or - a file not on OS as need to avoid the All Current message in these cases to - catch only deletions. zip.c (Ed) -11. Initialize variables excluding zipstate and setjmp() if USE_ZIPMAIN defined - to fix bug when recall zipmain(). zip.c (Ed) -12. Update Manual. zip.1, zip.txt (Ed) -13. Update WhatsNew. WHATSNEW (Ed) -14. Update announcement. zip30f.ann (Ed) ------------------------ September 5th 2007 version 3.0f46 ---------------------- - 1. Move write of local header after when GPB11 UTF-8 bit set in putlocal(). - zipfile.c (Ed) - 2. Change to uppercase for compatibility. vms/install_vms.txt (SMS) - 3. Set cenbeg and bytes_this_split to fix grow. Check if grow split archive. - zipfile.c, zip.c (Ed) ------------------------ September 14th 2007 version 3.0f47 -------------------- - 1. Include address for new Info-ZIP forum. Add note on 16-bit OS support. - Add note about text file line ends. README (Ed) - 2. Update WhatsNew to include latest on Unicode. Add section on plans for - Zip 3.1. WHATSNEW (Ed) - 3. Minor change in note for Unicode in extended help. zip.c (Ed) - 4. Modify definitions of Unicode extra fields based on discussions with PKWare - and WinZip. proginfo/extrafld.txt (Ed) - 5. Add note on UTF-8 flag. INSTALL (Ed) - 6. Minor updates to ToDo list. Needs more work. TODO (Ed) - 7. Update announcement. zip30f.ann (Ed) - 8. Change definition of IZ_OUR_BZIP2_DIR to be compatible with Configure and - to work with HP-UX. unix/Makefile (SMS) ------------------------- September 24th 2007 version 3.0f --------------------- - 1. Update extended help Unicode description. zip.c (Ed) - 2. Update Readme. README (Ed) - 3. Fix case of define identifying IA64. vms/vms.c (SMS) - 4. Update announcement date. zip30f.ann (Ed) - 5. Update Unicode extra field definitions based on changes proposed for - AppNote. extrafld.txt (Ed) ------------------------- October 17th 2007 version 3.0g01 --------------------- - 1. Can get stuck on open Unix FIFO so default to skip and add option -FI to - enable reading FIFO. Add global allow_fifo. zip.c, zip.h, globals.c - (Willus 0, Ed) - 2. As problems with MinGW with wide-character paths, disable wide-character - Unicode support. zip.c, unix/unix.c (Willus 0, Ed) - 3. Update manual installs to include zipcloak.1, zipnote.1, and zipsplit.1 - pages. unix/Makefile (Ed) - 4. Update Solaris packages. unix/Packaging/pkginfo.in, - unix/Packaging/postinstall, unix/Packaging/preinstall.in, - unix/Packaging/prototype (SMS) ------------------------- October 30th 2007 version 3.0g02 --------------------- - 1. Fix bug in get_in_split_path() where look for .zip split when attempting - to open archives without a .zip extension, even when a single file archive - like jar file. fileio.c (Gabriele (balducci@units.it), Ed) - 2. Fix bug where temp file got created in current working directory on Unix - by giving entire archive path to mkstemp() as template. fileio.c, zip.c - (Willus, Ed) - 3. Use 64-bit output functions for bits_sent. trees.c (SMS) - 4. Add -FF to fixfix -sd messages to make different from identical main - messages. zip.c (SMS, Ed) - 5. If quiet do not ask for splits and all splits must be in same location. - zipfile.c (Ed) - 6. Clean up making zip manuals. unix/Makefile (Ed, SMS) - 7. Add clean_exe to make. unix/Makefile (SMS) - 8. Update to VMS Notes, including adding details on symlinks, -V, and UTC - dates times. vms/notes.txt (SMS) - 9. Fix bug in wild() when calling wile_recursew() where qw should be - pointing inside pw. win32/win32zip.c (Willus, Ed) -10. Fix bug where is_ascii_string() fails when passed a NULL string. This - may fix problem where the CentOS mbstowcs() function is returning -1 when - trying to convert a file name with a bad character (0xe6), causing - local_to_wide_string() and then local_to_utf8_string() to return NULL, so - f->uname gets NULL and so is_ascii_string() fails with SIGSEGV. fileio.c - (Willus, Ed) ------------------------- October 31st 2007 version 3.0g03 --------------------- - 1. Add handling of -b temp directory when opening splits in bfwrite() using - mkstemp(). fileio.c (SMS, Ed) ------------------------- November 3rd 2007 version 3.0g04 --------------------- - 1. Move show_files to global so can avoid split warning for -sf. zip.c, - globals.c, zip.h, zipfile.c (Ed) - 2. Account for -b tempath when opening temp file. zip.c, zipnote.c, - zipcloak.c (SMS, Ed) ------------------------- November 4th 2007 version 3.0g05 --------------------- - 1. Minor fixes to fdopen calls. zipcloak.c, zipnote.c (SMS, Ed) ------------------------- November 4th 2007 version 3.0g06 --------------------- - 1. Add negation to -db, -dc, -dd, -dg, -du, -dv display options. zip.c (Ed) - 2. Put back UNICODE_SUPPORT no_win32_wide code left out in previous fix. - win32/win32zip.c (Willus, Ed) ------------------------- November 21st 2007 version 3.0g07 --------------------- - 1. Fix bug preventing newline in some cases in zipmessage(). zip.c (Ed) - 2. Update Unicode help. zip.c (Ed) - 3. Update -sd messages. zip.c (Ed) - 4. Add filetimew() for Unicode case. zip.c (Ed) - 5. Add ClearArchiveBitW() for Win32 wide. zip.c, zip.h, win32/win32.c (Ed) - 6. Only ask for .zip split if path ends in .znn or .znnn where n 0 to 9. This - allows -FF to work on .exe sfx files without adding .zip. zipfile.c (Ed) - 7. Fix bug where only backed up 20 bytes to find Z64 EOCD Locator. Now back - up 24 bytes to include size of Z64 EOCD Locator signature. This prevented - reading and updating archives greater than 4 GB. zipfile.c (Ed) - 8. If -FF on Win32 initialize wide strings namew, inamew, and znamew to NULL. - zipfile.c (Ed) - 9. Add #include to support towupper(). tailor.h (SMS) ------------------------- December 4th 2007 version 3.0g08 --------------------- - 1. Update dot_size comment. globals.c (Ed) - 2. Update Compression in extended help. zip.c (Ed) - 3. Add extended help on self extractor -A and -J. zip.c (Ed) - 4. Update VMS SYMLINK version information. zip.c (SMS) - 5. Remove not final from Unicode version information as final now. zip.c (Ed) - 6. Remove apparently not needed WINDLL variable retcode. zip.c (Ed) - 7. Fix -A to calculate sfx offset and adjust offsets as it should. zip.c (Ed) - 8. Split -F and -FF used with -A warning to separate warnings. zip.c (Ed) - 9. Add adjusting to can't to that to split archive error. zip.c (Ed) -10. Fix bug for -A that tries to open split by asking for disk 0 instead of - disk 1. Add adjust_offset and cd_total_size variables. Calculate - sfx offset by determining offset of start of central directory. Archives - larger than 4 GB are not supported as sfx archives but these don't seem - to work anyway. Add adjust_offset to Zip64 EOCDR offset and central - directory offsets. zip.c, zipfile.c (Ed) -11. Comment out here debug variable in find_next_signature(). zipfile.c (Ed) -12. Change %2x to %02x as format for parts of a signature in error messages. - zipfile.c (SMS) -13. Add warning adjusting split archives not yet supported. zipfile.c (Ed) -14. Add period to central directory comment. zipfile.c (Ed) -15. Update readme for vb Zip64 project. windll/vbz64/readvb64.txt (Ed) -16. Update comments of VB for Zip64 example. Add SplitSize to VB Zip64 - example. windll/vbz64/vbzipbas.bas, windll/vbz64/vbzipfrm.frm (Ed) -17. Add SourceForge to comment noting where can get the source code. - windll/vbz64/vbzipfrm.frm (Ed) -18. Update WhatsNew. WHATSNEW (Ed) ------------------------- December 12th 2007 version 3.0g09 -------------------- - 1. A few minor changes to extended help. zip.c (Ed) - 2. Uppercase beginning of most -sd messages. zip.c (Ed) - 3. Add spaces between options in some error messages. zip.c (Ed) - 4. Update comments in scanzipf_regnew(). zipfile.c (Ed) - 5. Update scanzipf_regnew() to figure out sfx offset. (Ed) - 6. Uppercase VMS RUNOFF file as apparently needed. VMS_ZIP.RNH (SMS) - 7. Add comments to zipmessage(). zip.c (Ed) - 8. Update extended help and option descriptions. zip.c (Ed) ------------------------- December 20th 2007 version 3.0g10 -------------------- - 1. Fix -F to include -A adjustment check. zipfile.c (Ed) - 2. Change -FF message when find EOCDR. zipfile.c (Ed) - 3. For -FF, reset first CD entry flag in_central_directory when a local entry - is found after CD entries so that another CD entry forces sorting of all - local entries to that point. This allows files with multiple archives in - them to be processed. zipfile.c (Ed) - 4. Add message when a local entry is found after a central directory. - zipfile.c (Ed) - 5. Remove word offset from disk offset location messages. zipfile.c (Ed) - 6. Make Adjust offset message more descriptive. zipfile.c (SMS, Ed) - 7. In scanzipf_regnew(), if adjustment to offsets, add it to - in_cd_start_offset. zipfile.c (Ed) - 8. Allocate cextra only if localz->ext not 0 in zipcopy(). zipfile.c (Ed) ------------------------- December 28th 2007 version 3.0g11 -------------------- - 1. Include definitions of zip64_eocdr_start and z64eocdl_offset in - ZIP64_SUPPORT ifdef block. Add comments for End Of CD Record (EOCDR). - Update comments for adjust offset detection. zipfile.c (Ed) - 2. Change ((uzoff_t)1 << 32) to 0xFFFFFFFF. zipfile.c (SMS, Ed) - 3. Leave off local header detection as not useful when searching for start - of central directory to get adjust offset. Looks like all expected cases - are now covered as long as archive is intact. zipfile.c (Ed) - 4. Update some warning messages. Simplify adjust offset information message. - zipfile.c (Ed) - 5. Add braces to unicode_mismatch if block. zipfile.c (Christian) - 6. Add (void *) cast in InterlockedExchangePointer() mutex calls to fix - compile warnings in MinGW (GCC 3.4.4). win32/nt.c (Christian) - 7. Remove unused nonlocalpath variable. win32/win32zip.c (Christian) - 8. Update betas readme file. betas_readme.txt (Ed) - 9. Partial update to Who list of contributors. proginfo/infozip.who (Ed) -10. Update ReadMe. Create Announcement. README, zip30g.ann (Ed) -11. Update WhatsNew. WHATSNEW (Ed) ------------------------- January 7th 2008 version 3.0g12 -------------------- - 1. Convert Scanning files message to use standard zipmessage_nl() so line - ends are generated when needed. fileio.c (Ed) - 2. Add line ends in DisplayRunningStats() if a display line has been - started. zip.c (Ed) - 3. For the command line listed at the top of the log file, add double - quotes around any arguments that have spaces in them. - zip.c (Ed) - 4. Instead of stdout use standard mesg output stream for show files. - Output new line for show files for display and log file if there was - output on the current line. zip.c (Ed) - 5. Comment out new line output code after zipup() and replace with - call to zipmessage_nl("", 1) to output new line if needed. - zip.c (Ed) - 6. In GetFileMode() and GetFileModeW() when get attributes fails - instead of fprintf(mesg, ...) use zipwarn() so error goes in - log file and new lines are displayed when needed. win32/win32.c (Ed) - 7. In GetSD(), change cbytes from long to ulg. Check cbytes (the - compressed size of the security descriptor) and issue warning if - the compressed security descriptor is greater than 0x7FFF (32k) - as the entire header this extra field is in needs to fit in the - 64k header. Should be a check on the running size of the header - so the actual space remaining is tracked. Maybe in Zip 3.1. If - cbytes OK cast to ush and store. win32/win32zip.c (Ed) - 8. Use zipmessage_nl() for bytes security message so new lines are - handled and message goes in log file. win32/win32zip.c (Ed) - 9. Add new option -RE to enable [list] (regex) matching in DOS and - WIN32 but disable [list] matching otherwise. Default behavior - is restored if ALLOW_REGEX is defined. globals.c, util.c, - zip.h, zip.c (Ed) ------------------------- January 20th 2008 version 3.0g13 -------------------- - 1. Update copyrights to 2008. zip.c, zipcloak.c, zipfile.c, zipnote.c, - zipsplit.c, zipup.c, README (Ed) - 2. Update Who. proginfo/infozip.who (Ed) ------------------------- January 30th 2008 version 3.0g14 -------------------- - 1. Update copyrights. fileio.c, globals.c, revision.h, util.c, zip.h, - win32/win32.c, win32/win32zip.c (Ed) - 2. Updates. README, proginfo/infozip.who (Ed) - 3. Update announcement and WhatsNew. zip30g.ann, WHATSNEW (Ed) - 4. Add ALLOW_REGEX to INSTALL define list. INSTALL (Ed) - 5. Change -sd message. zip.c (Ed) - 6. For bzip2 check for binary and set binary/text flag. Handle -l and -ll - line end conversions for bzip2. zipup.c (Ed) ------------------------- February 3rd 2008 version 3.0g -------------------- - 1. Change && to || to fix logic bug in show files. zip.c (Johnny) - 2. Add CLEAN and CLEAN_ALL VMS targets. vms/descrip_mkdeps.mms (SMS) ------------------------ February 22nd 2008 version 3.0h01 -------------------- - 1. Update some echo statements to use CFLAGS_OPT. Add GNUC check. - unix/configure (SMS) - 2. Only store UID and GID if 16 bit. unix/unix.c (Ed) ------------------------ March 21st 2008 version 3.0h02 -------------------- - 1. Change long Unicode escapes from 8 characters to 6 characters based on - change in UnZip 6.0. fileio.c (Ed) - 2. Put zuebcmp() declaration in #if 0 block as definition already is. This - function would be used to allow Unicode escapes on the command line - without using the -UN=escape option, but the utility of this is still - being determined. zipfile.c (SMS, Ed) - 3. Remove declaration for unused bz_deflate_init(). zipup.c (SMS, Ed) - 4. Add release announcement file, anticipating the long-awaited release. - zip30.ann (Ed) - 5. Update WhatsNew. WHATSNEW (Ed) ------------------------ March 24th 2008 version 3.0h03 -------------------- - 1. Update Unix configure script to better test for modern HP-UX compiler. - unix/configure (SMS) - 2. Updated Beta Readme. betas_readme.txt (Ed) - 3. Update Install. INSTALL (Ed) - 4. Update ReadMe. README (Ed) - 5. Small change to main help screen. zip.c (Ed) - 6. Small update to top of ToDo list. Actual updating of items still - needs to be done. TODO (Ed) ------------------------ April 2nd 2008 version 3.0h04 -------------------- - 1. Update copyright. crc32.h (Christian) - 2. Remove zip.h include. crc32.h (Christian) - 3. Add local prototypes for Unicode functions. Add cast for split size - check. Make many Unicode functions local. #if 0 out currently unused - utf8_chars(). Fix memory leak in wide_to_local_string() by adding - free() for buffer on error return. Fix memory leak in copy_args() on - error return by adding free-args(). Add ZCONST to arg in - insert_arg(). Shorten some lines to less than 80 characters. Add - free() to get_longopt() to fix memory leak. fileio.c (Christian) - 4. Create Win32 versions of wide_to_local_string() and - local_to_wide_string() so can use Win32 conversion functions. - fileio.c, win32/win32.c (Christian) - 5. Update comments for get_option(). fileio.c (Ed) - 6. Update encryption code readme. README.cr (Ed) - 7. Add prototype for recmatchw(). util.c (Christian) - 8. Change count_args() from static to local. util.c (Christian) - 9. Change ifdefs for includes for prototypes for version_info(), - zipstdout(), and check_zipfile() for WINDLL and MACOS and add - check_unzip_version(). zip.c (Christian) -10. Change ifndef NO_SYMLINKS to ifdef S_IFLNK for determining compiler - information. zip.c (Christian) -11. Change UTF-8 locale from en_GB.UTF-8 to .UTF-8. zip.c (Christian) -12. Change cast of -1 for dot_size from uzoff_t to zoff_t. - zip.c (Christian) -13. Change prototype for set_filetype to include parameter char *. - Change prototype of has_win32_wide to include parameter void. - zip.h (Christian) -14. Add prototypes for find_next_signature(), find_signature(), - and is_signature(). Change duplicate prototype scanzipf_regnew() - to missing prototype scanzipf_fixnew(). Change comment for Adler-16 - checksum to CRC-32 checksum as that is being used at that point in - the code. Move multiple uname assignments to common assignment. - Add inameLocal for WIN32_OEM and use define for inameLocal if not - to save memory allocation when not not using WIN32_OEM. Also - change _INTERN_OEM(str1) to INTERN_TO_OEM(src, dst) for OEM - conversion. Format comment for vem to fit in 80 character lines. - zipfile.c (Christian) -15. Change variable a from buffer to a pointer and add abf as the - buffer for zgetline() to handle NULL case. zipnote.c (Christian) -16. Change comments to zipentry comments and zipfile comment in - messages. zipnote.c (Ed) -17. Use uidgid_16bit as flag variable instead of uid_size. Modify - size check that prevents saving Unix UIDs and GIDs in the old - Unix extra field if they are not 16 bits. Change memory - allocation based on uidgid_16bit. Delete unused code for memory - copy for extra field. unix/unix.c (Christian, Ed) -18. Change compiler flag from -zp8 to -Zp8 for LCC Win32. - win32/makefile.lcc (Christian) -19. Add ifndef debug. Add bzip2 support. Add additional compiler - flags. win32/makenoas.w32 (Christian) ------------------------ April 10th 2008 version 3.0h05 -------------------- - 1. Fix bug found by forum poster where Zip stops recursing down a tree - when option -AS is set and a directory without the Windows archive - bit is reached. Now Zip continues down the tree to include files with - the bit set. win32/win32zip.c (forum poster, Ed) - 2. Update comments. win32/osdep.h (Ed) - 3. Update VMS notes to better organize and add information about file - name case. Additional small updates. vms/notes.txt (SMS) - 4. Fix bugs from previous changes to unix. unix/unix.c (SMS, Christian, - Ed) - 5. Add unix IBM support. unix/unix.c (SMS) - 6. Update INSTALL to account for new distribution structure and other - changes. INSTALL (SMS, Ed) - 7. Update bzip2 install readme. bzip2/install.txt (SMS, Ed) - 8. Fix bug noted in forum where -@ and -x generated a "nothing to - select from error" by also checking filelist variable populated by - -@ for entries. zip.c (forum poster, Ed) ------------------------ April 20th 2008 version 3.0h06 -------------------- - 1. Start announcement for Zip 3.0h public beta. zip30h.ann (Ed) - 2. Update beta readme. betas_readme.txt (Ed) - 3. Update case of README.CR. INSTALL (Ed) - 4. Change -W to -ws for option to stop wildcards from scanning directory - boundaries in path. This frees up -W for later use, maybe as extendted - option introducer. zip.c, man/zip.1 (Ed) - 5. Updated date in announcement to May 4th. zip30.ann (Ed) - 6. Added announcement for public beta Zip 3.0h. zip30h.ann (Ed) - 7. Fix large file support for MinGW by checking for compiler environments - before the check for (generic) gcc. zipup.c, win32/osdep.h - (Will, Christian) - 8. Fix large file support for bzip2. Additionally, the "dot printout" - code has also been adapted for LARGE_FILE support. zipup.c - (Will, Christian) - 9. Add comments to top of configure. unix/configure (Ed) -10. Move comment and comment out value size check for UID/GID extra field. - unix/unix.c (Ed) -11. Change case of file ToDo to TODO for consistency and to work with Unix - package. TODO (SMS, Ed) ------------------------ April 26th 2008 version 3.0h07 -------------------- - 1. For -AS, which for Windows only includes files with the archive bit - set, exclude directory entries (by setting -D) as some directories may - not have any files with the archive bit set and so the directory would - be empty. zip.c (Ed) - 2. Fix UID/GID size detection to use byte sizes and remove data fit test. - unix/unix.c (Ed) - 3. Update announcement. zip30h.ann (Ed) - 4. Add new unix extra field with tag 'ux' that stores UIDs/GIDs of 1 to 4 - bytes (8 to 32 bits). unix/unix.c (Ed) - 5. Update VB readme. windll/vbz64/readVB64.txt (Ed) - 6. For Unicode escaped output also show escape for ASCII 7-bit if - isprintable() is false. fileio.c (Ed) - 7. Use locale "en_US.UTF-8" for Unix. zip.c (Ed) - 8. Also show escaped Unicode for new files in found list. zip.c (Ed) - 9. Update manual. man/zip.1, zip.txt (Ed) ------------------------- May 4th 2008 version 3.0h08 ----------------------- - 1. Handle when a bad Unicode string in archive forces - utf8_to_wide_string() to return a NULL string. Give warning if UTF-8 - in existing archive is bad. Put WIN32 wide local header initializations - in UNICODE_SUPPORT block. fileio.c, zipfile.c (Ed) - 2. Leave out Unicode escape code if not Unicode enabled. zip.c (Ed) - 3. Enable oem_to_local_string() and local_to_oem_string() for WIN32 - even if no Unicode. zip.h, win32/win32.c (Christian, Ed) - 4. Update comment about encryption code. zipcloak.c (Ed) - 4. Update zipmessage_nl() and zipmessage() from zip.c. zipcloak.c, - zipnote.c, zipsplit.c (Ed) - 5. Add Mac OS X library check. unix/configure (SMS) - 6. Add 16-bit UID/GID check. unix/configure (Christian, Ed) - 7. Format echo and comment statements a bit. unix/configure (Ed) - 8. Only compile in old 16-bit UID/GID code if new define UIDGID_NOT_16BIT - from unix configure script is not defined. unix/unix.c (Christian) - 9. A couple changes to updated 16-bit UID/GID code. Add 64-bit - UID/GID support to new Unix extra field. unix/unix.c (Ed) -10. Remove redundant "license" from options table. zipcloak.c (Ed) -11. Remove old unix build files. unix/configure-orig, unix/Makefile-orig - (Christian) -12. Add -O (--output-file) option to ZipCloak. Fix bug by setting - out_path. zipcloak.c (Ed) ------------------------- May 8th 2008 version 3.0h09 ----------------------- - 1. Update copyright. Add check for NO_UNICODE_SUPPORT. tailor.h (Ed) - 2. Fix bug where Unicode General Purpose Bit Flag 11 should force keeping - the old name field but it was being overwritten by the escaped name - in the central directory header. Fixed some ZIPERR() calls in - putcentral() that referred to putlocal(). zipfile.c (Ed) - 3. Add comment about OCRCU8 and OCRCTB. unix/configure (Ed) - 4. Change line in instructions to note that manuals should be made after - Zip is made. Change OCRTB to OCRCTB. Add $(OCRCTB) to rule for - zipcloak$E so crc32_.o is linked in. Add comment for NO_UNICODE_SUPPORT - flag. unix/makefile (Ed) - 5. Update WhatsNew. Add additional items to the Zip 3.1 list. Add note - about Zip 2.4. WHATSNEW (Ed) - 6. Update Zip 3.0h announcement. zip30h.ann (Ed) - 7. Update manual pages. man/zip.1, man/zipsplit.1, man/zipnote.1, - man/zipcloak.1 (Ed) - 8. Add noted for UTF-8 locale. zip.c (Ed) - 9. Set UTF-8 locale for Unix in utilities if UNICODE_SUPPORT enabled - so can display and process paths in archives correctly. zipsplit.c, - zipcloak.c, zipnote.c (Ed) ------------------------- May 12th 2008 version 3.0h10 ---------------------- - 1. Add use of new Unix UID/GID extra field and of old Unix 16-bit UID/GID - extra field when system uses 16-bit UIDs/GIDs to version information. - zip.c (SMS, Ed) - 2. Add Unicode Path and Unicode Comment extra fields to extra fields list. - Update new Unix extra field revision date. proginfo/extrafld.txt (Ed) - 3. Add Mac hardware platform to version information. unix/unix.c (SMS) ------------------------- May 19th 2008 version 3.0h11 ---------------------- - 1. Initialize f->namew when streaming stdin to fix bug. fileio.c (Ed) - 2. Change force_zip64 to start as -1 as unset, then use 1 for forcing use - of Zip64 and 0 for disabling use of Zip64. Add negation of -fz to - prevent use of Zip64 during streaming from stdin to a non-seekable - output where data descriptors will be used, which allows creating - archives with the old stream format but will fail if a large file is - streamed. Default is still to force Zip64 data descriptors when - streaming, which covers all cases but requires a Zip64 compatible - unzip. zip.c, globals.c, zipfile.c (Ed) - 3. Handle case of bad Unicode in archive. zipfile.c (Ed) ------------------------- May 22nd 2008 version 3.0h12 ---------------------- - 1. Fix bug introduced last beta that prevented streaming large files. Use - separate error message depending on if -fz- was used. zipfile.c (Ed) - 2. Change non existent to nonexistent. unix/configure (SMS) - 3. Don't output blank line when zipmessage_nl() gets passed an empty - string. This removes blank lines for skipped entries when -FS used. - zip.c (Ed) ------------------------- May 27th 2008 version 3.0h13 ---------------------- - 1. Change UNICODE_ALLOW_FORCE to UNICODE_SUPPORT, -UN=force to -UN=UTF8, - and unicode_force to utf8_force. This option now standard with Unicode - support and forces Zip to save UTF-8 paths and comments, when not ASCII, - as if UTF-8 were the native character set. globals.c, zip.c, zip.h (Ed) - 2. Add note to Todo that it's out of date. TODO (Ed) - 3. Update WhatsNew. WHATSNEW (Ed) - 4. Update Unicode help in extended help. zip.c (Ed) - 5. Update announcements. zip30h.ann, zip30.ann (Ed) - 6. Fix bug with -UN=UTF8. zip.c, zipfile.c (Ed) - 7. Update Zip manual. man/zip.1, zip.txt (Ed) - 8. Attempt an update to zip limits document. proginfo/ziplimit.txt (Ed) - 9. Update README regarding forum postings. README (Ed) -10. Remove duplicate initialization lines for found and fnxt. zip.c (SMS) ------------------------- May 28th 2008 version 3.0h14 ---------------------- - 1. Remove >= 0 check from wide character check as value is unsigned. - fileio.c (SMS) - 2. In putlocal(), move nam and use_uname to UNICODE_SUPPORT block. If - no UNICODE_SUPPORT use z->nam instead of nam. zipfile.c (SMS, Ed) - 3. Update announcement date for beta. zip30h.ann (Ed) ------------------------- May 31st 2008 version 3.0h ------------------------ - 1. In putlocal() if using UTF-8 bit then also set UTF-8 bit in z->lflg so - is set in local header for streaming. zipfile.c (Ed) - 2. Update announcement date for beta. zip30h.ann (Ed) - 3. Rename lib and dll projects to zip32z64 and update project files so - project name is same as lib and dll libraries. Export make files. - windll/visualc/dll/zip32z64.dsp, windll/visualc/dll/zip32z64.dsw, - windll/visualc/dll/zip32z64.mak, windll/visualc/libzip32z64.dsp, - windll/visualc/libzip32z64.dsw, windll/visualc/libzip32z64.mak (Ed) ------------------------- June 7th 2008 version 3.0i01 ---------------------- - 1. Update Mac ReadMe to note Mac OS X uses Unix port. macos/readme.1st (Ed) - 2. Change UNIX to Unix in manual. Update dates in manual and add note - about Mac OS X. Change switch to switches. zip.1 (SMS, Ed) - 3. Add version information under Windows by adding a version resource. - win32/vc6/zip.dsp, win32/vc6bz2/zip.dsp, win32/zip.rc (Ed) ------------------------- June 15th 2008 version 3.0i02 ---------------------- - 1. Update Install instructions. INSTALL (Ed) - 2. Update ReadMe. README (Ed) - 3. Update ToDo list. TODO (Ed) - 4. Update WhatsNew. WHATSNEW (Ed) - 5. Add note to WHERE. WHERE (Ed) - 6. Update announcement. zip30.ann (Ed) - 7. Review man pages and update Zip man page. Compile text files from man - pages. man/zip.1, zip.txt, zipnote.txt, zipsplit.txt, zipcloak.txt (Ed) - 8. Update extended help. zip.c (Ed) ------------------------- June 17th 2008 version 3.0i03 ---------------------- - 1. Fix bug where UTF-8 flag was not being set when using_utf8 was set as - result of UTF-8 being current character set. zipfile.c (Ed) - 2. Update man page globbing description. man/zip.1, zip.txt (SMS, Ed) - 3. Update web address to bzip2 package for VMS. vms/install_vms.txt (SMS) ------------------------- June 21st 2008 version 3.0i04 ---------------------- - 1. Update comments. zbz2err.c (Christian) - 2. Put use_uname in UNICODE_SUPPORT block. zipfile.c (Christian) - 3. Increase st to 0x1400. msdos/makefile.msc (Christian) - 4. Update copyright and put @CodeSize and @DataSize into ifndef blocks for - Huge, Large, Compact, Medium, and Small. msdos/match.asm (Christian) - 5. Add check to disable symbolic links. msdos/osdep.h (Christian) - 6. Put Mac OS X compiler check into if Mac OS X block to avoid problems on - some other Unix ports with the check. unix/configure (SMS) - 7. Move set_extra_field() to fix compile problem. unix/unix.c (SMS) - 8. Update USEBZIP2 to USEBZ2 and -DUSE_BZIP2 to -DBZIP2_SUPPORT. Drop - -DMSDOS compile flag. win32/makefile.w32 (Christian) - 9. Change BZIP2_SUPPORT to USEBZ2. win32/makenoas.w32 (Christian) ------------------------- June 23rd 2008 version 3.0i05 ---------------------- - 1. Update and unify resources. Remove any MFC dependencies from the resource - files zip.rc and windll.rc. win32/zip.rc and windll/windll.rc now read - the version info from revision.h. windll.rc internal flags modified to - "32-bit dll". zip.rc internal flags liberated from "winnt 32-bit" - to "generic 32-bit windows". Win32 zip.exe also supported on Win9x - (32-bit). Update makefiles for Borland, MSC, GCC(mingw32), Watcom - to support inclusion of zip.rc version resources into zip.exe binary. - revision.h, msdos/osdep.h, win32/makefile.bor, win32/makefile.gcc, - win32/makefile.w10, win32/makefile.w32, win32/makefile.wat, - win32/makenoas.w32, win32/zip.rc, windll/windll.rc (Christian) - 2. Remove unused files. win32/resource.h, windll/resource.h, - windll/windll.aps, windll/zipver.h, windll/visualc/dll/zip32z64.mak, - windll/visualc/lib/zip32z64.mak (Christian) - 3. Update VMS. vms/descrip_deps.mms (SMS) ------------------------- June 26th 2008 version 3.0i06 ---------------------- - 1. Update Install and Readme in preparation for release. Update WhatsNew. - INSTALL, README, WHATSNEW (Ed) - 2. Update announcement. zip30.ann (Ed) - 3. Update original Visual Basic project comments and documentation. - windll/vb/readmevb.txt, windll/vb/vbzip.vbp, windll/vb/vbzip.vbw, - windll/vb/vbzipbas.bas, windll/vb/vbzipfrm.frm (Ed) - 4. Add bzip2 version of djgpp 2.x makefile thanks to Robert. Assumes a - standard djgpp installation. msdos/makebz2.dj2 (Robert Riebisch, Ed) ------------------------- June 27th 2008 version 3.0i07 ---------------------- - 1. Add DJGPP to bzip2 install instructions. bzip2/install.txt, - msdos/makebz2.dj2 (Robert, Ed) -------------------------- 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) diff --git a/third_party/infozip/zip/README b/third_party/infozip/zip/README deleted file mode 100644 index a55942576..000000000 --- a/third_party/infozip/zip/README +++ /dev/null @@ -1,234 +0,0 @@ -Zip 3.0 is the first Zip update adding large file support. For now Zip 2.3x -remains available and supported, but users should switch to this new release. - -Testing for Zip 3.0 has focused mainly on Unix, VMS, Max OS X, and Win32, -and some other ports may not be fully supported yet. If you find your -favorite port is broke, send us the details or, better, send bug fixes. It's -possible that support for some older ports may be dropped in the future. - - - -Copyright (c) 1990-2008 Info-ZIP. All rights reserved. - -See the accompanying file LICENSE (the contents of which are also included -in unzip.h, zip.h and wiz.h) for terms of use. If, for some reason, all -of these files are missing, the Info-ZIP license also may be found at: -ftp://ftp.info-zip.org/pub/infozip/license.html and -http://www.info-zip.org/pub/infozip/license.html. - - -Zip 3.0 is a compression and file packaging utility. It is compatible with -PKZIP 2.04g (Phil Katz ZIP) for MSDOS systems. There is a companion to zip -called unzip (of course) which you should be able to find in the same place -you got zip. See the file 'WHERE' for details on ftp sites and mail -servers. - -So far zip has been ported to a wide array of Unix and other mainframes, -minis, and micros including VMS, OS/2, Minix, MSDOS, Windows, Atari, Amiga, -BeOS and VM/CMS. Although highly compatible with PKware's PKZIP and PKUNZIP -utilities of MSDOS fame, our primary objective has been one of portability -and other-than-MSDOS functionality. Features not found in the PKWare version -include creation of zip files in a pipe or on a device; VMS, BeOS and OS/2 -extended file attributes; conversion from Unix to MSDOS text file format; and, -of course, the ability to run on most of your favorite operating systems. And -it's free. - -See the file zip30.ann for a summary of new features in Zip 3.0 and WhatsNew -for the detailed list of new features and changes since Zip 2.32. The file -CHANGES details all day-to-day changes during development. - -Notes: - -Multi-volume support. This version does not support multi-volume spanned -archives as in pkzip 2.04g, and there is no intention at this point to support -spanned archives, but Zip 3.0 supports split archives. A split archive is an -archive split into a set of files, each file a piece of the archive and each -file using an extension, such as .z02 as in the file name archive.z02, that -provides the order of the splits. In contrast, a spanned archive is the -original multi-floppy archive supported by pkzip 2.0g where the split order -is contained in the volume labels. The contents of split and spanned archives -are mostly identical and there is a simple procedure to convert between the -formats. Many current unzips now support split archives. - -Zip64 support. This version supports Zip64 archives as described in the -PKWare AppNote. These archives use additional fields to support archives -greater than 2 GB and files in archives over the 2 GB previous limit (4 GB -on some ports). The Zip64 format also allows more than 64k entries in an -archive. Support by the OS for files larger than 4 GB is needed for Zip to -create and read large files and archives. On Unix, Win32, and some other -ports, large file and Zip64 support is automatically checked for and -compiled in if available. Use of Zip64 by Zip is automatic and to maximize -backward compatibility the Zip64 fields will only be used if needed. A -Zip64 archive requires a pkzip 4.5 compatible unzip, such as UnZip 6.0. - -Unicode support. This version has initial Unicode support. This allows -paths and names of files in other character sets to be accurately recreated -on OS that have sufficient character set support. On Win32, if wide -character calls are supported (not Win 9x unless Unicode support has been -added) all files (including paths with illegal characters in the current -character set) should now be readable by zip. Unicode support is provided -using a new set of UTF-8 path and comment extra fields and a new UTF-8 bit -for flagging when the current character set is already UTF-8. Zip 3.0 -maintains backward compatibility with older archives and is mostly compliant -with the new Unicode additions in the latest PKWare AppNote. The exception -is UTF-8 comments, which are not supported if UTF-8 is not the native -character set, but should be fully implemented in Zip 3.1. - -16-bit OS support. Though Zip 3.0 is designed to support the latest zip -standards and modern OS, some effort has been made to maintain support -for older and smaller systems. If you find Zip 3.0 does not fit on or -otherwise does not work well on a particular OS, send in the details and -we might be able to help. - -Compression methods. In addition to the standard store and deflate methods, -Zip now can use the bzip2 compression format using the bzip2 library. Though -bzip2 compression generally takes longer, in many cases using bzip2 results -in much better compression. However, many unzips may not yet support -bzip2 compressed entries in archives, so test your unzip first before using -bzip2 compression. - -Installation. Please read the file INSTALL for information on how to compile -and install zip, zipsplit, zipcloak, and zipnote and please read the manual -pages ZIP.txt, ZIPSPLIT.txt, ZIPCLOAK.txt, and ZIPNOTE.txt for information on -how to use them. Also, if you are using MSDOS or Windows, note that text -files in the distribution are generally in Unix line end format (LF only) -and Windows and DOS users will need to either convert the files as needed to -DOS line ends (CR LF) or extract the distribution contents using unzip -a. - -Utilities. At this point zipsplit, zipcloak, and zipnote should work with -large files, but they currently do not handle split archives. A work around -is to use zip to convert a split archive to a single file archive and then use -the utilities on that archive. - -Encryption. This version supports standard zip encryption. Until recently -the encryption code was distributed separately because of the US export -regulations but now is part of the main distribution. See crypt.c for -details. Decryption can be made with unzip 5.0p1 or later, or with zipcloak. - -Bug reports. All bug reports or patches should go to zip-bugs via the web -site contact form at http://www.info-zip.org/zip-bug.html (we have discontinued -the old email address zip-bugs@lists.wku.edu because of too much spam lately) -and suggestions for new features can be submitted there also (although we don't -promise to use all of them). We also are on SourceForge at -http://sourceforge.net/projects/infozip/ and now automatically get Bug Reports -and Feature Requests submitted there. In addition, a new Info-ZIP discussion -forum is available as well. See below. Though bug reports can be posted there, -we don't have automatic monitoring of all postings set up yet so you may want -to use the web form or SoureForge for a quicker response. A good approach may -be to post the details on the forum so others can benefit from the posting, -then use the web reply form to let us know you did that if you don't get a -reply in a reasonable time. - -Ports. If you're considering a port, please check in with zip-bugs FIRST, -since the code is constantly being updated behind the scenes. We'll -arrange to give you access to the latest source. - -Discussion group. If you'd like to keep up to date with our Zip (and companion -UnZip utility) development, join the ranks of BETA testers, add your own -thoughts and contributions, etc., check out the new discussion forum. This is -the latest offering, after the various Info-ZIP mailing-lists on -mxserver@lists.wku.edu (courtesy of Hunter Goatley) were no longer available -and the temporary QuickTopic discussion group for Info-ZIP issues at -http://www.quicktopic.com/27/H/V6ZQZ54uKNL died a horrible death due to large -amounts of spam. The new discussion forum is now available at -http://www.info-zip.org/board/board.pl (thanks again to Hunter Goatley) and -can be used to discuss issues, request features, and is one place new betas -and releases are announced. It also is a place to post bug reports, and -patches can be submitted as attachments. However, we don't yet get -automatic notification of all postings there so try one of the other methods -if you don't get a response. You can also post Bug Reports and Feature -Requests at Source Forge. However, the web site contact form remains -available if you would rather not post on the public forums. - -Frequently asked questions on zip and unzip: - -Q. When unzipping I get an error message about "compression method 8". - -A. This is standard deflate, which has been around for awhile. Please - get a current version of unzip. See the file 'WHERE' for details. - - -Q. How about "compression method 12"? - -A. Compression method 12 is bzip2 and requires a relatively modern unzip. - Please get the latest version of unzip. - - -Q. I can't extract this zip file that I just downloaded. I get - "zipfile is part of multi-disk archive" or some other message. - -A. Please make sure that you made the transfer in binary mode. Check - in particular that your copy has exactly the same size as the original. - Note that the above message also may actually mean you have only part - of a multi-part archive. Also note that UnZip 5.x does not and UnZip 6.0 - probably won't have multi-disk (split) archive support. A work around - is to use Zip 3.0 to convert the split archive to a single-file archive - then use UnZip on that archive. As a last result, if there's something - readable in what you have, zip -FF should be able to recover it. - - -Q. When running unzip, I get a message about "End-of-central-directory - signature not found". - -A. This usually means that your zip archive is damaged, or that you - have an uncompressed file with the same name in the same directory. - In the first case, it makes more sense to contact the person you - obtained the zip file from rather than the Info-ZIP software - developers, and to make sure that your copy is strictly identical to - the original. In the second case, use "unzip zipfile.zip" instead - of "unzip zipfile", to let unzip know which file is the zip archive - you want to extract. - - -Q. Why doesn't zip do just like PKZIP does? - -A. Zip is not a PKZIP clone and is not intended to be one. In some - cases we feel PKZIP does not do the right thing (e.g., not - including pathnames by default); in some cases the operating system - itself is responsible (e.g., under Unix it is the shell which - expands wildcards, not zip). Info-ZIP's and PKWARE's zipfiles - are interchangeable, not the programs. - - For example, if you are used to the following PKZIP command: - pkzip -rP foo *.c - you must use instead on Unix: - zip -R foo "*.c" - (the quotes are needed to let the shell know that it should - not expand the *.c argument but instead pass it on to the program, - but are not needed on ports that do not expand file paths like - MSDOS) - - -Q. Can I distribute zip and unzip sources and/or executables? - -A. You may redistribute the latest official distributions without any - modification, without even asking us for permission. You can charge - for the cost of the media (CDROM, diskettes, etc...) and a small copying - fee. If you want to distribute modified versions please contact us at - www.Info-ZIP.org first. You must not distribute beta versions. - The latest official distributions are always on ftp.Info-ZIP.org in - directory /pub/infozip and subdirectories and at SourceForge. - - -Q. Can I use the executables of zip and unzip to distribute my software? - -A. Yes, so long as it is made clear in the product documentation that - zip or unzip are not being sold, that the source code is freely - available, and that there are no extra or hidden charges resulting - from its use by or inclusion with the commercial product. See the - Info-ZIP license for more. Here is an example of a suitable notice: - - NOTE: is packaged on this CD using Info-ZIP's compression - utility. The installation program uses UnZip to read zip files from - the CD. Info-ZIP's software (Zip, UnZip and related utilities) is - freely distributed under the Info-ZIP license and can be obtained as - source code or executables from various anonymous-ftp sites, - including ftp://ftp.info-zip.org/pub/infozip. - - -Q. Can I use the source code of zip and unzip in my commercial application? - -A. Yes, as long as the conditions in the Info-ZIP license are met. We - recommend you include in your product documentation an acknowledgment - and note that the original compression sources are available at - www.Info-ZIP.org. If you have special requirements contact us. diff --git a/third_party/infozip/zip/README.CR b/third_party/infozip/zip/README.CR deleted file mode 100644 index c777d19f2..000000000 --- a/third_party/infozip/zip/README.CR +++ /dev/null @@ -1,119 +0,0 @@ -_____________________________________________________________________________ - - This is Info-ZIP's README.CR for zcrypt29.zip, last updated 27 March 2008. -_____________________________________________________________________________ - - -The files described below contain the encryption/decryption code for Zip 2.31, -UnZip 5.52, and WiZ 5.02 (and later). These files are included in the main -source distributions for all of these now, but the encryption patch is still -available for earlier versions of these. This file both describes the history -of the encryption package and notes the current conditions for use. Check -the comments at the top of crypt.c and crypt.h for additional information. - -As of version 2.9, this encryption source code is copyrighted by Info-ZIP; -see the enclosed LICENSE file for details. Older versions remain in the pub- -lic domain. Zcrypt was originally written in Europe and, as of April 2000, -can be freely distributed from the US as well as other countries. - -(The ability to export from the US is new and is due to a change in the Bureau -of Export Administration's regulations, as published in Volume 65, Number -10, of the Federal Register [14 January 2000]. Info-ZIP filed the required -notification via e-mail on 9 April 2000; see the USexport.msg file in this -archive. However, as of June 2002, it can now be freely distributed in both -source and object forms from any country, including the USA under License -Exception TSU of the U.S. Export Administration Regulations (section 740.13(e)) -of 6 June 2002.) - - LIKE ANYTHING ELSE THAT IS FREE, ZIP, UNZIP AND THEIR ASSOCIATED - UTILITIES ARE PROVIDED AS IS AND COME WITH NO WARRANTY OF ANY KIND, - EITHER EXPRESSED OR IMPLIED. IN NO EVENT WILL THE AUTHORS BE LIABLE - FOR ANY DAMAGES RESULTING FROM THE USE OF THIS SOFTWARE. - -The encryption code is a direct transcription of the algorithm from -Roger Schlafly, described by Phil Katz in the file appnote.txt. This -file is distributed with the PKZIP program (even in the version without -encryption capabilities). Note that the encryption will probably resist -attacks by amateurs if the password is well chosen and long enough (at -least 8 characters) but it will probably not resist attacks by experts. -Paul Kocher has made available information concerning a known-plaintext -attack for the PKWARE encryption scheme; see http://www.cryptography.com/ -for details.) Short passwords consisting of lowercase letters only can be -recovered in a few hours on any workstation. But for casual cryptography -designed to keep your mother from reading your mail, it's OK. - -For more serious encryption, check into PGP (Pretty Good Privacy), a -public-key-based encryption system available from various Internet sites. -PGP has Zip and UnZip built into it. The most recent version at the time -this was originally written was 6.5, although older versions were still -widespread. At the time of this writing there are now GPG, PGP Universal -2.0, and various others based on OpenPGP. - -We are looking at adding AES strong encryption to future versions of Zip and -UnZip. - -Zip 2.3x and UnZip 5.5x and later are compatible with PKZIP 2.04g. (Thanks -to Phil Katz for accepting our suggested minor changes to the zipfile format.) - -IMPORTANT NOTE: - - Zip archives produced by Zip 2.0 or later must not be *updated* by - Zip 1.1 or PKZIP 1.10 or PKZIP 1.93a, if they contain encrypted members - or if they have been produced in a pipe or on a non-seekable device. - The old versions of Zip or PKZIP would destroy the zip structure. The - old versions can list the contents of the zipfile but cannot extract - it anyway (because of the new compression algorithm). If you do not - use encryption and compress regular disk files, you need not worry about - this problem. - - -Contents that were distributed and now are part of the main source files: - - file what it is - ---- ---------- - README.CR this file - LICENSE Info-ZIP license (terms of reuse and redistribution) - USexport.msg export notice sent to US Bureau of Export Administration - WHERE where Zip/UnZip/WiZ and related utilities can be found - crypt.c code for encryption and decryption - crypt.h code for encryption and decryption - file_id.diz description file for some BBSes - -Most all of the files are in Unix (LF only) format. On MSDOS systems, you -can use the -a option of UnZip to convert the source files to CRLF -format. This is only necessary if you wish to edit the files -- they -will compile as is with Microsoft C and Turbo/Borland C++ 1.0 or -later. However, you will have to convert the files (using "unzip -a") -to the CRLF format to compile with the older Turbo C 1.0 or 2.0. You -should be able to find Zip and UnZip in the same place you found this -(see ftp://ftp.info-zip.org/pub/infozip/Info-ZIP.html or the file -"WHERE" for details). - -Current releases all have encryption built in. To update previous versions -using the zcrypt sources: - - (1) Get the main sources (e.g., Zip 2.3) and unpack into a working - directory, as usual. - - (2) Overwrite the dummy crypt.c and crypt.h from the main sources with - the versions from this package. If you want to overwrite directly - out of the zcrypt29 archive, do not use UnZip's freshen/updating - option; the dummy files may be newer than the real sources in - zcrypt29. ("unzip -o zcrypt29 -d /your/working/dir" will do the - Right Thing in most cases, although it may overwrite a newer WHERE - file under some circumstances.) - - (3) Read the main INSTALL document and compile normally! No makefile - changes are necessary on account of the zcrypt sources. You can - check that the version you just compiled has encryption or decryption - support enabled by typing "zip -v" or "unzip -v" and verifying that - the last "special compilation option" says encryption or decryption - is included. - -Encryption enables new "-e" and "-P password" options in Zip, and a new -"-P password" option in UnZip--see the normal Zip and UnZip documentation -for details. (Note that passing a plaintext password on the command line -is potentially much more insecure than being prompted for it interactively, -which is the default for UnZip and for Zip with "-e". Also note that the -interactive method allows UnZip to deal with archives that use different -passwords for different files.) diff --git a/third_party/infozip/zip/TODO b/third_party/infozip/zip/TODO deleted file mode 100644 index 8d517328a..000000000 --- a/third_party/infozip/zip/TODO +++ /dev/null @@ -1,142 +0,0 @@ -Todo list (last updated 12 June 2008). - -Features for next official version: - -- 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 (11/17/2005). -- AES encryption (3/19/05). - -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 - (11/5/2004 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). -- 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) - -- 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) diff --git a/third_party/infozip/zip/USexport.msg b/third_party/infozip/zip/USexport.msg deleted file mode 100644 index 068aa9f3f..000000000 --- a/third_party/infozip/zip/USexport.msg +++ /dev/null @@ -1,75 +0,0 @@ -From roelofs (at) sonic.net Tue Jun 17 08:26:55 2003 -Date: Tue, 17 Jun 2003 08:26:50 -0700 -Message-Id: <200306171526.h5HFQoaw014091 (at) bolt.sonic.net> -From: Greg Roelofs -Reply-To: Greg Roelofs -To: crypt (at) bis.doc.gov, enc (at) ncsc.mil, web_site (at) bis.doc.gov -Subject: TSU NOTIFICATION - Encryption (Info-ZIP zcrypt.zip) -Cc: newt (at) pobox.com, zip-bugs (at) lists.wku.edu - - - SUBMISSION TYPE: TSU - SUBMITTED BY: Greg Roelofs - SUBMITTED FOR: the Info-ZIP group (an informal, Internet-based - collection of software developers with the contact - address given in next item) - POINT OF CONTACT: Zip-Bugs (at) lists.wku.edu - PHONE and/or FAX: n/a - MANUFACTURER: n/a - PRODUCT NAME/MODEL #: zcrypt - ECCN: 5D002 - - NOTIFICATION: - - ftp://ftp.info-zip.org/pub/infozip/src/zcrypt.zip - - -FURTHER COMMENTS: - -(1) This notice is being sent in order to ensure that we may legally - take advantage of the 6 June 2002 amendment to 740.13 regarding - "corresponding object code." The encryption code in question is - unchanged since our original notification of 9 April 2000, appended - below and also reproduced within the above zcrypt.zip archive. - (Indeed, there has been no change to the core encryption/decryption - code in well over five years.) - -(2) The (larger) source archives for Zip, UnZip, MacZip, WiZ, and - potentially other packages, currently available in the same ftp - directory given above, also contain (or may contain) copies of - the same zcrypt source code. - -(3) ftp.info-zip.org currently points to a site in Germany, so techni- - cally it is not involved in "US export" in any direct way. However, - we encourage other sites to "mirror" our software, and some of these - mirror sites may be US-based (and therefore involved in reexport of - the code in question). In addition, some Info-ZIP members reside in - the US, and www.info-zip.org currently points to a site in Kentucky. - - -ORIGINAL NOTIFICATION: - -From roelofs (at) sonic.net Sun Apr 9 15:11:45 2000 -Date: Sun, 9 Apr 2000 15:11:27 -0700 -Message-Id: <200004092211.PAA20023 (at) sonic.net> -From: Greg Roelofs -To: crypt (at) bxa.doc.gov -Subject: notice of export of unrestricted encryption source code -Cc: newt (at) pobox.com, zip-bugs (at) lists.wku.edu - -The Info-ZIP group, an informal, Internet-based collection of software -developers with contact address Zip-Bugs (at) lists.wku.edu, hereby notifies -the US Bureau of Export Administration (BXA) of the posting of freely -available encryption source code on the Internet under License Exception -TSU, to commence later today at this location: - - ftp://ftp.info-zip.org/pub/infozip/src/zcrypt.zip - -This notification is in accordance with section 740.13(e) of the amended -Export Administration Regulations, as published in the 14 January 2000 -issue of the Federal Register. - --- -Greg Roelofs newt (at) pobox.com http://pobox.com/~newt/ -Newtware, PNG Group, Info-ZIP, Philips Research, ... - diff --git a/third_party/infozip/zip/WHATSNEW b/third_party/infozip/zip/WHATSNEW deleted file mode 100644 index 9e8d52bca..000000000 --- a/third_party/infozip/zip/WHATSNEW +++ /dev/null @@ -1,333 +0,0 @@ -What's New - -Last updated 1 July 2008 - -This file is the full list of new features and major changes for Zip 3.0 -by beta release. See the announcement file zip30.ann for a quick summary -of all features and changes in Zip 3.0. Also see the file README for -release information, INSTALL for installation procedures, and the manual -pages zip.txt, zipsplit.txt, zipcloak.txt, and zipnote.txt for how to use -the new features. The file CHANGES has all the day-to-day changes made -during development. - - -Below are some of the more significant items on the list for Zip 3.1 -(see ToDo for a more complete list): - -- AES encryption. -- Extended attributes for Windows, Linux, and Mac OS X. -- Support -d@ for deleting list of files. -- Decide if -R, -i and -x should use external rather than internal patterns. -- 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. -- When pattern is directory add end / automatically. -- 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. -- UNC path support maybe. -- Support for other languages maybe. -- Send in your suggestions. -- ... - - -MAJOR CHANGES BY BETA VERSION ------------------------------ - -New things in Zip 3.0 since Zip 3.0h: - -- Unicode fixes. -- Test and fix various ports as needed. -- Update Win32 resource to support more Windows ports. -- Add djgpp 2.x makefile that includes bzip2. -- Add Win32 version resource to Win32 executable. -- Bug fixes. -- Documentation updates. -- Package for release. - - -New things in Zip 3.0h - -- Allow -@ and -x to work together. -- Unicode code cleanup. -- Allow forcing use of UTF-8 storage in standard path and comment. -- Update symbolic link checks. -- Add support for storing 32-bit UIDs/GIDs using new extra field. - Backward compatible support for the old 16-bit UID/GID extra field - remains if Zip is compiled on an OS that has 16-bit UID/GID - storage. -- Update VMS notes. -- Directory scan using -AS (include only files with Windows archive - bit set) now ignores archive bit on directories to include all files - with archive bit set in all directories. Also, to avoid empty - directories being created, -AS now does not store directory - entries. -- Add Unix IBM support. -- Change -W to -ws to free -W for later use. -- Fix large file support for MinGW. -- Fix large file support for bzip2. -- Fix compile error in ZipCloak when UNICODE_SUPPORT is not enabled. -- Fix Unicode bug in ZipCloak involving Unicode paths. -- Long Unicode escapes changed from #Lxxxxxxxx to #Lxxxxxx to shorten - paths with escaped Unicode. -- Bug fixes. - - -New things in Zip 3.0g - -- Add split support to VB project for Zip64. -- Disable reading of Unix FIFOs unless new -FI option used to avoid an - archiving operation stopping when it hits an active unfed FIFO. -- The "[list]" wildcard expression (regular expression matching of any - character or range of characters in list) is now disabled on DOS and - Windows as it has caused confusion when filenames have [ and ] in - them. The new -RE option reenables it. -- Add negation to many display options such as -dc and -db. -- Allow -FF to read and fix archives having local entries that appear - after central directory entries. -- Bug fixes. - - -New things in Zip 3.0f - -- bzip2 - The bzip2 compression method looks supported for at least - Windows, Unix, and VMS using the bzip2 library. A new option, -Z cm, - selects the compression method. - -- Split archives - Can now use -s to create a split archive. The - default is to update split files as the archive is being written, - which requires all splits to remain open until the archive is done. - This should be no problem when writing the archive to a hard drive, - for example, and this approach creates archives that should be - supported by all unzips that support splits. Adding the -sp option - enables split pause mode that instead writes splits that do not - need updating and pauses Zip after each split. This allows splits - to be written directly to removable media, however -sp archives - may not be as universally compatible. - -- Unicode support - Zip now stores Unicode paths that should be more - portable across character sets and languages. The unzip must have - Unicode support enabled or the Unicode paths are ignored. If - reading an archive with Unicode paths, unsupported characters are - replaced by #Uxxxx and #Lxxxxxxxx escapes in the file name. Option - -UN controls how Unicode is handled. Also, on systems where the - current character set is UTF-8, preliminary support for the new - General Purpose Bit Flag, bit 11, UTF-8 flag, that indicates UTF-8 - is stored in the path and comment fields is implemented for paths. -- Unicode on Win32 - On WIN32 systems that support the wide character - calls (mainly NT and later systems using NTFS), when UNICODE SUPPORT - is enabled Zip will now do directory scans using Unicode and convert - the Unicode paths to the local character set for storage in the standard - path field and store UTF-8 in the Unicode extra field. This allows - directory scans to complete successfully regardless of the character - set the path is in. On Win9x systems wide character scans are not - generally supported and Zip automatically uses a local character scan - instead. - -- Keep extra fields option - The default operation has been, and continues - to be, to read then strip old extra fields when reading entries from an - existing archive and then recreate the extra fields that Zip knows about. - Extra fields specific to each operating system get added by default also. - The new option -X- (negated -X) keeps any old extra fields, copying - them to the updated archive unchanged (unless Zip has updated them). - The unnegated -X still strips most all extra fields except Zip64, - Unicode, and UT time. - -- License - minor updates to the license. - -- Windows OEM - When compiled with WIN32_OEM (the default for WIN32), - Zip on WIN32 now stores OEM paths, which should be more compatible - with other zips and should fix some character set problems. -- Windows Archive Bit support - On Windows can now use new -AS - (include if archive bit set) option to select files with the DOS - archive bit set and use new -AC (clear archive bits) option to clear - the archive bits on files after the archive has been created. - But -DF is probably better. - -- Difference mode - A new option -DF (--dif) creates an output archive - that includes only files changed or new since the input archive was - created. Can use to create incremental backups. -- File Sync - The new option -FS enables File Sync, a new mode that - synchronizes the entries in an archive with the files on the file - system, adding updating, and deleting entries as needed. This - should create the same results as creating a new archive, but - since existing entries are copied, may be much faster. - -- Copy Mode - A new --out option allows creating a new archive with a - different name than the input archive, leaving the input archive - unchanged. This allows updating split archives. It also allows - for a new copy mode to select entries in one archive and copy them - directly to a new archive. -- Empty archives - Now an empty archive is created when -i or -i@ is used - and the file patterns given do not match anything. This has been - requested to support scripts. - -- Global dots - A new -dg option now displays progress dots as -dd does, - but instead of displaying them for each file, the dots track the total - bytes read for the archive. The -dg option also works when -q is used - to disable most output, which allows for something like zip -qdgds 100m - to be used to not display specific files but display a dot every 100 MB - as a global status. -- Date range - Can now use -t and -tt to set a date range -- Fix options - Option -F redone and can recover files from an archive - with a mostly complete central directory more reliably, but no longer - can handle truncated archives. Option -FF redone and now can salvage - files from slightly more damaged archives, including truncated archives. - In some ways -F is less powerful but more stable than it was and -FF will - be needed where -F in Zip 2.32 was enough. One big change is -F and -FF - both now support split archives. -- Console writing - Updates to how messages are written to the console have - been made including more consistent handling of line breaks. -- Show Files options - Option -sf lists the files that would be operated - on. This option can be used alone to list the files in an archive. - Also see options -su and -sU for showing Unicode paths. -- UnZip Check - Now check that UnZip 6.00 or later is being used for - unzip if testing a Zip64 archive. A new option -TT can be used to set - the unzip to use with the -T check. Currently UnZip does not support - split archives so split archives can't be tested by UnZip. -- Streaming - Directories are now handled better when streaming. -- Case matching - Normally all matching against archive entries is case - sensitive, so *.BAR will not match or find foo.bar in an archive - when deleting, copying, or freshening entries (deleting and copying - only on VMS). New option -ic (--ignore-case) enables case insensitive - matching. Currently -ic is only implemented on WIN32 and VMS. - -- Delete date bug fixed - Bug when using -d to delete files while - using -t or -tt to select the files based on date is fixed -- Large file encryption bug fixed - Fix for bug that very rarely - results in bad data being stored when deflating and encrypting - uncompressable data and resulting in CRC errors when extracting, - but the chance of error increases with file size (thanks to - WinZip for finding this bug). See CHANGES for details. - - -New things in Zip 3.0e - -- Bugs described in Debian patches 004 (unix configure script update) and - 005 (large path bug) fixed -- Various fixes -- Add optional running stats and also end stats if not all files could - be read -- Options -l and -ll now do quick binary check on first buffer and skip - formatting if first buffer has binary - still check at end to note - if formatting was done on file that was later determined to be binary, - but now potential file corruption is generally avoided -- Main binary check now uses new algorithm that should also treat UTF-8 and - other similar encodings as text, allowing proper line end translation - for UTF-8 files -- When output is not updatable by seeking back and Zip64 is enabled, output - is forced to Zip64 to avoid possible later need for Zip64 when not enabled -- More work on splits, but still not usable -- Fixes for djgpp -- Add log file capability to save all errors and optionally messages -- Add code to test for a Zip64 archive when compiled without Zip64 support -- New VC6 projects for Win32 and WinDLL -- Updates to extended help -- Changes to force-zip64 option -- ZE_BIG error now given also for files too big to read or write -- Fix file delete bug -- Update license -- Update export documentation -- Add VMS extended filename support -- Add directory traversal improvements, some for Win32 ports and some for - all ports, that can result in a 10 times increase in speed in some cases - - -New things in Zip 3.0d - -- Some large file crypt fixes -- Some updates to support WiZ -- On VMS, changed -V (/VMS) processing to truncate file at EOF, allowing - greater compatability with non-VMS systems. New -VV (/VMS=ALL) option - saves all allocated blocks in a file. (Previously, -V did neither.) -- On VMS, pushed 2GB file size limit with -V out to 4GB -- On VMS (recent, non-VAX), with SET PROCESS /PARSE = EXTEND, - command-line case is preserved. This obviates quoting upper-case - options, like -V, when enabled -- On VMS, fixed problems with mixed-case directory names. Also changed - to keep ODS5 extended file name escape characters ("^") out of the - archived names in simple cases -- Changes to the display dots -- Option -W should now force wildcard matching to not cross directory - separators. For example, a/b*r/d will match a/bar/d but not a/ba/r/d -- Option -nw should turn off all wildcard matching so foo[bar] is matched - literally and [bar] is not considered a regular expression -- Atheos port -- Debugging of Unix and VMS large file ports. Most features may work now - on these ports for large files. Still need to fix 2 GB to 4 GB when not - compiled with large file support -- On VMS, added an open callback function which (where supported) senses - the process RMS_DEFAULT values for file extend quantity (deq) - multi-block count (mbc), and multi-buffer count (mbf), and sets the - FAB/RAB parameters accordingly. The default deq is now much larger - than before (16384 blocks, was none), and the default mbc is now 127 - (up from 64), speeding creation of a large archive file. The "-v" - option shows some of the activity. On old VMS versions, RMS_DEFAULT - sensing (GETJPI) fails (silently, without "-v"), and no changes will - be made. Even there, (DCL) SET RMS /EXTEND = can help - performance. RMS_DEFAULT values override built-in default values. - - -New things in Zip 3.0c - -- Converted to using 64-bit file environment instead of transitional functions - like fseeko64 for ports that support it -- Added "--" argument to read all following arguments as paths -- Second help page added -- Binary detection adjusted from 20% binary is binary to 2% -- When -R and -i used together now -i has precedence over -R -- Archive names with spaces can now be tested on MSDOS and Win32 - - -New things in Zip 3.0b - -- Fixed ifdefs so can test base code by compiling with NO_LARGE_FILE_SUPPORT, then - compiling with NO_ZIP64_SUPPORT to test 64-bit file calls (if port enables) but - otherwise use base code, and compiling normally to enable Zip64 code -- Unix Zip64 fixes - should now be able to create and read large files -- WinDLL changes to support Zip64. Zip 3.0 dll named Zip32z64.dll -- New VB example to show use of Zip32z64.dll -- New options -sc (show final command line and exit) and -sd (show each - step zip is doing, a little different than verbose which is still there) added - to help debug but both or at least -sd might go away in the release -- Some minor posted bugs fixed (see Changes) - - -New things in Zip 3.0a - -- Initial Zip64 support allowing large files and large numbers of files -- New command line processor -- Other changes, see file Changes - - -Note: Zip 2.4 was never released. That code was the start of the Zip 3.0 -effort above. - - -New things in Zip 2.3 - -- IBM OS/390 port (Unix like, but EBCDIC) by Paul von Behren -- Apple Macintosh (MACOS) port by Dirk Haase -- Theos port by Jean-Michel Dubois -- Multibyte characterset support by Yoshioka Tsuneo -- Support for ISO 8601 date format with -t and -tt options -- Info-ZIP license - - -New things in Zip 2.2 - -- BEOS port by Chris Herborth -- QDOS port by Jonathan Hudson -- TANDEM port by Dave Smith -- WINDLL port (16-bit Win 3.x and 32-bit WinNT/Win95) by Mike White -- SYSV packages support by John Bush -- zip -P SeCrEt encrypts entries in the zip file with password SeCrEt - (WARNING: THIS IS INSECURE, use at your own risk) -- zip -R recurses into subdirectories of current dir like "PKZIP -rP" -- zip -x@exclude.lst excludes files specified in the file exclude.lst -- zip -i@include.lst includes files specified in the file include.lst -- zip -@ only handles one filename per line, but supports whitespace in names -- zip -t mmddyyyy, 4 digit year number for uniqueness of years beyond 2000 -- zip -tt mmddyyyy only includes files before a specified date diff --git a/third_party/infozip/zip/WHERE b/third_party/infozip/zip/WHERE deleted file mode 100644 index 94a0d55c6..000000000 --- a/third_party/infozip/zip/WHERE +++ /dev/null @@ -1,261 +0,0 @@ -__________________________________________________________________________ - - This is the Info-ZIP file ``WHERE,'' last updated on 1 March 2005. -__________________________________________________________________________ - - This file is out of date. We plan to update the structure of the ftp - site shortly and should be updating this file as soon as that's done. - - The latest version of this file can be found online at: - - ftp://ftp.info-zip.org/pub/infozip/doc/WHERE - - Note that some ftp sites may not yet have the latest versions of Zip - and UnZip when you read this. The latest versions always appear in - ftp://ftp.info-zip.org/pub/infozip/ (and subdirectories thereof) first, - except for encryption binaries, which always appear in - ftp://ftp.icce.rug.nl/infozip/ (and subdirectories) first. - - IF YOU FIND AN ERROR: please let us know! We don't have time to - check each and every site personally (or even collectively), so any - number of the sites listed below may have moved or disappeared en- - tirely. E-mail to Zip-Bugs@lists.wku.edu and we'll update this file. -__________________________________________________________________________ - - -Info-ZIP's home WWW site is listed on Yahoo and is at: - - ftp://ftp.info-zip.org/pub/infozip/Info-ZIP.html (master version) - http://ftp.info-zip.org/pub/infozip/ (master version) - http://www.info-zip.org/ - -Note that the old sites at http://www.cdrom.com/pub/infozip/ and -http://www.freesoftware.com/pub/infozip are PERMANENTLY BROKEN. They -cannot be updated or removed, apparently. - -The Zip and UnZip pages have links to most known mirror sites carrying our -source and/or binary distributions, and they generally are more up-to-date -and have better information than what you are reading: - - ftp://ftp.info-zip.org/pub/infozip/Zip.html - ftp://ftp.info-zip.org/pub/infozip/UnZip.html - -The related zlib package by Info-ZIP's Jean-loup Gailly and Mark Adler is at: - - http://www.zlib.net/ - -Source-code archives for Info-ZIP's portable Zip, UnZip, and related -utilities: - - zip231.zip Zip 2.31 (deflation; includes zipnote/zipsplit/zipcloak) - zip231.tar.Z ditto, compress'd tar format - - zip11.zip Zip 1.1 (shrinking, implosion; compatible w. PKUNZIP 1.1) - zip11.tar.Z ditto, compress'd tar format - - unzip552.zip UnZip 5.52 (all methods[*]; unzip/funzip/unzipsfx/zipgrep) - unzip552.tar.gz ditto, gzip'd tar format - unzip552.tar.Z ditto, compress'd tar format - - unred552.zip UnZip 5.52 add-on, contains copyrighted unreduce support - - zcrypt29.zip encryption support for Zip 2.3[**] - zcrypt10.zip encryption support for Zip 1.1 - - MacZip106src.zip contains all the GUI stuff and the project files to build - the MacZip main-app. To build MacZip successfully, both - the Zip 2.31 and UnZip 5.52 sources are required, too. - - wiz502.zip WiZ 5.02, Windows 9x/NT GUI front-end for Info-ZIP DLLs - wiz502+dlls.zip WiZ 5.02, Windows 9x/NT GUI front-end plus DLL sources - -[*] Unreducing is disabled by default, but is available as add-on. - As of July 2004, Unisys's LZW patent was expired worldwide, and - unshrinking is turned on by default since the release of UnZip 5.52. - See UnZip's INSTALL file for details. - -[**] As of January 2000, US export regulations were amended to allow export - of free encryption source code from the US. As of June 2002, these - regulations were further relaxed to allow export of encryption binaries - associated with free encryption source code. The Zip 2.31, UnZip 5.52 - and Wiz 5.02 archives now include full crypto source code. As of the - Zip 2.31 release, all official binaries include encryption support; the - former "zcr" archives ceased to exist. - (Note that restrictions may still exist in other countries, of course.) - -Executables archives (and related files) for Info-ZIP's software; not all -of these will be immediately available due to lack of access to appropriate -systems on the part of Info-ZIP members. - - zip231x.zip MSDOS executables and docs - zip231x1.zip OS/2 1.x (16-bit) executables and docs - zip231x2.zip OS/2 2/3/4.x (32-bit) executables and docs - zip231xA.zip Amiga executables and docs - zip231xB.zip BeOS executables and docs - zip231xC.zip VM/CMS executable and docs - zip231xK.zip Tandem NSK executables and docs - zip231xM.xmit MVS classic executable - zip231xM-docs.zip MVS classic port, docs only - zip231dN.zip WinNT/Win9x (Intel) DLL, header files, docs - zip231xN.zip WinNT/Win9x (Intel) executables and docs - zip231xN-axp.zip WinNT (Alpha AXP) executables and docs - zip231xN-mip.zip WinNT (MIPS R4000) executables and docs - zip231xN-ppc.zip WinNT (PowerPC) executables and docs - zip231xO.zip IBM OS/390 Open Edition binaries and docs - zip231xQ.zip SMS/QDOS executables and docs - zip231xR.zip Acorn RISC OS executables and docs - zip231xT.zip Atari TOS executables and docs - zip231-vms-axp-obj.zip - VMS (Alpha AXP) object libs, link procedure and docs - zip231-vms-axp-exe.zip - VMS (Alpha AXP) executables for VMS 6.1 or later and docs - zip231-vms-vax-decc-obj.zip - VMS (VAX) object libs (new DEC C), link procedure and docs - zip231-vms-vax-decc-exe.zip - VMS (VAX) executables (DEC C) for VMS 6.1 or later; docs - zip231-vms-vax-vaxc-obj.zip - VMS (VAX) object libs (old VAX C), link procedure and docs - zip231x.hqx Macintosh BinHex'd executables and docs - - unz552x.exe MSDOS self-extracting executable (16-bit unzip, ..., docs) - unz552x3.exe MSDOS self-extracting executable (16-, 32-bit unzip, docs) - unz552x1.exe OS/2 1.x (16-bit) self-extracting executables and docs - unz552x2.exe OS/2 2/3/4.x (32-bit) self-extracting executables and docs - unz552d2.zip OS/2 2/3/4.x (32-bit) DLL, header file, demo exe and docs - unz552xA.ami Amiga self-extracting executables and docs - unz552xA.lha Amiga executables and docs, LHa archive - unz552xB.sfx BeOS self-extracting executables and docs - unz552xB.tar.gz BeOS executables and docs, gzip'd tar archive - unz552xC.mod VM/CMS executable module in "packed" format - unz552xC-docs.zip VM/CMS docs, only - unz552xF.zip FlexOS executable and docs - unz552xK.zip Tandem NSK executable and docs - unz552xM.xmit MVS classic executable - unz552xM-docs.zip MVS classic port, docs only - unz552dN.zip NT4/W2K/XP/2K3/W9x (32-bit Intel) DLL, header files, docs - unz552xN.exe NT/2K/XP/2K3/W9x self-extracting i386 executables and docs - unz552xN-axp.exe WinNT (Alpha AXP) self-extracting executables and docs - unz552xN-mip.exe WinNT (MIPS R4000) self-extracting executables and docs - unz552xN-ppc.exe WinNT (PowerPC) self-extracting executables and docs - unz552xQ.sfx SMS/QDOS self-extracting executables and docs - unz552xO.tar.Z IBM OS/390 Open edition (Unix-like), exes and docs - unz552xR.exe Acorn RISC OS self-extracting executables and docs - unz552xR.spk Acorn RISC OS Spark'd executables and docs - unz552xT.tos Atari TOS self-extracting executables and docs - unz552x-vms-axp-obj.bck VMS backup saveset, - contains UnZip (Alpha) obj libs, link procedure, docs - unz552x-vms-axp-obj.exe VMS (Alpha AXP) SFX archive (statically linked), - contains UnZip (Alpha) obj libs, link procedure, docs - unz552x-vms-axp-exe.exe VMS (Alpha AXP) SFX archive (dynamically linked), - contains UnZip (Alpha AXP, DEC C) executables and docs, - smaller than object archive, but requires VMS 6.1 - unz552x-vms-vax-decc-obj.bck VMS backup saveset, - contains UnZip (new DEC C) obj libs, link procedure, docs - unz552x-vms-vax-decc-obj.exe VMS (VAX) SFX archive (statically linked), - contains UnZip (new DEC C) obj libs, link procedure, docs - unz552x-vms-vax-decc-exe.exe VMS (VAX) SFX archive (dynamically linked), - contains UnZip (new DEC C) executables and docs, - smaller than object archive, but requires VMS 6.1 - unz552x-vms-vax-vaxc-obj.bck VMS backup saveset, - contains UnZip (old VAX C) obj libs, link procedure, docs - unz552x-vms-vax-vaxc-obj.exe VMS (VAX) SFX archive (statically linked), - contains UnZip (old VAX C) obj libs, link procedure, docs - unz552x.hqx Macintosh BinHex'd executables and docs for unzip - (unz552x.tar.{Z,gz} Unix exes/docs for Solaris 2.x, SCO Unix, Linux, etc., - depending on directory/location; generally only provided - in cases where the OS does *not* ship with a bundled C - compiler) - - MacZip106nc.hqx Macintosh combined Zip&UnZip application with GUI, - executables and docs (no encryption) - MacZip106c.hqx Macintosh combined Zip&UnZip application with GUI, - executables and docs (with encryption) - - wiz502xN.exe WiZ 5.02 32-bit (Win9x/NT/2K/XP/2K3) app+docs (self-extr.) - - UnzpHist.zip complete changes-history of UnZip and its precursors - ZipHist.zip complete changes-history of Zip - -ftp/web sites for the US-exportable sources and executables: - - NOTE: Look for the Info-ZIP file names given above (not PKWARE or third- - party stuff) in the following locations. Some sites like to use slightly - different names, such as zip-2.31.tar.gz instead of zip231.tar.Z. - - ftp://ftp.info-zip.org/pub/infozip/ [THE INFO-ZIP HOME SITE] - ftp://sunsite.doc.ic.ac.uk/packages/zip/ [MIRRORS THE INFO-ZIP HOME SITE] - ftp://unix.hensa.ac.uk/mirrors/uunet/pub/archiving/zip/ - - ftp://ftp.cmdl.noaa.gov/aerosol/doc/archiver/{all,dos,os2,mac,vax_alpha}/ - ftp://garbo.uwasa.fi/pc/arcers/ [AND OTHER GARBO MIRRORS] - ftp://garbo.uwasa.fi/unix/arcers/ [AND OTHER GARBO MIRRORS] - ftp://ftp.elf.stuba.sk/pub/pc/pack/ [AND OTHER STUBA MIRRORS] - ftp://ftp-os2.cdrom.com/pub/os2/archiver/ - ftp://ftp-os2.nmsu.edu/os2/archiver/ - ftp://ftp.informatik.tu-muenchen.de/pub/comp/os/os2/archiver/ - ftp://sumex-aim.stanford.edu/info-mac/cmp/ - ftp://ftp.wustl.edu/pub/aminet/util/arc/ [AND OTHER AMINET MIRRORS] - ftp://atari.archive.umich.edu/pub/Archivers/ [AND OTHER UMICH MIRRORS] - http://www.umich.edu/~archive/atari/Archivers/ - ftp://jake.educom.com.au/pub/infozip/acorn/ [Acorn RISC OS] - http://www.sitec.net/maczip/ [MacZip port] - -ftp/web sites for the encryption and decryption sources and/or executables: - - Outside the US: - ftp://ftp.info-zip.org/pub/infozip/ [THE INFO-ZIP HOME SITE] - ftp://ftp.icce.rug.nl/infozip/ [THE INFO-ZIP ENCRYPTION HOME SITE] - ftp://ftp.elf.stuba.sk/pub/pc/pack/ - ftp://garbo.uwasa.fi/pc/arcers/ - ftp://ftp.inria.fr/system/arch-compr/ - ftp://ftp.leo.org/pub/comp/os/os2/leo/archiver/ - (mail server at ftp-mailer@ftp.leo.org) - - ftp://ftp.win.tue.nl/pub/compression/zip/ - ftp://ftp.uni-erlangen.de/pub/pc/msdos/arc-utils/zip/ - - -The primary distribution site for the MacZip port can be found at: - - http://www.sitec.net/maczip/ - -ftp sites for VMS-format Zip and UnZip packages (sources, object files and -executables, no encryption/decryption--see also "Mail servers" section below): - - ftp.spc.edu [192.107.46.27] and ftp.wku.edu: - - [.MACRO32]AAAREADME.TXT - [.MACRO32.SAVESETS]UNZIP.BCK or UNZIP.ZIP (if already have older version) - [.MACRO32.SAVESETS]ZIP.ZIP - -To find other ftp/web sites: - - The "archie" ftp database utility can be used to find an ftp site near - you (although the command-line versions always seem to find old ver- - sions...the `FTPsearch' server at http://ftpsearch.ntnu.no/ftpsearch - --formerly `Archie 95'--is quite up-to-date, however). Or check a stan- - dard WWW search engine like AltaVista (http://www.altavista.digital.com/) - or Yahoo (http://www.yahoo.com/). If you don't know how to use these, - DON'T ASK US--read the web sites' help pages or check the Usenet groups - news.announce.newusers or news.answers or some such, or ask your system - administrator. - -Mail servers: - - To get the encryption sources by e-mail, send the following commands - to ftp-mailer@informatik.tu-muenchen.de: - - get /pub/comp/os/os2/archiver/zcrypt29.zip - quit - - To get the VMS Zip/UnZip package by e-mail, send the following - commands in the body of a mail message to fileserv@wku.edu (the - "HELP" command is also accepted): - - SEND FILESERV_TOOLS - SEND UNZIP - SEND ZIP - - To get Atari executables by e-mail, send a message to - atari@atari.archive.umich.edu for information about the mail server. -__________________________________________________________________________ diff --git a/third_party/infozip/zip/ttyio.h b/third_party/infozip/zip/ttyio.h deleted file mode 100644 index 4a397292b..000000000 --- a/third_party/infozip/zip/ttyio.h +++ /dev/null @@ -1,230 +0,0 @@ -/* clang-format off */ -/* - ttyio.h - Zip 3 - - Copyright (c) 1990-2005 Info-ZIP. All rights reserved. - - See the accompanying file LICENSE, version 2005-Feb-10 or later - (the contents of which are also included in zip.h) for terms of use. - If, for some reason, all these files are missing, the Info-ZIP license - also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html -*/ -/* - ttyio.h - */ - -#ifndef __ttyio_h /* don't include more than once */ -#define __ttyio_h - -#ifndef __crypt_h -# include "third_party/infozip/zip/crypt.h" /* ensure that encryption header file has been seen */ -#endif - -#if (CRYPT || (defined(UNZIP) && !defined(FUNZIP))) -/* - * Non-echo keyboard/console input support is needed and enabled. - */ - -#ifndef __G /* UnZip only, for now (DLL stuff) */ -# define __G -# define __G__ -# define __GDEF -# define __GPRO void -# define __GPRO__ -#endif - -#ifndef ZCONST /* UnZip only (until have configure script like Zip) */ -# define ZCONST const -#endif - -#if (defined(MSDOS) || defined(OS2) || defined(WIN32)) -# ifndef DOS_OS2_W32 -# define DOS_OS2_W32 -# endif -#endif - -#if (defined(DOS_OS2_W32) || defined(__human68k__)) -# ifndef DOS_H68_OS2_W32 -# define DOS_H68_OS2_W32 -# endif -#endif - -#if (defined(DOS_OS2_W32) || defined(FLEXOS)) -# ifndef DOS_FLX_OS2_W32 -# define DOS_FLX_OS2_W32 -# endif -#endif - -#if (defined(DOS_H68_OS2_W32) || defined(FLEXOS)) -# ifndef DOS_FLX_H68_OS2_W32 -# define DOS_FLX_H68_OS2_W32 -# endif -#endif - -#if (defined(__ATHEOS__) || defined(__BEOS__) || defined(UNIX)) -# ifndef ATH_BEO_UNX -# define ATH_BEO_UNX -# endif -#endif - -#if (defined(VM_CMS) || defined(MVS)) -# ifndef CMS_MVS -# define CMS_MVS -# endif -#endif - - -/* Function prototypes */ - -/* The following systems supply a `non-echo' character input function "getch()" - * (or an alias) and do not need the echoff() / echon() function pair. - */ -#ifdef AMIGA -# define echoff(f) -# define echon() -# define getch() Agetch() -# define HAVE_WORKING_GETCH -#endif /* AMIGA */ - -#ifdef ATARI -# define echoff(f) -# define echon() -# include -# define getch() (Cnecin() & 0x000000ff) -# define HAVE_WORKING_GETCH -#endif - -#ifdef MACOS -# define echoff(f) -# define echon() -# define getch() macgetch() -# define HAVE_WORKING_GETCH -#endif - -#ifdef NLM -# define echoff(f) -# define echon() -# define HAVE_WORKING_GETCH -#endif - -#ifdef QDOS -# define echoff(f) -# define echon() -# define HAVE_WORKING_GETCH -#endif - -#ifdef RISCOS -# define echoff(f) -# define echon() -# define getch() SWI_OS_ReadC() -# define HAVE_WORKING_GETCH -#endif - -#ifdef DOS_H68_OS2_W32 -# define echoff(f) -# define echon() -# ifdef WIN32 -# ifndef getch -# define getch() getch_win32() -# endif -# else /* !WIN32 */ -# ifdef __EMX__ -# ifndef getch -# define getch() _read_kbd(0, 1, 0) -# endif -# else /* !__EMX__ */ -# ifdef __GO32__ -# include -# define getch() getkey() -# else /* !__GO32__ */ -# include -# endif /* ?__GO32__ */ -# endif /* ?__EMX__ */ -# endif /* ?WIN32 */ -# define HAVE_WORKING_GETCH -#endif /* DOS_H68_OS2_W32 */ - -#ifdef FLEXOS -# define echoff(f) -# define echon() -# define getch() getchar() /* not correct, but may not be on a console */ -# define HAVE_WORKING_GETCH -#endif - -/* For VM/CMS and MVS, we do not (yet) have any support to switch terminal - * input echo on and off. The following "fake" definitions allow inclusion - * of crypt support and UnZip's "pause prompting" features, but without - * any echo suppression. - */ -#ifdef CMS_MVS -# define echoff(f) -# define echon() -#endif - -#ifdef TANDEM -# define echoff(f) -# define echon() -# define getch() zgetch() /* defined in TANDEMC */ -# define HAVE_WORKING_GETCH -#endif - -/* The THEOS C runtime library supplies the function conmask() to toggle - * terminal input echo on (conmask("e")) and off (conmask("n")). But, - * since THEOS C RTL also contains a working non-echo getch() function, - * the echo toggles are not needed. - */ -#ifdef THEOS -# define echoff(f) -# define echon() -# define HAVE_WORKING_GETCH -#endif - -/* VMS has a single echo() function in ttyio.c to toggle terminal - * input echo on and off. - */ -#ifdef VMS -# define echoff(f) echo(0) -# define echon() echo(1) -# define getch() tt_getch() -# define FGETCH(f) tt_getch() - int echo OF((int)); - int tt_getch OF((void)); -#endif - -/* For all other systems, ttyio.c supplies the two functions Echoff() and - * Echon() for suppressing and (re)enabling console input echo. - */ -#ifndef echoff -# define echoff(f) Echoff(__G__ f) -# define echon() Echon(__G) - void Echoff OF((__GPRO__ int f)); - void Echon OF((__GPRO)); -#endif - -/* this stuff is used by MORE and also now by the ctrl-S code; fileio.c only */ -#if (defined(UNZIP) && !defined(FUNZIP)) -# ifdef HAVE_WORKING_GETCH -# define FGETCH(f) getch() -# endif -# ifndef FGETCH - /* default for all systems where no getch()-like function is available */ - int zgetch OF((__GPRO__ int f)); -# define FGETCH(f) zgetch(__G__ f) -# endif -#endif /* UNZIP && !FUNZIP */ - -#if (CRYPT && !defined(WINDLL)) - char *getp OF((__GPRO__ ZCONST char *m, char *p, int n)); -#endif - -#else /* !(CRYPT || (UNZIP && !FUNZIP)) */ - -/* - * No need for non-echo keyboard/console input; provide dummy definitions. - */ -#define echoff(f) -#define echon() - -#endif /* ?(CRYPT || (UNZIP && !FUNZIP)) */ - -#endif /* !__ttyio_h */ diff --git a/third_party/lua/lua.mk b/third_party/lua/lua.mk index 52934f9b5..2fc49188b 100644 --- a/third_party/lua/lua.mk +++ b/third_party/lua/lua.mk @@ -72,12 +72,12 @@ o/$(MODE)/third_party/lua/luac.com.dbg: \ o/$(MODE)/third_party/lua/lua.com: \ o/$(MODE)/third_party/lua/lua.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/third_party/lua/.lua/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/third_party/lua/.lua/.symtab o/$(MODE)/third_party/lua/lauxlib.o: \ diff --git a/third_party/make/make.mk b/third_party/make/make.mk index 6b78dc412..b759ab637 100644 --- a/third_party/make/make.mk +++ b/third_party/make/make.mk @@ -126,12 +126,12 @@ o/$(MODE)/third_party/make/hash.o: \ o/$(MODE)/third_party/make/make.com: \ o/$(MODE)/third_party/make/make.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/third_party/make/.make/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/third_party/make/.make/.symtab $(THIRD_PARTY_MAKE_OBJS): \ diff --git a/third_party/python/python.mk b/third_party/python/python.mk index a08da0d6d..0a75744bf 100644 --- a/third_party/python/python.mk +++ b/third_party/python/python.mk @@ -4192,12 +4192,12 @@ o/$(MODE)/third_party/python/python.com.dbg: \ o/$(MODE)/third_party/python/python.com: \ o/$(MODE)/third_party/python/python.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/third_party/python/.python/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/third_party/python/.python/.symtab ################################################################################ diff --git a/third_party/quickjs/quickjs.mk b/third_party/quickjs/quickjs.mk index 1b18b36c7..3fa14c00a 100644 --- a/third_party/quickjs/quickjs.mk +++ b/third_party/quickjs/quickjs.mk @@ -149,12 +149,12 @@ o/$(MODE)/third_party/quickjs/qjs.com.dbg: \ o/$(MODE)/third_party/quickjs/qjs.com: \ o/$(MODE)/third_party/quickjs/qjs.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/third_party/quickjs/.qjs/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/third_party/quickjs/.qjs/.symtab o/$(MODE)/third_party/quickjs/qjsc.com.dbg: \ @@ -204,8 +204,8 @@ o/$(MODE)/third_party/quickjs/quickjs.o: \ OVERRIDE_CPPFLAGS += \ -DSTACK_FRAME_UNLIMITED -o/$(MODE)/third_party/quickjs/call.o: QUOTA = -M1024m -C16 -o/$(MODE)/third_party/quickjs/quickjs.o: QUOTA = -M512m -C16 +o/$(MODE)/third_party/quickjs/call.o: QUOTA = -M1024m -C32 +o/$(MODE)/third_party/quickjs/quickjs.o: QUOTA = -M512m -C32 .PHONY: o/$(MODE)/third_party/quickjs o/$(MODE)/third_party/quickjs: \ diff --git a/third_party/sqlite3/sqlite3.mk b/third_party/sqlite3/sqlite3.mk index 31556776a..4094baec5 100644 --- a/third_party/sqlite3/sqlite3.mk +++ b/third_party/sqlite3/sqlite3.mk @@ -78,12 +78,12 @@ o/$(MODE)/third_party/sqlite3/sqlite3.com.dbg: \ o/$(MODE)/third_party/sqlite3/sqlite3.com: \ o/$(MODE)/third_party/sqlite3/sqlite3.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/third_party/sqlite3/.sqlite3/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/third_party/sqlite3/.sqlite3/.symtab $(THIRD_PARTY_SQLITE3_A): \ diff --git a/third_party/third_party.mk b/third_party/third_party.mk index 46f1afe44..57af3dcbe 100644 --- a/third_party/third_party.mk +++ b/third_party/third_party.mk @@ -10,7 +10,6 @@ o/$(MODE)/third_party: \ o/$(MODE)/third_party/dlmalloc \ o/$(MODE)/third_party/gdtoa \ o/$(MODE)/third_party/getopt \ - o/$(MODE)/third_party/infozip \ o/$(MODE)/third_party/libcxx \ o/$(MODE)/third_party/linenoise \ o/$(MODE)/third_party/lua \ @@ -26,4 +25,5 @@ o/$(MODE)/third_party: \ o/$(MODE)/third_party/sqlite3 \ o/$(MODE)/third_party/stb \ o/$(MODE)/third_party/xed \ + o/$(MODE)/third_party/zip \ o/$(MODE)/third_party/zlib diff --git a/third_party/infozip/zip/LICENSE b/third_party/zip/LICENSE similarity index 100% rename from third_party/infozip/zip/LICENSE rename to third_party/zip/LICENSE diff --git a/third_party/infozip/README.cosmo b/third_party/zip/README.cosmo similarity index 100% rename from third_party/infozip/README.cosmo rename to third_party/zip/README.cosmo diff --git a/third_party/infozip/zip/api.h b/third_party/zip/api.h similarity index 91% rename from third_party/infozip/zip/api.h rename to third_party/zip/api.h index 6c393b1c1..f607d4406 100644 --- a/third_party/infozip/zip/api.h +++ b/third_party/zip/api.h @@ -1,32 +1,11 @@ -/* clang-format off */ -/* - api.h - Zip 3 - - Copyright (c) 1990-2007 Info-ZIP. All rights reserved. - - See the accompanying file LICENSE, version 2007-Mar-4 or later - (the contents of which are also included in zip.h) for terms of use. - If, for some reason, all these files are missing, the Info-ZIP license - also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html -*/ -/* Only the Windows DLL is currently supported */ #ifndef _ZIPAPI_H #define _ZIPAPI_H - -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" +/* clang-format off */ #define MAXPATH 1024 #if defined(WINDLL) || defined(API) -/* Porting definations between Win 3.1x and Win32 */ -#ifdef WIN32 -# define far -# define _far -# define __far -# define near -# define _near -# define __near -#endif /*--------------------------------------------------------------------------- Prototypes for public Zip API (DLL) functions. diff --git a/third_party/infozip/zip/crc32.c b/third_party/zip/crc32.c similarity index 99% rename from third_party/infozip/zip/crc32.c rename to third_party/zip/crc32.c index 843da38a6..324a4642e 100644 --- a/third_party/infozip/zip/crc32.c +++ b/third_party/zip/crc32.c @@ -23,7 +23,7 @@ #define __CRC32_C /* identifies this source module */ #include "libc/nexgen32e/crc32.h" -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #if (!defined(USE_ZLIB) || defined(USE_OWN_CRCTAB)) @@ -31,7 +31,7 @@ # define ZCONST const #endif -#include "third_party/infozip/zip/crc32.h" +#include "third_party/zip/crc32.h" /* When only the table of precomputed CRC values is needed, only the basic system-independent table containing 256 entries is created; any support diff --git a/third_party/infozip/zip/crc32.h b/third_party/zip/crc32.h similarity index 96% rename from third_party/infozip/zip/crc32.h rename to third_party/zip/crc32.h index 84b8494b2..379a1b005 100644 --- a/third_party/infozip/zip/crc32.h +++ b/third_party/zip/crc32.h @@ -1,6 +1,6 @@ #ifndef __crc32_h #define __crc32_h -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" /* clang-format off */ #ifndef OF diff --git a/third_party/infozip/zip/crypt.c b/third_party/zip/crypt.c similarity index 98% rename from third_party/infozip/zip/crypt.c rename to third_party/zip/crypt.c index f0eb037bd..8ca9871fe 100644 --- a/third_party/infozip/zip/crypt.c +++ b/third_party/zip/crypt.c @@ -31,9 +31,9 @@ */ #define ZCRYPT_INTERNAL -#include "third_party/infozip/zip/zip.h" -#include "third_party/infozip/zip/crypt.h" -#include "third_party/infozip/zip/ttyio.h" +#include "third_party/zip/zip.h" +#include "third_party/zip/crypt.h" +#include "third_party/zip/ttyio.h" #include "libc/rand/rand.h" #if CRYPT @@ -76,7 +76,7 @@ as a fallback to allow successful compilation in "beta state" environments. */ -# include "libc/time/time.h" /* time() function supplies first part of crypt seed */ +#include "libc/time/time.h" /* time() function supplies first part of crypt seed */ /* "last resort" source for second part of crypt seed pattern */ # ifndef ZCR_SEED2 # define ZCR_SEED2 (unsigned)3141592654L /* use PI as default pattern */ @@ -108,7 +108,7 @@ # endif #endif -#include "third_party/infozip/zip/crc32.h" +#include "third_party/zip/crc32.h" #ifdef IZ_CRC_BE_OPTIMIZ local z_uint4 near crycrctab[256]; diff --git a/third_party/infozip/zip/crypt.h b/third_party/zip/crypt.h similarity index 76% rename from third_party/infozip/zip/crypt.h rename to third_party/zip/crypt.h index ab39e9679..a5ef3d825 100644 --- a/third_party/infozip/zip/crypt.h +++ b/third_party/zip/crypt.h @@ -1,30 +1,6 @@ -/* clang-format off */ -/* - Copyright (c) 1990-2007 Info-ZIP. All rights reserved. - - See the accompanying file LICENSE, version 2007-Mar-4 or later - (the contents of which are also included in zip.h) for terms of use. - If, for some reason, all these files are missing, the Info-ZIP license - also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html -*/ -/* - crypt.h (full version) by Info-ZIP. Last revised: [see CR_VERSION_DATE] - - The main encryption/decryption source code for Info-Zip software was - originally written in Europe. To the best of our knowledge, it can - be freely distributed in both source and object forms from any country, - including the USA under License Exception TSU of the U.S. Export - Administration Regulations (section 740.13(e)) of 6 June 2002. - - NOTE on copyright history: - Previous versions of this source package (up to version 2.8) were - not copyrighted and put in the public domain. If you cannot comply - with the Info-Zip LICENSE, you may want to look for one of those - public domain versions. - */ - -#ifndef __crypt_h /* don't include more than once */ +#ifndef __crypt_h /* don't include more than once */ #define __crypt_h +/* clang-format off */ #ifdef CRYPT # undef CRYPT diff --git a/third_party/infozip/zip/deflate.c b/third_party/zip/deflate.c similarity index 99% rename from third_party/infozip/zip/deflate.c rename to third_party/zip/deflate.c index c6b4b83f6..139ed048e 100644 --- a/third_party/infozip/zip/deflate.c +++ b/third_party/zip/deflate.c @@ -70,7 +70,7 @@ #define __DEFLATE_C -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #ifndef USE_ZLIB diff --git a/third_party/infozip/zip/fileio.c b/third_party/zip/fileio.c similarity index 99% rename from third_party/infozip/zip/fileio.c rename to third_party/zip/fileio.c index 92947dacb..771f2142b 100644 --- a/third_party/infozip/zip/fileio.c +++ b/third_party/zip/fileio.c @@ -14,18 +14,9 @@ */ #define __FILEIO_C -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #include "libc/calls/struct/stat.macros.h" -#include "third_party/infozip/zip/crc32.h" - -#ifdef MACOS -# include "helpers.h" -#endif - -#ifdef VMS -# include "vms/vms.h" -#endif /* def VMS */ - +#include "third_party/zip/crc32.h" #include "libc/fmt/fmt.h" #include "libc/alg/alg.h" #include "libc/stdio/temp.h" diff --git a/third_party/infozip/zip/globals.c b/third_party/zip/globals.c similarity index 99% rename from third_party/infozip/zip/globals.c rename to third_party/zip/globals.c index 5fb193a5c..8b6bbbf4b 100644 --- a/third_party/infozip/zip/globals.c +++ b/third_party/zip/globals.c @@ -19,7 +19,7 @@ #define UTIL /* do not declare the read_buf variable */ #endif -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" /* Handy place to build error messages */ diff --git a/third_party/infozip/zip/unix/osdep.h b/third_party/zip/osdep.h similarity index 95% rename from third_party/infozip/zip/unix/osdep.h rename to third_party/zip/osdep.h index 54fc3f3b0..3b554630f 100644 --- a/third_party/infozip/zip/unix/osdep.h +++ b/third_party/zip/osdep.h @@ -10,12 +10,6 @@ also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html */ -#ifdef NO_LARGE_FILE_SUPPORT -# ifdef LARGE_FILE_SUPPORT -# undef LARGE_FILE_SUPPORT -# endif -#endif - #ifdef LARGE_FILE_SUPPORT /* 64-bit Large File Support */ diff --git a/third_party/infozip/zip/revision.h b/third_party/zip/revision.h similarity index 100% rename from third_party/infozip/zip/revision.h rename to third_party/zip/revision.h diff --git a/third_party/infozip/zip/tailor.h b/third_party/zip/tailor.h similarity index 98% rename from third_party/infozip/zip/tailor.h rename to third_party/zip/tailor.h index 4a2a5a3fc..0f6c62af9 100644 --- a/third_party/infozip/zip/tailor.h +++ b/third_party/zip/tailor.h @@ -37,7 +37,7 @@ #endif #include "libc/str/str.h" -#include "third_party/infozip/zip/unix/osdep.h" +#include "third_party/zip/osdep.h" /* generic LARGE_FILE_SUPPORT defines @@ -149,7 +149,7 @@ #endif /* !NO_STDDEF_H */ #ifndef NO_STDLIB_H -# include "libc/mem/mem.h" +#include "libc/mem/mem.h" #endif /* !NO_STDLIB_H */ #ifndef NO_UNISTD_H @@ -165,11 +165,7 @@ #include "libc/sysv/consts/f.h" #endif /* !NO_FNCTL_H */ -#ifndef NO_STRING_H -# include "libc/str/str.h" -#else -# include "libc/str/str.h" -#endif /* NO_STRING_H */ +#include "libc/str/str.h" #ifdef NO_VOID # define void int @@ -262,9 +258,9 @@ IZ_IMP char *mktemp(); */ #ifdef UNICODE_SUPPORT # if defined( UNIX) || defined( VMS) - # include "libc/unicode/locale.h" +#include "libc/unicode/locale.h" # endif /* defined( UNIX) || defined( VMS) */ -# include "libc/str/str.h" +#include "libc/str/str.h" #endif /* def UNICODE_SUPPORT */ #ifdef _MBCS diff --git a/third_party/infozip/zip/timezone.c b/third_party/zip/timezone.c similarity index 99% rename from third_party/infozip/zip/timezone.c rename to third_party/zip/timezone.c index 54966dc98..92b29d3dd 100644 --- a/third_party/infozip/zip/timezone.c +++ b/third_party/zip/timezone.c @@ -38,8 +38,8 @@ #define __timezone_c -#include "third_party/infozip/zip/zip.h" -#include "third_party/infozip/zip/timezone.h" +#include "third_party/zip/zip.h" +#include "third_party/zip/timezone.h" #include "libc/str/str.h" #include "libc/errno.h" diff --git a/third_party/infozip/zip/timezone.h b/third_party/zip/timezone.h similarity index 100% rename from third_party/infozip/zip/timezone.h rename to third_party/zip/timezone.h diff --git a/third_party/infozip/zip/trees.c b/third_party/zip/trees.c similarity index 99% rename from third_party/infozip/zip/trees.c rename to third_party/zip/trees.c index f9df6b09e..406aa83d8 100644 --- a/third_party/infozip/zip/trees.c +++ b/third_party/zip/trees.c @@ -122,7 +122,7 @@ defines off_t and then while other files are using an 8-byte off_t this file gets a 4-byte off_t. Once zip.h sets the large file defines can then include ctype.h and get 8-byte off_t. 8/14/04 EG */ -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #include "libc/str/str.h" #ifndef USE_ZLIB diff --git a/third_party/infozip/zip/ttyio.c b/third_party/zip/ttyio.c similarity index 98% rename from third_party/infozip/zip/ttyio.c rename to third_party/zip/ttyio.c index 830bac9d5..1e1db867c 100644 --- a/third_party/infozip/zip/ttyio.c +++ b/third_party/zip/ttyio.c @@ -29,8 +29,8 @@ #define __TTYIO_C /* identifies this source module */ -#include "third_party/infozip/zip/zip.h" -#include "third_party/infozip/zip/crypt.h" +#include "third_party/zip/zip.h" +#include "third_party/zip/crypt.h" #if (CRYPT || (defined(UNZIP) && !defined(FUNZIP))) /* Non-echo console/keyboard input is needed for (en/de)cryption's password @@ -38,7 +38,7 @@ * (The corresponding #endif is found at the end of this module.) */ -#include "third_party/infozip/zip/ttyio.h" +#include "third_party/zip/ttyio.h" #ifndef PUTC # define PUTC putc @@ -108,12 +108,6 @@ # endif #endif -#if (defined(UNZIP) && !defined(FUNZIP) && defined(UNIX) && defined(MORE)) -# include -# define GOT_IOCTL_H - /* int ioctl OF((int, int, zvoid *)); GRR: may need for some systems */ -#endif - #ifndef HAVE_WORKING_GETCH /* include system support for switching of console echo */ # ifdef VMS diff --git a/third_party/zip/ttyio.h b/third_party/zip/ttyio.h new file mode 100644 index 000000000..333af6897 --- /dev/null +++ b/third_party/zip/ttyio.h @@ -0,0 +1,115 @@ +/* clang-format off */ +/* + ttyio.h - Zip 3 + + Copyright (c) 1990-2005 Info-ZIP. All rights reserved. + + See the accompanying file LICENSE, version 2005-Feb-10 or later + (the contents of which are also included in zip.h) for terms of use. + If, for some reason, all these files are missing, the Info-ZIP license + also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html +*/ +/* + ttyio.h + */ + +#ifndef __ttyio_h /* don't include more than once */ +#define __ttyio_h + +#ifndef __crypt_h +#include "third_party/zip/crypt.h" /* ensure that encryption header file has been seen */ +#endif + +#if (CRYPT || (defined(UNZIP) && !defined(FUNZIP))) +/* + * Non-echo keyboard/console input support is needed and enabled. + */ + +#ifndef __G /* UnZip only, for now (DLL stuff) */ +# define __G +# define __G__ +# define __GDEF +# define __GPRO void +# define __GPRO__ +#endif + +#ifndef ZCONST /* UnZip only (until have configure script like Zip) */ +# define ZCONST const +#endif + +#if (defined(MSDOS) || defined(OS2) || defined(WIN32)) +# ifndef DOS_OS2_W32 +# define DOS_OS2_W32 +# endif +#endif + +#if (defined(DOS_OS2_W32) || defined(__human68k__)) +# ifndef DOS_H68_OS2_W32 +# define DOS_H68_OS2_W32 +# endif +#endif + +#if (defined(DOS_OS2_W32) || defined(FLEXOS)) +# ifndef DOS_FLX_OS2_W32 +# define DOS_FLX_OS2_W32 +# endif +#endif + +#if (defined(DOS_H68_OS2_W32) || defined(FLEXOS)) +# ifndef DOS_FLX_H68_OS2_W32 +# define DOS_FLX_H68_OS2_W32 +# endif +#endif + +#if (defined(__ATHEOS__) || defined(__BEOS__) || defined(UNIX)) +# ifndef ATH_BEO_UNX +# define ATH_BEO_UNX +# endif +#endif + +#if (defined(VM_CMS) || defined(MVS)) +# ifndef CMS_MVS +# define CMS_MVS +# endif +#endif + + +/* Function prototypes */ + +/* For all other systems, ttyio.c supplies the two functions Echoff() and + * Echon() for suppressing and (re)enabling console input echo. + */ +#ifndef echoff +# define echoff(f) Echoff(__G__ f) +# define echon() Echon(__G) + void Echoff OF((__GPRO__ int f)); + void Echon OF((__GPRO)); +#endif + +/* this stuff is used by MORE and also now by the ctrl-S code; fileio.c only */ +#if (defined(UNZIP) && !defined(FUNZIP)) +# ifdef HAVE_WORKING_GETCH +# define FGETCH(f) getch() +# endif +# ifndef FGETCH + /* default for all systems where no getch()-like function is available */ + int zgetch OF((__GPRO__ int f)); +# define FGETCH(f) zgetch(__G__ f) +# endif +#endif /* UNZIP && !FUNZIP */ + +#if (CRYPT && !defined(WINDLL)) + char *getp OF((__GPRO__ ZCONST char *m, char *p, int n)); +#endif + +#else /* !(CRYPT || (UNZIP && !FUNZIP)) */ + +/* + * No need for non-echo keyboard/console input; provide dummy definitions. + */ +#define echoff(f) +#define echon() + +#endif /* ?(CRYPT || (UNZIP && !FUNZIP)) */ + +#endif /* !__ttyio_h */ diff --git a/third_party/infozip/zip/unix/unix.c b/third_party/zip/unix.c similarity index 99% rename from third_party/infozip/zip/unix/unix.c rename to third_party/zip/unix.c index 2d6da7198..7bf51a783 100644 --- a/third_party/infozip/zip/unix/unix.c +++ b/third_party/zip/unix.c @@ -10,7 +10,7 @@ also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html */ #include "libc/calls/struct/dirent.h" -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #ifndef UTIL /* the companion #endif is a bit of ways down ... */ diff --git a/third_party/infozip/zip/util.c b/third_party/zip/util.c similarity index 99% rename from third_party/infozip/zip/util.c rename to third_party/zip/util.c index dced5b8a4..50d978d11 100644 --- a/third_party/infozip/zip/util.c +++ b/third_party/zip/util.c @@ -14,22 +14,11 @@ */ #define __UTIL_C -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #include "libc/str/str.h" #include "libc/fmt/fmt.h" #include "libc/fmt/conv.h" -#ifdef MSDOS16 -# include -#endif - -#ifdef NO_MKTIME -# ifndef IZ_MKTIME_ONLY -# define IZ_MKTIME_ONLY /* only mktime() related code is pulled in */ -# endif -# include "timezone.c" -#endif - uch upper[256], lower[256]; /* Country-dependent case map table */ diff --git a/third_party/infozip/zip/zbz2err.c b/third_party/zip/zbz2err.c similarity index 78% rename from third_party/infozip/zip/zbz2err.c rename to third_party/zip/zbz2err.c index b459b5cfd..532c6b2b1 100644 --- a/third_party/infozip/zip/zbz2err.c +++ b/third_party/zip/zbz2err.c @@ -30,19 +30,9 @@ #define __ZBZ2ERR_C /* identifies this source module */ -#include "third_party/infozip/zip/zip.h" - -#ifdef BZIP2_SUPPORT -# ifdef BZIP2_USEBZIP2DIR -# include "bzip2/bzlib.h" -# else - /* If IZ_BZIP2 is defined as the location of the bzip2 files then - assume the location has been added to include path. For Unix - this is done by the configure script. */ - /* Also do not need path for bzip2 include if OS includes support - for bzip2 library. */ -# include "bzlib.h" -# endif +#include "libc/fmt/fmt.h" +#include "third_party/zip/zip.h" +#include "third_party/bzip2/bzlib.h" /**********************************/ /* Function bz_internal_error() */ @@ -58,5 +48,3 @@ void bz_internal_error(errcode) sprintf(errbuf, "fatal error (code %d) in bzip2 library", errcode); ziperr(ZE_LOGIC, errbuf); } /* end function bz_internal_error() */ - -#endif /* def BZIP2_SUPPORT */ diff --git a/third_party/infozip/zip/zip.c b/third_party/zip/zip.c similarity index 90% rename from third_party/infozip/zip/zip.c rename to third_party/zip/zip.c index e16c21938..10a74456a 100644 --- a/third_party/infozip/zip/zip.c +++ b/third_party/zip/zip.c @@ -14,70 +14,30 @@ */ #define __ZIP_C -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #include "libc/time/time.h" /* for tzset() declaration */ -#if defined(WIN32) || defined(WINDLL) -# define WIN32_LEAN_AND_MEAN -# include -#endif -#ifdef WINDLL -# include -# include "windll/windll.h" -#endif #define DEFCPYRT /* main module: enable copyright string defines! */ -#include "third_party/infozip/zip/revision.h" -#include "third_party/infozip/zip/crc32.h" -#include "third_party/infozip/zip/crypt.h" -#include "third_party/infozip/zip/ttyio.h" +#include "third_party/zip/revision.h" +#include "third_party/zip/crc32.h" +#include "third_party/zip/crypt.h" +#include "third_party/zip/ttyio.h" #include "libc/str/str.h" #include "libc/log/log.h" #include "libc/dce.h" #include "libc/calls/struct/sigaction.h" #include "libc/sysv/consts/sig.h" +#include "libc/calls/calls.h" +#include "libc/calls/calls.h" #include "libc/errno.h" -#ifdef VMS -# include -# include "vms/vmsmunch.h" -# include "vms/vms.h" -#endif - -#ifdef MACOS -# include "macglob.h" - extern MacZipGlobals MacZip; - extern int error_level; -#endif - -#if (defined(MSDOS) && !defined(__GO32__)) || defined(__human68k__) -# include -# if (!defined(P_WAIT) && defined(_P_WAIT)) -# define P_WAIT _P_WAIT -# endif -#endif - #include "libc/calls/calls.h" #include "libc/fmt/fmt.h" #include "libc/log/log.h" #include "libc/stdio/stdio.h" #include "libc/stdio/temp.h" - -#ifdef UNICODE_TEST -# ifdef WIN32 -# include -# endif -#endif - -#ifdef BZIP2_SUPPORT - /* If IZ_BZIP2 is defined as the location of the bzip2 files then - assume the location has been added to include path. For Unix - this is done by the configure script. */ - /* Also do not need path for bzip2 include if OS includes support - for bzip2 library. */ -# include "bzlib.h" -#endif +#include "third_party/bzip2/bzlib.h" #define MAXCOM 256 /* Maximum one-line comment size */ - /* Local option flags */ #ifndef DELETE #define DELETE 0 @@ -452,24 +412,14 @@ void error(h) ziperr(ZE_LOGIC, h); } -#if (!defined(MACOS) && !defined(WINDLL)) local void handler(s) int s; /* signal number (ignored) */ /* Upon getting a user interrupt, turn echo back on for tty and abort cleanly using ziperr(). */ { -#if defined(AMIGA) && defined(__SASC) - _abort(); -#else -#if !defined(MSDOS) && !defined(__human68k__) && !defined(RISCOS) - echon(); - putc('\n', mesg); -#endif /* !MSDOS */ -#endif /* AMIGA && __SASC */ ziperr(ZE_ABORT, "aborting"); s++; /* keep some compilers happy */ } -#endif /* !MACOS && !WINDLL */ void zipmessage_nl(a, nl) ZCONST char *a; /* message string to output */ @@ -696,6 +646,13 @@ local void help() } } +static const char *GetPagerPath(char path[PATH_MAX]) { + const char *s; + if ((s = commandv("less", path))) return s; + if ((s = commandv("more", path))) return s; + return 0; +} + #ifdef VMSCLI void help_extended() #else @@ -706,342 +663,351 @@ local void help_extended() extent i; /* counter for help array */ /* help array */ - static ZCONST char *text[] = { -"", -"Extended Help for Zip", -"", -"See the Zip Manual for more detailed help", -"", -"", -"Zip stores files in zip archives. The default action is to add or replace", -"zipfile entries.", -"", -"Basic command line:", -" zip options archive_name file file ...", -"", -"Some examples:", -" Add file.txt to z.zip (create z if needed): zip z file.txt", -" Zip all files in current dir: zip z *", -" Zip files in current dir and subdirs also: zip -r z .", -"", -"Basic modes:", -" External modes (selects files from file system):", -" add - add new files/update existing files in archive (default)", -" -u update - add new files/update existing files only if later date", -" -f freshen - update existing files only (no files added)", -" -FS filesync - update if date or size changed, delete if no OS match", -" Internal modes (selects entries in archive):", -" -d delete - delete files from archive (see below)", -" -U copy - select files in archive to copy (use with --out)", -"", -"Basic options:", -" -r recurse into directories (see Recursion below)", -" -m after archive created, delete original files (move into archive)", -" -j junk directory names (store just file names)", -" -q quiet operation", -" -v verbose operation (just \"zip -v\" shows version information)", -" -c prompt for one-line comment for each entry", -" -z prompt for comment for archive (end with just \".\" line or EOF)", -" -@ read names to zip from stdin (one path per line)", -" -o make zipfile as old as latest entry", -"", -"", -"Syntax:", -" The full command line syntax is:", -"", -" zip [-shortopts ...] [--longopt ...] [zipfile [path path ...]] [-xi list]", -"", -" Any number of short option and long option arguments are allowed", -" (within limits) as well as any number of path arguments for files", -" to zip up. If zipfile exists, the archive is read in. If zipfile", -" is \"-\", stream to stdout. If any path is \"-\", zip stdin.", -"", -"Options and Values:", -" For short options that take values, use -ovalue or -o value or -o=value", -" For long option values, use either --longoption=value or --longoption value", -" For example:", -" zip -ds 10 --temp-dir=path zipfile path1 path2 --exclude pattern pattern", -" Avoid -ovalue (no space between) to avoid confusion", -" In particular, be aware of 2-character options. For example:", -" -d -s is (delete, split size) while -ds is (dot size)", -" Usually better to break short options across multiple arguments by function", -" zip -r -dbdcds 10m -lilalf logfile archive input_directory -ll", -"", -" All args after just \"--\" arg are read verbatim as paths and not options.", -" zip zipfile path path ... -- verbatimpath verbatimpath ...", -" Use -nw to also disable wildcards, so paths are read literally:", -" zip zipfile -nw -- \"-leadingdashpath\" \"a[path].c\" \"path*withwildcard\"", -" You may still have to escape or quote arguments to avoid shell expansion", -"", -"Wildcards:", -" Internally zip supports the following wildcards:", -" ? (or %% or #, depending on OS) matches any single character", -" * matches any number of characters, including zero", -" [list] matches char in list (regex), can do range [ac-f], all but [!bf]", -" If port supports [], must escape [ as [[] or use -nw to turn off wildcards", -" For shells that expand wildcards, escape (\\* or \"*\") so zip can recurse", -" zip zipfile -r . -i \"*.h\"", -"", -" Normally * crosses dir bounds in path, e.g. 'a*b' can match 'ac/db'. If", -" -ws option used, * does not cross dir bounds but ** does", -"", -" For DOS and Windows, [list] is now disabled unless the new option", -" -RE enable [list] (regular expression) matching", -" is used to avoid problems with file paths containing \"[\" and \"]\":", -" zip files_ending_with_number -RE foo[0-9].c", -"", -"Include and Exclude:", -" -i pattern pattern ... include files that match a pattern", -" -x pattern pattern ... exclude files that match a pattern", -" Patterns are paths with optional wildcards and match paths as stored in", -" archive. Exclude and include lists end at next option, @, or end of line.", -" zip -x pattern pattern @ zipfile path path ...", -"", -"Case matching:", -" On most OS the case of patterns must match the case in the archive, unless", -" the -ic option is used.", -" -ic ignore case of archive entries", -" This option not available on case-sensitive file systems. On others, case", -" ignored when matching files on file system but matching against archive", -" entries remains case sensitive for modes -f (freshen), -U (archive copy),", -" and -d (delete) because archive paths are always case sensitive. With", -" -ic, all matching ignores case, but it's then possible multiple archive", -" entries that differ only in case will match.", -"", -"End Of Line Translation (text files only):", -" -l change CR or LF (depending on OS) line end to CR LF (Unix->Win)", -" -ll change CR LF to CR or LF (depending on OS) line end (Win->Unix)", -" If first buffer read from file contains binary the translation is skipped", -"", -"Recursion:", -" -r recurse paths, include files in subdirs: zip -r a path path ...", -" -R recurse current dir and match patterns: zip -R a ptn ptn ...", -" Use -i and -x with either to include or exclude paths", -" Path root in archive starts at current dir, so if /a/b/c/file and", -" current dir is /a/b, 'zip -r archive .' puts c/file in archive", -"", -"Date filtering:", -" -t date exclude before (include files modified on this date and later)", -" -tt date include before (include files modified before date)", -" Can use both at same time to set a date range", -" Dates are mmddyyyy or yyyy-mm-dd", -"", -"Deletion, File Sync:", -" -d delete files", -" Delete archive entries matching internal archive paths in list", -" zip archive -d pattern pattern ...", -" Can use -t and -tt to select files in archive, but NOT -x or -i, so", -" zip archive -d \"*\" -t 2005-12-27", -" deletes all files from archive.zip with date of 27 Dec 2005 and later", -" Note the * (escape as \"*\" on Unix) to select all files in archive", -"", -" -FS file sync", -" Similar to update, but files updated if date or size of entry does not", -" match file on OS. Also deletes entry from archive if no matching file", -" on OS.", -" zip archive_to_update -FS -r dir_used_before", -" Result generally same as creating new archive, but unchanged entries", -" are copied instead of being read and compressed so can be faster.", -" WARNING: -FS deletes entries so make backup copy of archive first", -"", -"Compression:", -" -0 store files (no compression)", -" -1 to -9 compress fastest to compress best (default is 6)", -" -Z cm set compression method to cm:", -" store - store without compression, same as option -0", -" deflate - original zip deflate, same as -1 to -9 (default)", -" if bzip2 is enabled:", -" bzip2 - use bzip2 compression (need modern unzip)", -"", -"Encryption:", -" -e use standard (weak) PKZip 2.0 encryption, prompt for password", -" -P pswd use standard encryption, password is pswd", -"", -"Splits (archives created as a set of split files):", -" -s ssize create split archive with splits of size ssize, where ssize nm", -" n number and m multiplier (kmgt, default m), 100k -> 100 kB", -" -sp pause after each split closed to allow changing disks", -" WARNING: Archives created with -sp use data descriptors and should", -" work with most unzips but may not work with some", -" -sb ring bell when pause", -" -sv be verbose about creating splits", -" Split archives CANNOT be updated, but see --out and Copy Mode below", -"", -"Using --out (output to new archive):", -" --out oa output to new archive oa", -" Instead of updating input archive, create new output archive oa.", -" Result is same as without --out but in new archive. Input archive", -" unchanged.", -" WARNING: --out ALWAYS overwrites any existing output file", -" For example, to create new_archive like old_archive but add newfile1", -" and newfile2:", -" zip old_archive newfile1 newfile2 --out new_archive", -" Cannot update split archive, so use --out to out new archive:", -" zip in_split_archive newfile1 newfile2 --out out_split_archive", -" If input is split, output will default to same split size", -" Use -s=0 or -s- to turn off splitting to convert split to single file:", -" zip in_split_archive -s 0 --out out_single_file_archive", -" WARNING: If overwriting old split archive but need less splits,", -" old splits not overwritten are not needed but remain", -"", -"Copy Mode (copying from archive to archive):", -" -U (also --copy) select entries in archive to copy (reverse delete)", -" Copy Mode copies entries from old to new archive with --out and is used by", -" zip when either no input files on command line or -U (--copy) used.", -" zip inarchive --copy pattern pattern ... --out outarchive", -" To copy only files matching *.c into new archive, excluding foo.c:", -" zip old_archive --copy \"*.c\" --out new_archive -x foo.c", -" If no input files and --out, copy all entries in old archive:", -" zip old_archive --out new_archive", -"", -"Streaming and FIFOs:", -" prog1 | zip -ll z - zip output of prog1 to zipfile z, converting CR LF", -" zip - -R \"*.c\" | prog2 zip *.c files in current dir and stream to prog2 ", -" prog1 | zip | prog2 zip in pipe with no in or out acts like zip - -", -" If Zip is Zip64 enabled, streaming stdin creates Zip64 archives by default", -" that need PKZip 4.5 unzipper like UnZip 6.0", -" WARNING: Some archives created with streaming use data descriptors and", -" should work with most unzips but may not work with some", -" Can use -fz- to turn off Zip64 if input not large (< 4 GB):", -" prog_with_small_output | zip archive -fz-", -"", -" Zip now can read Unix FIFO (named pipes). Off by default to prevent zip", -" from stopping unexpectedly on unfed pipe, use -FI to enable:", -" zip -FI archive fifo", -"", -"Dots, counts:", -" -db display running count of bytes processed and bytes to go", -" (uncompressed size, except delete and copy show stored size)", -" -dc display running count of entries done and entries to go", -" -dd display dots every 10 MB (or dot size) while processing files", -" -dg display dots globally for archive instead of for each file", -" zip -qdgds 10m will turn off most output except dots every 10 MB", -" -ds siz each dot is siz processed where siz is nm as splits (0 no dots)", -" -du display original uncompressed size for each entry as added", -" -dv display volume (disk) number in format in_disk>out_disk", -" Dot size is approximate, especially for dot sizes less than 1 MB", -" Dot options don't apply to Scanning files dots (dot/2sec) (-q turns off)", -"", -"Logging:", -" -lf path open file at path as logfile (overwrite existing file)", -" -la append to existing logfile", -" -li include info messages (default just warnings and errors)", -"", -"Testing archives:", -" -T test completed temp archive with unzip before updating archive", -" -TT cmd use command cmd instead of 'unzip -tqq' to test archive", -" On Unix, to use unzip in current directory, could use:", -" zip archive file1 file2 -T -TT \"./unzip -tqq\"", -" In cmd, {} replaced by temp archive path, else temp appended.", -" The return code is checked for success (0 on Unix)", -"", -"Fixing archives:", -" -F attempt to fix a mostly intact archive (try this first)", -" -FF try to salvage what can (may get more but less reliable)", -" Fix options copy entries from potentially bad archive to new archive.", -" -F tries to read archive normally and copy only intact entries, while", -" -FF tries to salvage what can and may result in incomplete entries.", -" Must use --out option to specify output archive:", -" zip -F bad.zip --out fixed.zip", -" Use -v (verbose) with -FF to see details:", -" zip reallybad.zip -FF -v --out fixed.zip", -" Currently neither option fixes bad entries, as from text mode ftp get.", -"", -"Difference mode:", -" -DF (also --dif) only include files that have changed or are", -" new as compared to the input archive", -" Difference mode can be used to create incremental backups. For example:", -" zip --dif full_backup.zip -r somedir --out diff.zip", -" will store all new files, as well as any files in full_backup.zip where", -" either file time or size have changed from that in full_backup.zip,", -" in new diff.zip. Output archive not excluded automatically if exists,", -" so either use -x to exclude it or put outside what is being zipped.", -"", -"DOS Archive bit (Windows only):", -" -AS include only files with the DOS Archive bit set", -" -AC after archive created, clear archive bit of included files", -" WARNING: Once the archive bits are cleared they are cleared", -" Use -T to test the archive before the bits are cleared", -" Can also use -sf to save file list before zipping files", -"", -"Show files:", -" -sf show files to operate on and exit (-sf- logfile only)", -" -su as -sf but show escaped UTF-8 Unicode names also if exist", -" -sU as -sf but show escaped UTF-8 Unicode names instead", -" Any character not in the current locale is escaped as #Uxxxx, where x", -" is hex digit, if 16-bit code is sufficient, or #Lxxxxxx if 24-bits", -" are needed. If add -UN=e, Zip escapes all non-ASCII characters.", -"", -"Unicode:", -" If compiled with Unicode support, Zip stores UTF-8 path of entries.", -" This is backward compatible. Unicode paths allow better conversion", -" of entry names between different character sets.", -"", -" New Unicode extra field includes checksum to verify Unicode path", -" goes with standard path for that entry (as utilities like ZipNote", -" can rename entries). If these do not match, use below options to", -" set what Zip does:", -" -UN=Quit - if mismatch, exit with error", -" -UN=Warn - if mismatch, warn, ignore UTF-8 (default)", -" -UN=Ignore - if mismatch, quietly ignore UTF-8", -" -UN=No - ignore any UTF-8 paths, use standard paths for all", -" An exception to -UN=N are entries with new UTF-8 bit set (instead", -" of using extra fields). These are always handled as Unicode.", -"", -" Normally Zip escapes all chars outside current char set, but leaves", -" as is supported chars, which may not be OK in path names. -UN=Escape", -" escapes any character not ASCII:", -" zip -sU -UN=e archive", -" Can use either normal path or escaped Unicode path on command line", -" to match files in archive.", -"", -" Zip now stores UTF-8 in entry path and comment fields on systems", -" where UTF-8 char set is default, such as most modern Unix, and", -" and on other systems in new extra fields with escaped versions in", -" entry path and comment fields for backward compatibility.", -" Option -UN=UTF8 will force storing UTF-8 in entry path and comment", -" fields:", -" -UN=UTF8 - store UTF-8 in entry path and comment fields", -" This option can be useful for multi-byte char sets on Windows where", -" escaped paths and comments can be too long to be valid as the UTF-8", -" versions tend to be shorter.", -"", -" Only UTF-8 comments on UTF-8 native systems supported. UTF-8 comments", -" for other systems planned in next release.", -"", -"Self extractor:", -" -A Adjust offsets - a self extractor is created by prepending", -" the extractor executable to archive, but internal offsets", -" are then off. Use -A to fix offsets.", -" -J Junk sfx - removes prepended extractor executable from", -" self extractor, leaving a plain zip archive.", -"", -"More option highlights (see manual for additional options and details):", -" -b dir when creating or updating archive, create the temp archive in", -" dir, which allows using seekable temp file when writing to a", -" write once CD, such archives compatible with more unzips", -" (could require additional file copy if on another device)", -" -MM input patterns must match at least one file and matched files", -" must be readable or exit with OPEN error and abort archive", -" (without -MM, both are warnings only, and if unreadable files", -" are skipped OPEN error (18) returned after archive created)", -" -nw no wildcards (wildcards are like any other character)", -" -sc show command line arguments as processed and exit", -" -sd show debugging as Zip does each step", -" -so show all available options on this system", -" -X default=strip old extra fields, -X- keep old, -X strip most", -" -ws wildcards don't span directory boundaries in paths", -"" - }; + const char *text = "\n\ +Extended Help for Zip\n\ +\n\ +See the Zip Manual for more detailed help\n\ +\n\ +\n\ +Zip stores files in zip archives. The default action is to add or replace\n\ +zipfile entries.\n\ +\n\ +Basic command line:\n\ + zip options archive_name file file ...\n\ +\n\ +Some examples:\n\ + Add file.txt to z.zip (create z if needed): zip z file.txt\n\ + Zip all files in current dir: zip z *\n\ + Zip files in current dir and subdirs also: zip -r z .\n\ +\n\ +Basic modes:\n\ + External modes (selects files from file system):\n\ + add - add new files/update existing files in archive (default)\n\ + -u update - add new files/update existing files only if later date\n\ + -f freshen - update existing files only (no files added)\n\ + -FS filesync - update if date or size changed, delete if no OS match\n\ + Internal modes (selects entries in archive):\n\ + -d delete - delete files from archive (see below)\n\ + -U copy - select files in archive to copy (use with --out)\n\ +\n\ +Basic options:\n\ + -r recurse into directories (see Recursion below)\n\ + -m after archive created, delete original files (move into archive)\n\ + -j junk directory names (store just file names)\n\ + -q quiet operation\n\ + -v verbose operation (just \"zip -v\" shows version information)\n\ + -c prompt for one-line comment for each entry\n\ + -z prompt for comment for archive (end with just \".\" line or EOF)\n\ + -@ read names to zip from stdin (one path per line)\n\ + -o make zipfile as old as latest entry\n\ +\n\ +\n\ +Syntax:\n\ + The full command line syntax is:\n\ +\n\ + zip [-shortopts ...] [--longopt ...] [zipfile [path path ...]] [-xi list]\n\ +\n\ + Any number of short option and long option arguments are allowed\n\ + (within limits) as well as any number of path arguments for files\n\ + to zip up. If zipfile exists, the archive is read in. If zipfile\n\ + is \"-\", stream to stdout. If any path is \"-\", zip stdin.\n\ +\n\ +Options and Values:\n\ + For short options that take values, use -ovalue or -o value or -o=value\n\ + For long option values, use either --longoption=value or --longoption value\n\ + For example:\n\ + zip -ds 10 --temp-dir=path zipfile path1 path2 --exclude pattern pattern\n\ + Avoid -ovalue (no space between) to avoid confusion\n\ + In particular, be aware of 2-character options. For example:\n\ + -d -s is (delete, split size) while -ds is (dot size)\n\ + Usually better to break short options across multiple arguments by function\n\ + zip -r -dbdcds 10m -lilalf logfile archive input_directory -ll\n\ +\n\ + All args after just \"--\" arg are read verbatim as paths and not options.\n\ + zip zipfile path path ... -- verbatimpath verbatimpath ...\n\ + Use -nw to also disable wildcards, so paths are read literally:\n\ + zip zipfile -nw -- \"-leadingdashpath\" \"a[path].c\" \"path*withwildcard\"\n\ + You may still have to escape or quote arguments to avoid shell expansion\n\ +\n\ +Wildcards:\n\ + Internally zip supports the following wildcards:\n\ + ? (or %% or #, depending on OS) matches any single character\n\ + * matches any number of characters, including zero\n\ + [list] matches char in list (regex), can do range [ac-f], all but [!bf]\n\ + If port supports [], must escape [ as [[] or use -nw to turn off wildcards\n\ + For shells that expand wildcards, escape (\\* or \"*\") so zip can recurse\n\ + zip zipfile -r . -i \"*.h\"\n\ +\n\ + Normally * crosses dir bounds in path, e.g. 'a*b' can match 'ac/db'. If\n\ + -ws option used, * does not cross dir bounds but ** does\n\ +\n\ + For DOS and Windows, [list] is now disabled unless the new option\n\ + -RE enable [list] (regular expression) matching\n\ + is used to avoid problems with file paths containing \"[\" and \"]\":\n\ + zip files_ending_with_number -RE foo[0-9].c\n\ +\n\ +Include and Exclude:\n\ + -i pattern pattern ... include files that match a pattern\n\ + -x pattern pattern ... exclude files that match a pattern\n\ + Patterns are paths with optional wildcards and match paths as stored in\n\ + archive. Exclude and include lists end at next option, @, or end of line.\n\ + zip -x pattern pattern @ zipfile path path ...\n\ +\n\ +Case matching:\n\ + On most OS the case of patterns must match the case in the archive, unless\n\ + the -ic option is used.\n\ + -ic ignore case of archive entries\n\ + This option not available on case-sensitive file systems. On others, case\n\ + ignored when matching files on file system but matching against archive\n\ + entries remains case sensitive for modes -f (freshen), -U (archive copy),\n\ + and -d (delete) because archive paths are always case sensitive. With\n\ + -ic, all matching ignores case, but it's then possible multiple archive\n\ + entries that differ only in case will match.\n\ +\n\ +End Of Line Translation (text files only):\n\ + -l change CR or LF (depending on OS) line end to CR LF (Unix->Win)\n\ + -ll change CR LF to CR or LF (depending on OS) line end (Win->Unix)\n\ + If first buffer read from file contains binary the translation is skipped\n\ +\n\ +Recursion:\n\ + -r recurse paths, include files in subdirs: zip -r a path path ...\n\ + -R recurse current dir and match patterns: zip -R a ptn ptn ...\n\ + Use -i and -x with either to include or exclude paths\n\ + Path root in archive starts at current dir, so if /a/b/c/file and\n\ + current dir is /a/b, 'zip -r archive .' puts c/file in archive\n\ +\n\ +Date filtering:\n\ + -t date exclude before (include files modified on this date and later)\n\ + -tt date include before (include files modified before date)\n\ + Can use both at same time to set a date range\n\ + Dates are mmddyyyy or yyyy-mm-dd\n\ +\n\ +Deletion, File Sync:\n\ + -d delete files\n\ + Delete archive entries matching internal archive paths in list\n\ + zip archive -d pattern pattern ...\n\ + Can use -t and -tt to select files in archive, but NOT -x or -i, so\n\ + zip archive -d \"*\" -t 2005-12-27\n\ + deletes all files from archive.zip with date of 27 Dec 2005 and later\n\ + Note the * (escape as \"*\" on Unix) to select all files in archive\n\ +\n\ + -FS file sync\n\ + Similar to update, but files updated if date or size of entry does not\n\ + match file on OS. Also deletes entry from archive if no matching file\n\ + on OS.\n\ + zip archive_to_update -FS -r dir_used_before\n\ + Result generally same as creating new archive, but unchanged entries\n\ + are copied instead of being read and compressed so can be faster.\n\ + WARNING: -FS deletes entries so make backup copy of archive first\n\ +\n\ +Compression:\n\ + -0 store files (no compression)\n\ + -1 to -9 compress fastest to compress best (default is 6)\n\ + -Z cm set compression method to cm:\n\ + store - store without compression, same as option -0\n\ + deflate - original zip deflate, same as -1 to -9 (default)\n\ + bzip2 - use bzip2 compression (need modern unzip)\n\ +\n\ +Encryption:\n\ + -e use standard (weak) PKZip 2.0 encryption, prompt for password\n\ + -P pswd use standard encryption, password is pswd\n\ +\n\ +Splits (archives created as a set of split files):\n\ + -s ssize create split archive with splits of size ssize, where ssize nm\n\ + n number and m multiplier (kmgt, default m), 100k -> 100 kB\n\ + -sp pause after each split closed to allow changing disks\n\ + WARNING: Archives created with -sp use data descriptors and should\n\ + work with most unzips but may not work with some\n\ + -sb ring bell when pause\n\ + -sv be verbose about creating splits\n\ + Split archives CANNOT be updated, but see --out and Copy Mode below\n\ +\n\ +Using --out (output to new archive):\n\ + --out oa output to new archive oa\n\ + Instead of updating input archive, create new output archive oa.\n\ + Result is same as without --out but in new archive. Input archive\n\ + unchanged.\n\ + WARNING: --out ALWAYS overwrites any existing output file\n\ + For example, to create new_archive like old_archive but add newfile1\n\ + and newfile2:\n\ + zip old_archive newfile1 newfile2 --out new_archive\n\ + Cannot update split archive, so use --out to out new archive:\n\ + zip in_split_archive newfile1 newfile2 --out out_split_archive\n\ + If input is split, output will default to same split size\n\ + Use -s=0 or -s- to turn off splitting to convert split to single file:\n\ + zip in_split_archive -s 0 --out out_single_file_archive\n\ + WARNING: If overwriting old split archive but need less splits,\n\ + old splits not overwritten are not needed but remain\n\ +\n\ +Copy Mode (copying from archive to archive):\n\ + -U (also --copy) select entries in archive to copy (reverse delete)\n\ + Copy Mode copies entries from old to new archive with --out and is used by\n\ + zip when either no input files on command line or -U (--copy) used.\n\ + zip inarchive --copy pattern pattern ... --out outarchive\n\ + To copy only files matching *.c into new archive, excluding foo.c:\n\ + zip old_archive --copy \"*.c\" --out new_archive -x foo.c\n\ + If no input files and --out, copy all entries in old archive:\n\ + zip old_archive --out new_archive\n\ +\n\ +Streaming and FIFOs:\n\ + prog1 | zip -ll z - zip output of prog1 to zipfile z, converting CR LF\n\ + zip - -R \"*.c\" | prog2 zip *.c files in current dir and stream to prog2 \n\ + prog1 | zip | prog2 zip in pipe with no in or out acts like zip - -\n\ + If Zip is Zip64 enabled, streaming stdin creates Zip64 archives by default\n\ + that need PKZip 4.5 unzipper like UnZip 6.0\n\ + WARNING: Some archives created with streaming use data descriptors and\n\ + should work with most unzips but may not work with some\n\ + Can use -fz- to turn off Zip64 if input not large (< 4 GB):\n\ + prog_with_small_output | zip archive -fz-\n\ +\n\ + Zip now can read Unix FIFO (named pipes). Off by default to prevent zip\n\ + from stopping unexpectedly on unfed pipe, use -FI to enable:\n\ + zip -FI archive fifo\n\ +\n\ +Dots, counts:\n\ + -db display running count of bytes processed and bytes to go\n\ + (uncompressed size, except delete and copy show stored size)\n\ + -dc display running count of entries done and entries to go\n\ + -dd display dots every 10 MB (or dot size) while processing files\n\ + -dg display dots globally for archive instead of for each file\n\ + zip -qdgds 10m will turn off most output except dots every 10 MB\n\ + -ds siz each dot is siz processed where siz is nm as splits (0 no dots)\n\ + -du display original uncompressed size for each entry as added\n\ + -dv display volume (disk) number in format in_disk>out_disk\n\ + Dot size is approximate, especially for dot sizes less than 1 MB\n\ + Dot options don't apply to Scanning files dots (dot/2sec) (-q turns off)\n\ +\n\ +Logging:\n\ + -lf path open file at path as logfile (overwrite existing file)\n\ + -la append to existing logfile\n\ + -li include info messages (default just warnings and errors)\n\ +\n\ +Testing archives:\n\ + -T test completed temp archive with unzip before updating archive\n\ + -TT cmd use command cmd instead of 'unzip -tqq' to test archive\n\ + On Unix, to use unzip in current directory, could use:\n\ + zip archive file1 file2 -T -TT \"./unzip -tqq\"\n\ + In cmd, {} replaced by temp archive path, else temp appended.\n\ + The return code is checked for success (0 on Unix)\n\ +\n\ +Fixing archives:\n\ + -F attempt to fix a mostly intact archive (try this first)\n\ + -FF try to salvage what can (may get more but less reliable)\n\ + Fix options copy entries from potentially bad archive to new archive.\n\ + -F tries to read archive normally and copy only intact entries, while\n\ + -FF tries to salvage what can and may result in incomplete entries.\n\ + Must use --out option to specify output archive:\n\ + zip -F bad.zip --out fixed.zip\n\ + Use -v (verbose) with -FF to see details:\n\ + zip reallybad.zip -FF -v --out fixed.zip\n\ + Currently neither option fixes bad entries, as from text mode ftp get.\n\ +\n\ +Difference mode:\n\ + -DF (also --dif) only include files that have changed or are\n\ + new as compared to the input archive\n\ + Difference mode can be used to create incremental backups. For example:\n\ + zip --dif full_backup.zip -r somedir --out diff.zip\n\ + will store all new files, as well as any files in full_backup.zip where\n\ + either file time or size have changed from that in full_backup.zip,\n\ + in new diff.zip. Output archive not excluded automatically if exists,\n\ + so either use -x to exclude it or put outside what is being zipped.\n\ +\n\ +DOS Archive bit (Windows only):\n\ + -AS include only files with the DOS Archive bit set\n\ + -AC after archive created, clear archive bit of included files\n\ + WARNING: Once the archive bits are cleared they are cleared\n\ + Use -T to test the archive before the bits are cleared\n\ + Can also use -sf to save file list before zipping files\n\ +\n\ +Show files:\n\ + -sf show files to operate on and exit (-sf- logfile only)\n\ + -su as -sf but show escaped UTF-8 Unicode names also if exist\n\ + -sU as -sf but show escaped UTF-8 Unicode names instead\n\ + Any character not in the current locale is escaped as #Uxxxx, where x\n\ + is hex digit, if 16-bit code is sufficient, or #Lxxxxxx if 24-bits\n\ + are needed. If add -UN=e, Zip escapes all non-ASCII characters.\n\ +\n\ +Unicode:\n\ + If compiled with Unicode support, Zip stores UTF-8 path of entries.\n\ + This is backward compatible. Unicode paths allow better conversion\n\ + of entry names between different character sets.\n\ +\n\ + New Unicode extra field includes checksum to verify Unicode path\n\ + goes with standard path for that entry (as utilities like ZipNote\n\ + can rename entries). If these do not match, use below options to\n\ + set what Zip does:\n\ + -UN=Quit - if mismatch, exit with error\n\ + -UN=Warn - if mismatch, warn, ignore UTF-8 (default)\n\ + -UN=Ignore - if mismatch, quietly ignore UTF-8\n\ + -UN=No - ignore any UTF-8 paths, use standard paths for all\n\ + An exception to -UN=N are entries with new UTF-8 bit set (instead\n\ + of using extra fields). These are always handled as Unicode.\n\ +\n\ + Normally Zip escapes all chars outside current char set, but leaves\n\ + as is supported chars, which may not be OK in path names. -UN=Escape\n\ + escapes any character not ASCII:\n\ + zip -sU -UN=e archive\n\ + Can use either normal path or escaped Unicode path on command line\n\ + to match files in archive.\n\ +\n\ + Zip now stores UTF-8 in entry path and comment fields on systems\n\ + where UTF-8 char set is default, such as most modern Unix, and\n\ + and on other systems in new extra fields with escaped versions in\n\ + entry path and comment fields for backward compatibility.\n\ + Option -UN=UTF8 will force storing UTF-8 in entry path and comment\n\ + fields:\n\ + -UN=UTF8 - store UTF-8 in entry path and comment fields\n\ + This option can be useful for multi-byte char sets on Windows where\n\ + escaped paths and comments can be too long to be valid as the UTF-8\n\ + versions tend to be shorter.\n\ +\n\ + Only UTF-8 comments on UTF-8 native systems supported. UTF-8 comments\n\ + for other systems planned in next release.\n\ +\n\ +Self extractor:\n\ + -A Adjust offsets - a self extractor is created by prepending\n\ + the extractor executable to archive, but internal offsets\n\ + are then off. Use -A to fix offsets.\n\ + -J Junk sfx - removes prepended extractor executable from\n\ + self extractor, leaving a plain zip archive.\n\ +\n\ +More option highlights (see manual for additional options and details):\n\ + -b dir when creating or updating archive, create the temp archive in\n\ + dir, which allows using seekable temp file when writing to a\n\ + write once CD, such archives compatible with more unzips\n\ + (could require additional file copy if on another device)\n\ + -MM input patterns must match at least one file and matched files\n\ + must be readable or exit with OPEN error and abort archive\n\ + (without -MM, both are warnings only, and if unreadable files\n\ + are skipped OPEN error (18) returned after archive created)\n\ + -nw no wildcards (wildcards are like any other character)\n\ + -sc show command line arguments as processed and exit\n\ + -sd show debugging as Zip does each step\n\ + -so show all available options on this system\n\ + -X default=strip old extra fields, -X- keep old, -X strip most\n\ + -ws wildcards don't span directory boundaries in paths\n\ +"; - for (i = 0; i < sizeof(text)/sizeof(char *); i++) - { - printf(text[i]); - putchar('\n'); + int pip[2]; + char *args[2] = {0}; + char pathbuf[PATH_MAX]; + if (isatty(0) && isatty(1) && (args[0] = GetPagerPath(pathbuf))) { + sigaction(SIGPIPE, &(struct sigaction){.sa_handler = SIG_IGN}, 0); + close(0); + pipe(pip); + if (!fork()) { + close(pip[1]); + execv(args[0], args); + _Exit(127); + } + close(0); + write(pip[1], text, strlen(text)); + close(pip[1]); + wait(0); + } else { + fputs(text, stdout); } -#ifdef DOS - check_for_windows("Zip"); -#endif + exit(0); } /* @@ -2195,8 +2161,6 @@ char **argv; /* command line tokens */ char **args = NULL; /* could be wide argv */ - if (!IsTiny()) ShowCrashReports(); - #ifdef THEOS /* the argument expansion from the standard library is full of bugs */ /* use mine instead */ @@ -2607,6 +2571,8 @@ char **argv; /* command line tokens */ NLMsignals(); #endif + if (!IsTiny()) ShowCrashReports(); + #if defined(UNICODE_SUPPORT) && defined(WIN32) /* check if this Win32 OS has support for wide character calls */ @@ -3662,14 +3628,6 @@ char **argv; /* command line tokens */ filterlist_to_patterns(); } -#if (defined(MSDOS) || defined(OS2)) && !defined(WIN32) - if ((kk == 3 || kk == 4) && volume_label == 1) { - /* read volume label */ - PROCNAME(NULL); - kk = 4; - } -#endif - if (have_out && kk == 3) { copy_only = 1; action = ARCHIVE; diff --git a/third_party/infozip/zip/zip.h b/third_party/zip/zip.h similarity index 99% rename from third_party/infozip/zip/zip.h rename to third_party/zip/zip.h index ba7743b1c..81562277d 100644 --- a/third_party/infozip/zip/zip.h +++ b/third_party/zip/zip.h @@ -86,11 +86,7 @@ typedef unsigned short ush; /* unsigned 16-bit value */ typedef unsigned long ulg; /* unsigned 32-bit value */ /* Set up portability */ -#include "third_party/infozip/zip/tailor.h" - -#ifdef USE_ZLIB -# include "third_party/zlib/zlib.h" -#endif +#include "third_party/zip/tailor.h" /* In the utilities, the crc32() function is only used for UNICODE_SUPPORT. */ #if defined(UTIL) && !defined(UNICODE_SUPPORT) @@ -278,7 +274,7 @@ struct plist { #define ZP_PW_VERIFY 1 /* request for reentering password */ /* Error return codes and PERR macro */ -#include "third_party/infozip/zip/ziperr.h" +#include "third_party/zip/ziperr.h" #if 0 /* Optimization: use the (const) result of crc32(0L,NULL,0) */ # define CRCVAL_INITIAL crc32(0L, (uch *)NULL, 0) @@ -878,7 +874,7 @@ void bi_init OF((char *, unsigned int, int)); /*--------------------------------------------------------------------------- Prototypes for public Zip API (DLL) functions. ---------------------------------------------------------------------------*/ -#include "third_party/infozip/zip/api.h" +#include "third_party/zip/api.h" #endif /* WINDLL || DLL_ZIPAPI */ diff --git a/third_party/zip/zip.mk b/third_party/zip/zip.mk new file mode 100644 index 000000000..c89f659db --- /dev/null +++ b/third_party/zip/zip.mk @@ -0,0 +1,189 @@ +#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐ +#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘ + +PKGS += THIRD_PARTY_ZIP + +THIRD_PARTY_ZIP_FILES := $(wildcard third_party/zip/*) +THIRD_PARTY_ZIP_SRCS = $(filter %.c,$(THIRD_PARTY_ZIP_FILES)) +THIRD_PARTY_ZIP_HDRS = $(filter %.h,$(THIRD_PARTY_ZIP_FILES)) +THIRD_PARTY_ZIP_INCS = $(filter %.inc,$(THIRD_PARTY_ZIP_FILES)) + +THIRD_PARTY_ZIP_COMS = \ + o/$(MODE)/third_party/zip/zip.com \ + o/$(MODE)/third_party/zip/zipsplit.com \ + o/$(MODE)/third_party/zip/zipnote.com \ + o/$(MODE)/third_party/zip/zipcloak.com + +THIRD_PARTY_ZIP_BINS = \ + $(THIRD_PARTY_ZIP_COMS) \ + $(THIRD_PARTY_ZIP_COMS:%=%.dbg) + +THIRD_PARTY_ZIP_CHECKS = \ + o/$(MODE)/third_party/zip/zip.pkg + +THIRD_PARTY_ZIP_OBJS = $(sort \ + $(THIRD_PARTY_ZIP_ZIP_OBJS) \ + $(THIRD_PARTY_ZIPCLOAK_OBJS) \ + $(THIRD_PARTY_ZIPNOTE_OBJS) \ + $(THIRD_PARTY_ZIPSPLIT_OBJS) \ + ) + +THIRD_PARTY_ZIP_UTIL_OBJS1 = \ + o/$(MODE)/third_party/zip/globals.o \ + o/$(MODE)/third_party/zip/unix_.o \ + o/$(MODE)/third_party/zip/zipfile_.o \ + o/$(MODE)/third_party/zip/fileio_.o \ + o/$(MODE)/third_party/zip/util_.o + +THIRD_PARTY_ZIP_UTIL_OBJS2 = \ + o/$(MODE)/third_party/zip/crypt_.o + +THIRD_PARTY_ZIP_UTIL_OBJS = \ + $(THIRD_PARTY_ZIP_UTIL_OBJS1) \ + $(THIRD_PARTY_ZIP_UTIL_OBJS2) + +THIRD_PARTY_ZIP_ZIP_OBJS = \ + o/$(MODE)/third_party/zip/zip.o \ + o/$(MODE)/third_party/zip/zipfile.o \ + o/$(MODE)/third_party/zip/zipup.o \ + o/$(MODE)/third_party/zip/fileio.o \ + o/$(MODE)/third_party/zip/util.o \ + o/$(MODE)/third_party/zip/globals.o \ + o/$(MODE)/third_party/zip/crypt.o \ + o/$(MODE)/third_party/zip/ttyio.o \ + o/$(MODE)/third_party/zip/unix.o \ + o/$(MODE)/third_party/zip/crc32.o \ + o/$(MODE)/third_party/zip/zbz2err.o \ + o/$(MODE)/third_party/zip/deflate.o \ + o/$(MODE)/third_party/zip/trees.o + +THIRD_PARTY_ZIPSPLIT_OBJS = \ + o/$(MODE)/third_party/zip/zipsplit.o \ + $(THIRD_PARTY_ZIP_UTIL_OBJS1) + +THIRD_PARTY_ZIPNOTE_OBJS = \ + o/$(MODE)/third_party/zip/zipnote.o \ + $(THIRD_PARTY_ZIP_UTIL_OBJS1) + +THIRD_PARTY_ZIPCLOAK_OBJS = \ + o/$(MODE)/third_party/zip/zipcloak.o \ + o/$(MODE)/third_party/zip/crc32.o \ + o/$(MODE)/third_party/zip/ttyio.o \ + $(THIRD_PARTY_ZIP_UTIL_OBJS1) \ + $(THIRD_PARTY_ZIP_UTIL_OBJS2) + +THIRD_PARTY_ZIP_LARGE_OBJS = \ + o/$(MODE)/third_party/zip/zip.o \ + o/$(MODE)/third_party/zip/zipsplit.o \ + o/$(MODE)/third_party/zip/fileio.o \ + o/$(MODE)/third_party/zip/fileio_.o + +THIRD_PARTY_ZIP_DIRECTDEPS = \ + LIBC_CALLS \ + LIBC_FMT \ + LIBC_INTRIN \ + LIBC_LOG \ + LIBC_MEM \ + LIBC_NEXGEN32E \ + LIBC_RAND \ + LIBC_RUNTIME \ + LIBC_STDIO \ + LIBC_STR \ + LIBC_STUBS \ + LIBC_SYSV \ + LIBC_TIME \ + LIBC_UNICODE \ + THIRD_PARTY_BZIP2 + +THIRD_PARTY_ZIP_DEPS := \ + $(call uniq,$(foreach x,$(THIRD_PARTY_ZIP_DIRECTDEPS),$($(x)))) + +o/$(MODE)/third_party/zip/zip.pkg: \ + $(THIRD_PARTY_ZIP_ZIP_OBJS) \ + $(foreach x,$(THIRD_PARTY_ZIP_DIRECTDEPS),$($(x)_A).pkg) + +o/$(MODE)/third_party/zip/zip.com.dbg: \ + $(THIRD_PARTY_ZIP_DEPS) \ + $(THIRD_PARTY_ZIP_ZIP_OBJS) \ + $(CRT) \ + $(APE_NO_MODIFY_SELF) + @$(APELINK) + +o/$(MODE)/third_party/zip/zipsplit.com.dbg: \ + $(THIRD_PARTY_ZIP_DEPS) \ + $(THIRD_PARTY_ZIPSPLIT_OBJS) \ + $(CRT) \ + $(APE_NO_MODIFY_SELF) + @$(APELINK) + +o/$(MODE)/third_party/zip/zipnote.com.dbg: \ + $(THIRD_PARTY_ZIP_DEPS) \ + $(THIRD_PARTY_ZIPNOTE_OBJS) \ + $(CRT) \ + $(APE_NO_MODIFY_SELF) + @$(APELINK) + +o/$(MODE)/third_party/zip/zipcloak.com.dbg: \ + $(THIRD_PARTY_ZIP_DEPS) \ + $(THIRD_PARTY_ZIPCLOAK_OBJS) \ + $(CRT) \ + $(APE_NO_MODIFY_SELF) + @$(APELINK) + +o/$(MODE)/third_party/zip/crypt.o \ +o/$(MODE)/third_party/zip/crypt_.o \ +o/$(MODE)/third_party/zip/fileio.o \ +o/$(MODE)/third_party/zip/fileio_.o \ +o/$(MODE)/third_party/zip/globals.o \ +o/$(MODE)/third_party/zip/timezone.o \ +o/$(MODE)/third_party/zip/ttyio.o \ +o/$(MODE)/third_party/zip/unix.o \ +o/$(MODE)/third_party/zip/unix_.o \ +o/$(MODE)/third_party/zip/util.o \ +o/$(MODE)/third_party/zip/util_.o \ +o/$(MODE)/third_party/zip/zbz2err.o \ +o/$(MODE)/third_party/zip/zip.o \ +o/$(MODE)/third_party/zip/crc32.o \ +o/$(MODE)/third_party/zip/trees.o \ +o/$(MODE)/third_party/zip/deflate.o \ +o/$(MODE)/third_party/zip/zipcloak.o \ +o/$(MODE)/third_party/zip/zipfile.o \ +o/$(MODE)/third_party/zip/zipfile_.o \ +o/$(MODE)/third_party/zip/zipnote.o \ +o/$(MODE)/third_party/zip/zipsplit.o \ +o/$(MODE)/third_party/zip/zipup.o: \ + OVERRIDE_CPPFLAGS += \ + -DUNIX \ + -DMMAP \ + -DUNICODE_SUPPORT \ + -DUSE_EF_UT_TIME \ + -DLARGE_FILE_SUPPORT \ + -DHAVE_DIRENT_H \ + -DHAVE_TERMIOS_H \ + -DZIP64_SUPPORT \ + -DBZIP2_SUPPORT + +o/$(MODE)/third_party/zip/crypt_.o \ +o/$(MODE)/third_party/zip/unix_.o \ +o/$(MODE)/third_party/zip/zipfile_.o \ +o/$(MODE)/third_party/zip/fileio_.o \ +o/$(MODE)/third_party/zip/util_.o: \ + OVERRIDE_CPPFLAGS += \ + -DUTIL + +o/$(MODE)/third_party/zip/zip.o \ +o/$(MODE)/third_party/zip/zipsplit.o \ +o/$(MODE)/third_party/zip/fileio.o \ +o/$(MODE)/third_party/zip/fileio_.o: \ + OVERRIDE_CPPFLAGS += \ + -DSTACK_FRAME_UNLIMITED + +o/$(MODE)/third_party/zip/%_.o: \ + third_party/zip/%.c \ + o/$(MODE)/third_party/zip/%.o + @$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.c) $(OUTPUT_OPTION) $< + +.PHONY: o/$(MODE)/third_party/zip +o/$(MODE)/third_party/zip: \ + $(THIRD_PARTY_ZIP_BINS) \ + $(THIRD_PARTY_ZIP_CHECKS) diff --git a/third_party/infozip/zip/zipcloak.c b/third_party/zip/zipcloak.c similarity index 98% rename from third_party/infozip/zip/zipcloak.c rename to third_party/zip/zipcloak.c index 2fe62bdb5..c9db557ea 100644 --- a/third_party/infozip/zip/zipcloak.c +++ b/third_party/zip/zipcloak.c @@ -22,19 +22,19 @@ #ifndef UTIL # define UTIL #endif -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #define DEFCPYRT /* main module: enable copyright string defines! */ -#include "third_party/infozip/zip/revision.h" -#include "third_party/infozip/zip/crc32.h" -#include "third_party/infozip/zip/crypt.h" -#include "third_party/infozip/zip/ttyio.h" +#include "third_party/zip/revision.h" +#include "third_party/zip/crc32.h" +#include "third_party/zip/crypt.h" +#include "third_party/zip/ttyio.h" #include "libc/calls/calls.h" #include "libc/log/log.h" #include "libc/calls/struct/sigaction.h" #include "libc/sysv/consts/sig.h" #include "libc/stdio/temp.h" #ifndef NO_STDLIB_H -# include "libc/mem/mem.h" +#include "libc/mem/mem.h" #endif #if CRYPT /* defined (as TRUE or FALSE) in crypt.h */ diff --git a/third_party/infozip/zip/ziperr.h b/third_party/zip/ziperr.h similarity index 100% rename from third_party/infozip/zip/ziperr.h rename to third_party/zip/ziperr.h diff --git a/third_party/infozip/zip/zipfile.c b/third_party/zip/zipfile.c similarity index 99% rename from third_party/infozip/zip/zipfile.c rename to third_party/zip/zipfile.c index 81587071a..bc1ad3225 100644 --- a/third_party/infozip/zip/zipfile.c +++ b/third_party/zip/zipfile.c @@ -14,10 +14,10 @@ */ #define __ZIPFILE_C -#include "third_party/infozip/zip/zip.h" -#include "third_party/infozip/zip/revision.h" +#include "third_party/zip/zip.h" +#include "third_party/zip/revision.h" #ifdef UNICODE_SUPPORT -# include "third_party/infozip/zip/crc32.h" +#include "third_party/zip/crc32.h" #endif /* for realloc 2/6/2005 EG */ @@ -33,17 +33,6 @@ #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" #endif -#ifdef VMS -# include "vms/vms.h" -# include "vms/vmsmunch.h" -# include "vms/vmsdefs.h" -#endif - -#ifdef WIN32 -# define WIN32_LEAN_AND_MEAN -# include -#endif - /* * XXX start of zipfile.h */ diff --git a/third_party/infozip/zip/zipnote.c b/third_party/zip/zipnote.c similarity index 99% rename from third_party/infozip/zip/zipnote.c rename to third_party/zip/zipnote.c index 7520a6d6b..c8cd2d390 100644 --- a/third_party/infozip/zip/zipnote.c +++ b/third_party/zip/zipnote.c @@ -17,9 +17,9 @@ #ifndef UTIL #define UTIL #endif -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #define DEFCPYRT /* main module: enable copyright string defines! */ -#include "third_party/infozip/zip/revision.h" +#include "third_party/zip/revision.h" #include "libc/calls/calls.h" #include "libc/fmt/fmt.h" #include "libc/fmt/conv.h" diff --git a/third_party/infozip/zip/zipsplit.c b/third_party/zip/zipsplit.c similarity index 99% rename from third_party/infozip/zip/zipsplit.c rename to third_party/zip/zipsplit.c index 7fa03444a..3f2077bdc 100644 --- a/third_party/infozip/zip/zipsplit.c +++ b/third_party/zip/zipsplit.c @@ -17,9 +17,9 @@ #ifndef UTIL #define UTIL #endif -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #define DEFCPYRT /* main module: enable copyright string defines! */ -#include "third_party/infozip/zip/revision.h" +#include "third_party/zip/revision.h" #include "libc/calls/calls.h" #include "libc/fmt/fmt.h" #include "libc/fmt/conv.h" diff --git a/third_party/infozip/zip/zipup.c b/third_party/zip/zipup.c similarity index 95% rename from third_party/infozip/zip/zipup.c rename to third_party/zip/zipup.c index 2f0de3ba7..095e80c4f 100644 --- a/third_party/infozip/zip/zipup.c +++ b/third_party/zip/zipup.c @@ -1,3 +1,4 @@ +// -*- mode:c;indent-tabs-mode:nil;c-basic-offset:4;tab-width:8;coding:utf-8 -*- /* clang-format off */ /* zipup.c - Zip 3 @@ -19,7 +20,7 @@ is 8 bytes while off_t here is 4 bytes, and this makes the zlist struct different sizes and needless to say leads to segmentation faults. Putting zip.h first seems to fix this. 8/14/04 EG */ -#include "third_party/infozip/zip/zip.h" +#include "third_party/zip/zip.h" #include "libc/errno.h" #include "libc/str/str.h" #include "libc/log/log.h" @@ -30,116 +31,14 @@ #ifndef UTIL /* This module contains no code for Zip Utilities */ -#include "third_party/infozip/zip/revision.h" -#include "third_party/infozip/zip/crc32.h" -#include "third_party/infozip/zip/crypt.h" -#ifdef USE_ZLIB -# include "third_party/zlib/zlib.h" -#endif -#ifdef BZIP2_SUPPORT -# ifdef BZIP2_USEBZIP2DIR -# include "bzip2/bzlib.h" -# else -# include "bzlib.h" -# endif -#endif - -#ifdef OS2 -# include "os2/os2zip.h" -#endif - -#if defined(MMAP) +#include "third_party/zip/revision.h" +#include "third_party/zip/crc32.h" +#include "third_party/zip/crypt.h" +#include "third_party/bzip2/bzlib.h" #include "libc/calls/calls.h" #include "libc/sysv/consts/map.h" #include "libc/sysv/consts/mremap.h" -# ifndef PAGESIZE /* used to be SYSV, what about pagesize on SVR3 ? */ -# define PAGESIZE getpagesize() -# endif -# if defined(NO_VALLOC) && !defined(valloc) -# define valloc malloc -# endif -#endif - -/* Use the raw functions for MSDOS and Unix to save on buffer space. - They're not used for VMS since it doesn't work (raw is weird on VMS). - */ - -#ifdef AMIGA -# include "amiga/zipup.h" -#endif /* AMIGA */ - -#ifdef AOSVS -# include "aosvs/zipup.h" -#endif /* AOSVS */ - -#ifdef ATARI -# include "atari/zipup.h" -#endif - -#ifdef __BEOS__ -# include "beos/zipup.h" -#endif - -#ifdef __ATHEOS__ -# include "atheos/zipup.h" -#endif /* __ATHEOS__ */ - -#ifdef __human68k__ -# include "human68k/zipup.h" -#endif /* __human68k__ */ - -#ifdef MACOS -# include "macos/zipup.h" -#endif - -#ifdef DOS -# include "msdos/zipup.h" -#endif /* DOS */ - -#ifdef NLM -# include "novell/zipup.h" -# include -#endif - -#ifdef OS2 -# include "os2/zipup.h" -#endif /* OS2 */ - -#ifdef RISCOS -# include "acorn/zipup.h" -#endif - -#ifdef TOPS20 -# include "tops20/zipup.h" -#endif - -#ifdef UNIX -# include "unix/zipup.h" -#endif - -#ifdef CMS_MVS -# include "zipup.h" -#endif /* CMS_MVS */ - -#ifdef TANDEM -# include "zipup.h" -#endif /* TANDEM */ - -#ifdef VMS -# include "vms/zipup.h" -#endif /* VMS */ - -#ifdef QDOS -# include "qdos/zipup.h" -#endif /* QDOS */ - -#ifdef WIN32 -# include "win32/zipup.h" -#endif - -#ifdef THEOS -# include "theos/zipup.h" -#endif +#include "third_party/zip/zipup.h" /* Local functions */ #ifndef RISCOS @@ -1771,21 +1670,21 @@ int *cmpr_method; #if defined(MMAP) || defined(BIG_MEM) if (remain != (ulg)-1L) { - bstrm.next_in = (Bytef *)window; + bstrm.next_in = (void *)window; ibuf_sz = (unsigned)WSIZE; } else #endif /* MMAP || BIG_MEM */ { - bstrm.next_in = (char *)f_ibuf; + bstrm.next_in = f_ibuf; } - bstrm.avail_in = file_read(bstrm.next_in, ibuf_sz); + bstrm.avail_in = file_read((char *)bstrm.next_in, ibuf_sz); if (file_binary_final == 0) { /* check for binary as library does not */ - if (!is_text_buf(bstrm.next_in, ibuf_sz)) + if (!is_text_buf((char *)bstrm.next_in, ibuf_sz)) file_binary_final = 1; } if (bstrm.avail_in < ibuf_sz) { - unsigned more = file_read(bstrm.next_in + bstrm.avail_in, + unsigned more = file_read((char *)(bstrm.next_in + bstrm.avail_in), (ibuf_sz - bstrm.avail_in)); if (more == (unsigned) EOF || more == 0) { maybe_stored = TRUE; @@ -1793,7 +1692,7 @@ int *cmpr_method; bstrm.avail_in += more; } } - bstrm.next_out = (char *)f_obuf; + bstrm.next_out = (void *)f_obuf; bstrm.avail_out = OBUF_SZ; if (!maybe_stored) { @@ -1807,7 +1706,7 @@ int *cmpr_method; if (zfwrite(f_obuf, 1, OBUF_SZ) != OBUF_SZ) { ziperr(ZE_TEMP, "error writing to zipfile"); } - bstrm.next_out = (char *)f_obuf; + bstrm.next_out = f_obuf; bstrm.avail_out = OBUF_SZ; } /* $TODO what about high 32-bits of total-in??? */ @@ -1849,14 +1748,14 @@ int *cmpr_method; } #if defined(MMAP) || defined(BIG_MEM) if (remain == (ulg)-1L) - bstrm.next_in = (char *)f_ibuf; + bstrm.next_in = f_ibuf; #else bstrm.next_in = (char *)f_ibuf; #endif - bstrm.avail_in = file_read(bstrm.next_in, ibuf_sz); + bstrm.avail_in = file_read((char *)bstrm.next_in, ibuf_sz); if (file_binary_final == 0) { /* check for binary as library does not */ - if (!is_text_buf(bstrm.next_in, ibuf_sz)) + if (!is_text_buf((char *)bstrm.next_in, ibuf_sz)) file_binary_final = 1; } } @@ -1901,7 +1800,7 @@ int *cmpr_method; if (zfwrite(f_obuf, 1, len_out) != len_out) { ziperr(ZE_TEMP, "error writing to zipfile"); } - bstrm.next_out = (char *)f_obuf; + bstrm.next_out = f_obuf; bstrm.avail_out = OBUF_SZ; } } while (err == BZ_FINISH_OK); diff --git a/third_party/infozip/zip/unix/zipup.h b/third_party/zip/zipup.h similarity index 100% rename from third_party/infozip/zip/unix/zipup.h rename to third_party/zip/zipup.h diff --git a/tool/build/build.mk b/tool/build/build.mk index 9840bdf40..eb949f080 100644 --- a/tool/build/build.mk +++ b/tool/build/build.mk @@ -91,12 +91,12 @@ o/$(MODE)/tool/build/blinkenlights.com.dbg: \ o/$(MODE)/tool/build/blinkenlights.com: \ o/$(MODE)/tool/build/blinkenlights.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/tool/build/.blinkenlights/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/tool/build/.blinkenlights/.symtab o/$(MODE)/tool/build/ar.com.dbg: \ diff --git a/tool/build/compile.c b/tool/build/compile.c index 59b94ee73..747a57b9d 100644 --- a/tool/build/compile.c +++ b/tool/build/compile.c @@ -32,7 +32,6 @@ #include "libc/errno.h" #include "libc/fmt/conv.h" #include "libc/fmt/itoa.h" -#include "libc/intrin/kprintf.h" #include "libc/limits.h" #include "libc/log/color.internal.h" #include "libc/log/log.h" @@ -101,6 +100,7 @@ FLAGS\n\ -V NUMBER specifies compiler version\n\ -C SECS set cpu limit [default 16]\n\ -L SECS set lat limit [default 90]\n\ + -P PROCS set pro limit [default 1024]\n\ -M BYTES set mem limit [default 512m]\n\ -F BYTES set fsz limit [default 256m]\n\ -O BYTES set out limit [default 1m]\n\ @@ -158,6 +158,7 @@ int pipefds[2]; long cpuquota; long fszquota; long memquota; +long proquota; long outquota; char *cmd; @@ -512,6 +513,12 @@ void SetMemLimit(long n) { setrlimit(RLIMIT_AS, &rlim); } +void SetProLimit(long n) { + struct rlimit rlim = {n, n}; + if (n <= 0) return; + setrlimit(RLIMIT_NPROC, &rlim); +} + bool ArgNeedsShellQuotes(const char *s) { if (*s) { for (;;) { @@ -592,6 +599,7 @@ int Launch(void) { SetCpuLimit(cpuquota); SetFszLimit(fszquota); SetMemLimit(memquota); + SetProLimit(proquota); if (stdoutmustclose) dup2(pipefds[1], 1); dup2(pipefds[1], 2); sigprocmask(SIG_SETMASK, &savemask, 0); @@ -734,10 +742,11 @@ int main(int argc, char *argv[]) { verbose = 4; timeout = 90; /* secs */ cpuquota = 16; /* secs */ + proquota = 1024; /* procs */ fszquota = 256 * 1000 * 1000; /* bytes */ memquota = 512 * 1024 * 1024; /* bytes */ if ((s = getenv("V"))) verbose = atoi(s); - while ((opt = getopt(argc, argv, "hnvstC:M:F:A:T:V:O:L:")) != -1) { + while ((opt = getopt(argc, argv, "hnstvA:C:F:L:M:O:P:T:V:")) != -1) { switch (opt) { case 'n': exit(0); @@ -765,6 +774,9 @@ int main(int argc, char *argv[]) { case 'V': ccversion = atoi(optarg); break; + case 'P': + fszquota = sizetol(optarg, 1000); + break; case 'F': fszquota = sizetol(optarg, 1000); break; @@ -1049,7 +1061,7 @@ int main(int argc, char *argv[]) { if (!startswith(cmd, "o/")) { cachedcmd = xstrcat("o/", cmd); } else { - cachedcmd = xstripext(cmd); + cachedcmd = xstrcat(xstripext(cmd), ".elf"); } if (FileExistsAndIsNewerThan(cachedcmd, cmd)) { cmd = cachedcmd; diff --git a/tool/net/net.mk b/tool/net/net.mk index d608bf557..62ef2bc63 100644 --- a/tool/net/net.mk +++ b/tool/net/net.mk @@ -103,7 +103,7 @@ ifneq ($(MODE),tiny) ifneq ($(MODE),tinylinux) o/$(MODE)/tool/net/redbean.com: \ o/$(MODE)/tool/net/redbean.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com \ tool/net/net.mk \ tool/net/help.txt \ @@ -114,7 +114,7 @@ o/$(MODE)/tool/net/redbean.com: \ @$(COMPILE) -AMKDIR -T$@ mkdir -p o/$(MODE)/tool/net/.redbean @$(COMPILE) -ADD -T$@ dd if=$@ of=o/$(MODE)/tool/net/.redbean/.ape bs=64 count=11 conv=notrunc 2>/dev/null @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com -o o/$(MODE)/tool/net/.redbean/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/tool/net/.redbean/.ape \ o/$(MODE)/tool/net/.redbean/.symtab \ tool/net/help.txt \ @@ -126,7 +126,7 @@ endif o/tiny/tool/net/redbean.com: \ o/tiny/tool/net/redbean.com.dbg \ - o/tiny/third_party/infozip/zip.com \ + o/tiny/third_party/zip/zip.com \ tool/net/net.mk \ tool/net/tiny/help.txt \ tool/net/.init.lua \ @@ -135,7 +135,7 @@ o/tiny/tool/net/redbean.com: \ @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -AMKDIR -T$@ mkdir -p o/tiny/tool/net/.redbean @$(COMPILE) -ADD -T$@ dd if=$@ of=o/tiny/tool/net/.redbean/.ape bs=64 count=11 conv=notrunc 2>/dev/null - @$(COMPILE) -AZIP -T$@ o/tiny/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/tiny/third_party/zip/zip.com -9qj $@ \ o/tiny/tool/net/.redbean/.ape \ tool/net/tiny/help.txt \ tool/net/.init.lua \ @@ -144,7 +144,7 @@ o/tiny/tool/net/redbean.com: \ o/tinylinux/tool/net/redbean.com: \ o/tinylinux/tool/net/redbean.com.dbg \ - o/tinylinux/third_party/infozip/zip.com \ + o/tinylinux/third_party/zip/zip.com \ tool/net/net.mk \ tool/net/tiny/help.txt \ tool/net/.init.lua \ @@ -153,7 +153,7 @@ o/tinylinux/tool/net/redbean.com: \ @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -AMKDIR -T$@ mkdir -p o/tinylinux/tool/net/.redbean @$(COMPILE) -ADD -T$@ dd if=$@ of=o/tinylinux/tool/net/.redbean/.ape bs=64 count=11 conv=notrunc 2>/dev/null - @$(COMPILE) -AZIP -T$@ o/tinylinux/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/tinylinux/third_party/zip/zip.com -9qj $@ \ o/tinylinux/tool/net/.redbean/.ape \ tool/net/tiny/help.txt \ tool/net/.init.lua \ @@ -243,14 +243,14 @@ o/$(MODE)/tool/net/redbean-demo.com.dbg: \ o/$(MODE)/tool/net/redbean-demo.com: \ o/$(MODE)/tool/net/redbean-demo.com.dbg \ o/$(MODE)/tool/build/symtab.com \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ tool/net/help.txt @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -AMKDIR -T$@ mkdir -p o/$(MODE)/tool/net/.redbean-demo @$(COMPILE) -ADD -T$@ dd if=$@ of=o/$(MODE)/tool/net/.redbean-demo/.ape bs=64 count=11 conv=notrunc 2>/dev/null @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/tool/net/.redbean-demo/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/tool/net/.redbean-demo/.ape \ o/$(MODE)/tool/net/.redbean-demo/.symtab \ tool/net/help.txt @@ -262,7 +262,7 @@ o/$(MODE)/tool/net/redbean-demo.com: \ o/$(MODE)/tool/net/redbean-static.com: \ o/$(MODE)/tool/net/redbean-static.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com \ tool/net/help.txt \ tool/net/favicon.ico \ @@ -272,7 +272,7 @@ o/$(MODE)/tool/net/redbean-static.com: \ @$(COMPILE) -ADD -T$@ dd if=$@ of=o/$(MODE)/tool/net/.redbean-static/.ape bs=64 count=11 conv=notrunc 2>/dev/null @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/tool/net/.redbean-static/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/tool/net/.redbean-static/.ape \ o/$(MODE)/tool/net/.redbean-static/.symtab \ tool/net/help.txt \ @@ -298,7 +298,7 @@ o/$(MODE)/tool/net/redbean-static.o: tool/net/redbean.c o/$(MODE)/tool/net/redbe o/$(MODE)/tool/net/redbean-unsecure.com: \ o/$(MODE)/tool/net/redbean-unsecure.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com \ tool/net/help.txt \ tool/net/favicon.ico \ @@ -308,7 +308,7 @@ o/$(MODE)/tool/net/redbean-unsecure.com: \ @$(COMPILE) -ADD -T$@ dd if=$@ of=o/$(MODE)/tool/net/.redbean-unsecure/.ape bs=64 count=11 conv=notrunc 2>/dev/null @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/tool/net/.redbean-unsecure/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/tool/net/.redbean-unsecure/.ape \ o/$(MODE)/tool/net/.redbean-unsecure/.symtab \ tool/net/help.txt \ @@ -340,7 +340,7 @@ ifneq ($(MODE),tiny) ifneq ($(MODE),tinylinux) o/$(MODE)/tool/net/redbean-original.com: \ o/$(MODE)/tool/net/redbean-original.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com \ tool/net/help.txt \ tool/net/favicon.ico \ @@ -350,7 +350,7 @@ o/$(MODE)/tool/net/redbean-original.com: \ @$(COMPILE) -ADD -T$@ dd if=$@ of=o/$(MODE)/tool/net/.redbean-original/.ape bs=64 count=11 conv=notrunc 2>/dev/null @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/tool/net/.redbean-original/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/tool/net/.redbean-original/.ape \ o/$(MODE)/tool/net/.redbean-original/.symtab \ tool/net/help.txt \ @@ -361,14 +361,14 @@ endif o/tiny/tool/net/redbean-original.com: \ o/tiny/tool/net/redbean-original.com.dbg \ - o/tiny/third_party/infozip/zip.com \ + o/tiny/third_party/zip/zip.com \ tool/net/tiny/help.txt \ tool/net/favicon.ico \ tool/net/redbean.png @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -AMKDIR -T$@ mkdir -p o/tiny/tool/net/.redbean-original @$(COMPILE) -ADD -T$@ dd if=$@ of=o/tiny/tool/net/.redbean-original/.ape bs=64 count=11 conv=notrunc 2>/dev/null - @$(COMPILE) -AZIP -T$@ o/tiny/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/tiny/third_party/zip/zip.com -9qj $@ \ o/tiny/tool/net/.redbean-original/.ape \ tool/net/tiny/help.txt \ tool/net/favicon.ico \ @@ -376,14 +376,14 @@ o/tiny/tool/net/redbean-original.com: \ o/tinylinux/tool/net/redbean-original.com: \ o/tinylinux/tool/net/redbean-original.com.dbg \ - o/tinylinux/third_party/infozip/zip.com \ + o/tinylinux/third_party/zip/zip.com \ tool/net/tiny/help.txt \ tool/net/favicon.ico \ tool/net/redbean.png @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -AMKDIR -T$@ mkdir -p o/tinylinux/tool/net/.redbean-original @$(COMPILE) -ADD -T$@ dd if=$@ of=o/tinylinux/tool/net/.redbean-original/.ape bs=64 count=11 conv=notrunc 2>/dev/null - @$(COMPILE) -AZIP -T$@ o/tinylinux/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/tinylinux/third_party/zip/zip.com -9qj $@ \ o/tinylinux/tool/net/.redbean-original/.ape \ tool/net/tiny/help.txt \ tool/net/favicon.ico \ @@ -410,7 +410,7 @@ o/$(MODE)/tool/net/redbean-assimilate.com.dbg: \ o/$(MODE)/tool/net/redbean-assimilate.com: \ o/$(MODE)/tool/net/redbean-assimilate.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com \ tool/net/net.mk \ tool/net/help.txt \ @@ -420,7 +420,7 @@ o/$(MODE)/tool/net/redbean-assimilate.com: \ @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -AMKDIR -T$@ mkdir -p o/$(MODE)/tool/net/.redbean-assimilate @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com -o o/$(MODE)/tool/net/.redbean-assimilate/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/tool/net/.redbean-assimilate/.symtab \ tool/net/help.txt \ tool/net/.init.lua \ diff --git a/tool/plinko/plinko.mk b/tool/plinko/plinko.mk index c40d75640..dd96951fb 100644 --- a/tool/plinko/plinko.mk +++ b/tool/plinko/plinko.mk @@ -49,13 +49,13 @@ o/$(MODE)/tool/plinko/%.com.dbg: \ .PRECIOUS: o/$(MODE)/tool/plinko/plinko.com o/$(MODE)/tool/plinko/plinko.com: \ o/$(MODE)/tool/plinko/plinko.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com \ tool/plinko/plinko.mk @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -AMKDIR -T$@ mkdir -p o/$(MODE)/tool/plinko/.redbean @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com -o o/$(MODE)/tool/plinko/.plinko/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/tool/plinko/.plinko/.symtab $(TOOL_PLINKO_OBJS): \ diff --git a/tool/viz/viz.mk b/tool/viz/viz.mk index 8d900c0f8..3fc7b5253 100644 --- a/tool/viz/viz.mk +++ b/tool/viz/viz.mk @@ -73,12 +73,12 @@ o/$(MODE)/tool/viz/%.com.dbg: \ o/$(MODE)/tool/viz/printvideo.com: \ o/$(MODE)/tool/viz/printvideo.com.dbg \ - o/$(MODE)/third_party/infozip/zip.com \ + o/$(MODE)/third_party/zip/zip.com \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com \ -o o/$(MODE)/tool/viz/.printvideo/.symtab $< - @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/infozip/zip.com -9qj $@ \ + @$(COMPILE) -AZIP -T$@ o/$(MODE)/third_party/zip/zip.com -9qj $@ \ o/$(MODE)/tool/viz/.printvideo/.symtab o/$(MODE)/tool/viz/derasterize.o: \