--- origsrc/zip30/revision.h 2008-07-05 13:24:56.000000000 -0400 +++ src/zip30/revision.h 2009-08-04 16:46:09.143600000 -0400 @@ -58,7 +58,7 @@ ZCONST char *copyright[] = { }; ZCONST char * far versinfolines[] = { -"This is %s %s (%s), by Info-ZIP.", +"This is %s %s (%s), by Cygwin. Original by Info-ZIP.", "Currently maintained by E. Gordon. Please send bug reports to", "the authors using the web page at www.info-zip.org; see README for details.", "", --- origsrc/zip30/unix/Makefile 2008-05-07 02:33:56.000000000 -0400 +++ src/zip30/unix/Makefile 2009-08-04 16:46:09.150600000 -0400 @@ -227,7 +227,7 @@ cray_v3: # Cygwin cygwin: - $(MAKE) $(MAKEF) generic CC="gcc" CPP="gcc -E" EXE=".exe" + $(MAKE) $(MAKEF) generic CC="gcc" CPP="gcc -E" E=".exe" # LynxOS lynx: --- origsrc/zip30/unix/configure 2009-08-04 16:46:02.792600000 -0400 +++ src/zip30/unix/configure 2009-08-04 16:46:09.174600000 -0400 @@ -204,9 +204,19 @@ int main() return 0; } _EOF_ - $CC $CFLAGS -o conftest conftest.c -lbz2 > /dev/null 2>/dev/null + $CC $CFLAGS $LDFLAGS -o conftest conftest.c -lbz2 > /dev/null 2>/dev/null if test $? -eq 0; then - echo "-- OS supports bzip2 - linking in bzip2" + nm `$CC $CFLAGS $LDFLAGS -print-file-name=libbz2.a` | grep bz_internal_error > /dev/null + if test $? -eq 0; then + echo "-- OS supports bzip2 - linking in bzip2" + else + echo " OS provides bzip2 library but not built with the" + echo " BZ_NO_STDIO option" + echo " WARNING: We recommend using a bzip2 library compiled" + echo " with BZ_NO_STDIO defined for proper error handling" + echo " Please see the Zip installation instructions" + echo " Continuing anyway with standard bzip2 library..." + fi CFLAGS="${CFLAGS} -DBZIP2_SUPPORT" LFLAGS2="${LFLAGS2} -lbz2" else --- origsrc/zip30/unix/unix.c 2008-06-19 00:26:18.000000000 -0400 +++ src/zip30/unix/unix.c 2009-08-04 16:46:09.210600000 -0400 @@ -239,6 +239,14 @@ int *pdosflag; /* output: force dosflag = dosify; /* default for non-DOS and non-OS/2 */ /* Find starting point in name before doing malloc */ +#ifdef __CYGWIN__ + /* Strip drive specification */ + t = *x && isascii((uch)*x) && *(x + 1) == ':' ? x + 2 : x; + /* Convert backslashes to slashes */ + for (n = t; *n; n++) + if (*n == '\\') + *n = '/'; +#endif /* Strip "//host/share/" part of a UNC name */ if (!strncmp(x,"//",2) && (x[2] != '\0' && x[2] != '/')) { n = x + 2; @@ -251,8 +259,12 @@ int *pdosflag; /* output: force } if (*n != '\0') t = n + 1; +#ifdef __CYGWIN__ + } /* we may already have adjusted t */ +#else } else t = x; +#endif while (*t == '/') t++; /* strip leading '/' chars to get a relative path */ while (*t == '.' && t[1] == '/') --- origsrc/zip30/zipsplit.c 2008-05-08 04:17:16.000000000 -0400 +++ src/zip30/zipsplit.c 2009-08-04 16:46:09.217600000 -0400 @@ -890,7 +890,7 @@ char **argv; /* command line strcpy(name, INDEX); printf("creating: %s\n", path); indexmade = 1; - if ((f = fopen(path, "w")) == NULL) + if ((f = fopen(path, FOPW)) == NULL) /* cygwin fix: use FOPW */ { if (u && retry()) goto redobin; ziperr(ZE_CREAT, path);