2007-04-13 Paul Eggert * NEWS: Version 1.3.12 released. * configure.ac (AC_INIT): Likewise. * README: Update year in copyright notice. * m4/shell.m4: Add copyright notice. * bootstrap (gnulib_tool_option_extras): Put this back; it was inadvertently omitted from gnulib. (gnulib_tool_option): Use it. * .cvsignore: Add *._bootmp*. * lib/.cvsignore: Add stdlib.h, stdlib_.h, time.h, time_.h, unistd.h. Remove alloca.c, alloca.h, alloca_.h, exit.h, getdelim.c, getdelim.h, getline.c, getline.h, malloc.c, mbchar.c, mbchar.h, mbuiter.h, memchr.c, regcomp.c, regex.c, regex.h, regex_internal.c, regex_internal.h, regexec.c, rpmatch.c, stdint.h, stdint_.h, strcase.h, strcasecmp.c, strncasecmp.c, strnlen1.c, strnlen1.h, timespec.h, wcwidth.h. * m4/.cvsignore: Add stdlib_h.m4, time_h.m4. Remove alloca.m4, codeset.m4, getdelim.m4, getline.m4, longlong.m4, mbchar.m4, mbiter.m4, mbrtowc.m4, memchr.m4, regex.m4, rpmatch.m4, ssize_t.m4, stdint.m4 strcase.m4, timespec.m4, ulonglong.m4, wchar_t.m4, wcwidth.m4, wint_t.m4. 2007-03-29 Paul Eggert (tiny change) * znew.in (tmp): Use $TMPDIR as temp directory, if given. Suggested by Juan Manuel Guerrero. 2007-03-19 Paul Eggert * README-hacking: New file, renamed from README-cvs. * README-cvs: Remove. * bootstrap: Sync from today's gnulib. * bootstrap.conf (gnulib_modules): Add 'time'. * gzip.c: Don't include timespec.h; 'time' fixes time.h for that. * zip.c: Likewise. * gzip.c: Don't include time.h or sys/time.h; gzip.h now includes time.h, which is now enough. * gzip.h: Include . 2007-03-14 Paul Eggert * README (WARNING): Reword to avoid mention of no-longer-existing section in INSTALL file. Problem reported by Paul Townsend in . 2007-02-11 Paul Eggert * gzip.c (foreground): Initialize to zero. This doesn't fix a bug since C guarantees it's zero, but it's more consistent with the rest of the code. Problem reported by Mark Adler. 2007-02-08 Paul Eggert * zdiff.in: Don't use '((' in a shell script, as it's not portable to some ksh implementations, e.g., Solaris 10 ksh M-11/16/88i. Problem reported by Nelson H. F. Beebe in . 2007-02-05 Paul Eggert * NEWS: Version 1.3.11 released. * configure.ac (AC_INIT): Likewise. * doc/gzip.texi: Convert Texinfo format into a more modern style. Put in current output samples. * .cvsignore: Add *.gz, gunzip, zcat, zcmp, zegrep, zfgrep. * lib/.cvsignore: Add sys_time_.h, unistd_.h. * m4/.cvsignore: Add gnulib-common.m4, sys_time_h.m4. * gunzip.in, zcat.in, zcmp.in, zegrep.in, zfgrep.in: New files. * Makefile.am (EXTRA_DIST): Add them. (bin_SCRIPTS, MOSTLYCLEANFILES): Add gunzip, zcat, zcmp, zdgrep, zfgrep. (.in): Use GZIP_BINDIR as the location of gzip binaries, if it is set. (check-local): Use GZIP_BINDIR. (install-exec-hook, remove-installed-links): Make 'uncompress' an alias for gunzip. * gzexe.1: At least one arg is required. Don't give cat as an example, since gzexe refuses to compress cat due to a bootstrapping issue. List more utilities in this category. * gzexe.in, zdiff.in, zforce.in, zgrep.in, zless.in, zmore.in, znew.in: Report our name in usage. * gzexe.in: Don't compress bash. Don't use rmdir, so it's OK to compress rmdir. * gzip.c: Now requires that you compile with -DGNU_STANDARD=0 to get non GNU-standard behavior. We now build with GNU-standard behavior by default, so that programs do not depend on the names of their executables. * zdiff.in: Don't depend on the name of the executable, as per GNU standard. Instead, rely on an internal --__cmp option. Support ' in options. Check for failures in subsidiary gzip invocations. * zgrep.1: Clarify compression issues. * zgrep.in: Don't assume POSIX-style case syntax. Remove unused var have_optarg. * zless.1: zless sets LESSMETACHARS now. 2007-01-10 Paul Eggert * m4/shell.m4 (AC_PROG_SHELL): Test that $(...) works. Problem reported for SGI IRIX 6 by Nelson H. F. Beebe in . 2007-01-04 Paul Eggert * zdiff.in (cmp0): New var. Rewrite test for /dev/fd/3 to detect bugs in Solaris 8 /bin/bash 2.03. Problem reported by Nelson H. F. Beebe in . Avoid "for file; do", which doesn't work with Solaris 8 /bin/sh. 2007-01-03 Paul Eggert * zdiff.in: Test /dev//fd/3, not /dev/fd/3, to work around a problem with Tru64 4.0F ksh M-11/16/88f reported by Thomas Koutcher in . 2006-12-30 Paul Eggert * NEWS: Version 1.3.10 released. * configure.ac (AC_INIT): Likewise. * Makefile.am (check-local): Don't assume $(srcdir) is '.'. (MAINTAINERCLEANFILES): Move gzip.doc.gz from here ... (MOSTLYCLEANFILES): ... to here. 2006-12-29 Paul Eggert * zless.in: Work around a bug in less 394 and earlier; it mishandles $%=~ in file names. Problem reported by Sami Liedes in . * doc/gzip.texi: Swap order of dircategory entries, to pacify Debian install-info 1.10.28. This should fix . * zgrep.in (version): Fix bug: $grep wasn't evaluated. * zgrep.in: Rewrite to make the option processing more compatible with GNU and POSIX grep. Assume POSIX shell for more stuff, since we're already assuming that. * Makefile.am (check-local): Check zgrep -iV. 2006-12-26 Paul Eggert Fix Debian bug 367673 plus several other bugs discovered in the neighborhood. * NEWS: gzip -q now exits with status 2 (not 1) on SIGPIPE. zgrep has many bugs fixed with argument handling, special characters, and exit status. * gzip.c (abort_gzip_signal): Implement gzip -q change. * zgrep.in: Implement zgrep change. 2006-12-23 Paul Eggert * NEWS: Fix bug reported by Martin Mares in . * gzip.c (treat_stdin): Remove NO_STDIN_FSTAT and NO_PIPE_TIMESTAMP stuff. It didn't work (led to syntax errors) and was confusing. Report an error if stdin cannot be statted even if !list && no_time. Get stdin's size if it is regular. (treat_file): Do not report an error with setuid, setgid, sticky, or non-regular, non-directory files if to_stdout. Allow 'force' to override the caution about sticky files. Use the same form for time stamps that treat_stdin uses. * zdiff.in: Fix typo that broke most usages. Problem reported by Jari Aalto in . While we're at it, fix a bunch of other problems. Handle "-" better. Send diagnostics to stderr, not stdout. Use expr rather than echo | sed, to handle special characters better. Report a diagnostic in the 1-arg case, if the argument doesn't end in .gz or the like, rather than having incomprehensible behavior. Do not require that the inputs be regular files. Avoid creating a temporary entirely, if /dev/fd works. If not, then resist denial-of-service attacks better, by using mktemp. * NEWS: Document this. * Makefile.am (gzip.doc.gz): New rule. (check-local): Depend on it, and test zdiff for Debian bug 404114. 2006-12-22 Paul Eggert * zdiff.1: Mention that these programs currently understand only formats that gzip does. Problem reported by Jari Aalto in . 2006-12-20 Paul Eggert * inflate.c (huft_build): Fix regression that caused gzip to refuse to uncompress null input (all zero length codes). Problem reported by Yiorgos Adamopoulos. This regression was caused by the security patch installed 2006-11-20, which in turn came from Debian, which in turn apparently came from Thomas Biege of SuSe. 2006-12-15 Paul Eggert * NEWS, configure.ac (AC_INIT): Version 1.3.9 released. * Makefile.am (MOSTLYCLEANFILES): Add _match.i. * configure.ac (for an assembler syntax supported by this package): Remove _match.i. * bootstrap (gnulib_tool_options_extras): New var. (gnulib_tool_options): Use it. * bootstrap.conf (gnulib_tool_options_extras): Avoid getline and rpmatch. gzip doesn't need them, since it doesn't ENABLE_NLS. 2006-12-13 Bruno Haible * configure.ac: Use $CPPFLAGS everywhere $CPP is used, and use $CPPFLAGS $CFLAGS everywhere $CC is used. * lib/Makefile.am (match.$(OBJEXT)): Likewise. * configure.ac: Test the exit code of the $CPP and $ASCPPPOST commands separately. 2006-12-11 Paul Eggert * configure.ac (ASCPPPOST): Simplify to use just 'sed'. * lib/Makefile.am (match.$(OBJEXT)): Check for CPP failure. 2006-12-11 Bruno Haible Cross-compilation support. * configure.ac (ASCPP): Remove substituted variable. (ASCPPPOST, ASCPPFLAGS): New substituted variables. * lib/Makefile.am (ASCPP, LN_S): Remove unnecessary macro definitions. (match.$(OBJEXT)): Use CPP, ASCPPFLAGS, ASCPPPOST instead of ASCPP. * configure.ac: Add test for chown function. * gzip.c (treat_file) [!HAVE_CHOWN]: Don't call chown. * gzip.c: Include "timespec.h". This doesn't fix any bugs, but it is clearer. 2006-12-11 Paul Eggert The SSIZE_MAX fix didn't work on NSK, so fix it in a more-reliable (albeit more-complicated) way. Problem reported by Matthew Woehlke. * gzip.h (read_buffer): New decl. * unlzw.c (unlzw): Use read_buffer rather than read. * zip.c (file_read): Likewise. * util.c (copy, fill_inbuf): Likewise. (read_buffer, write_buffer): New functions. (write_buf): Use write_buffer rather than write. Undo the previous SSIZE_MAX-related change; it didn't work. * gzip.c: Include . * util.c: Likewise. * gzip.h: Don't include . (INBUFSIZ): Don't worry about SSIZE_MAX here. 2006-12-08 Paul Eggert * NEWS, configure.ac (AC_INIT): Version 1.3.8 released. * gzexe.in (mktemp_status): New var, used to see whether mktemp is a known command. Use this instead of confounding mktemp's existence with its success. * zdiff.in: Remove first line containing ":". This follows up on the SEDCMD fix of 2006-12-01. * zforce.in: Likewise. * zgrep.in: Likewise. * zless.in: Likewise. * zmore.in: Likewise. * znew.in: Likewise. Fix problems in porting to NSK reported by Matthew Woehlke in and . * gzip.h: Include , for SSIZE_MAX. (INBUFSIZE): Don't make it any larger than SSIZE_MAX. Problem reported by Matthew Woehlke in . * gzip.c: Don't include , as gzip.h now does this. * util.c: Likewise. * gzip.c (main): Set exiting_signal before installing signal handlers. (install_signal_handlers): Don't set exiting_signal here. This fixes a C99ism. * zip.c: Include timespec.h, for time_stamp type. 2006-12-08 Ralf Wildenhues (tiny change) * gzexe.in: Work around FreeBSD shell trap bug. * gzip.1: Fix typo. * doc/gzip.texi: Likewise. 2006-12-08 Paul Eggert * .cvsignore: Add .deps, gzexe, gzip, zdiff, zforce, zgrep, zless, zmore, znew. * doc/.cvsignore: Add Makefile. * lib/.cvsignore: Add .deps, Makefile, alloca.h, config.h, fcntl.h, stamp-h1, stdint.h, sys. * configure.ac (for assembler): Set ASFLAGS_config to -Wa,--noexecstack if this seems advisable on this platform. Problem reported by Mike Frysinger in . * lib/Makefile.am (match.$(OBJEXT)): Use ASFLAGS_config. 2006-12-07 Paul Eggert * Makefile.am (install-exec-hook): Fix bug when installing symbolic links as aliases. Problem reported by Mike Frysinger. * deflate.c (deflate_fast, deflate): Avoid core dump. Problem originally reported by Jochen Friedrich and trivial patch supplied by Anthony Towns; see . 2006-12-06 Paul Eggert * NEWS, configure.ac (AC_INIT): Version 1.3.7 released. 2006-12-06 Bruno Haible (tiny change) and Paul Eggert Fix build failure on case-insensitive file systems. * configure.ac: Use match_.s instead of _match.s. * Makefile.am (MOSTLYCLEANFILES): Likewise. * lib/Makefile.am (match.$(OBJEXT)): Likewise. (MOSTLYCLEANFILES): Likewise. 2006-12-06 Paul Eggert * NEWS: Document the fixes below. * configure.ac (AC_CHECK_FUNCS_ONCE): Add siginterrupt. * gzip.c (lstat) [!defined(HAVE_LSTAT) && !defined(lstat)]: Remove. (SA_NOCLDSTOP, sigprocmask, sigset_t) [!defined SA_NOCLDSTOP]: New macros. (siginterrupt) [!defined SA_NOCLDSTOP && ! HAVE_SIGINTERRUPT]: New macro. (HAVE_WORKING_O_NOFOLLOW): Define to 0 if not defined. (caught_signals, exiting_signal, remove_ofname_fd): New vars. (remove_ofname): Remove; all uses changed to remove_ofname_fd. (same_file, name_too_long): Remove. (install_signal_handlers): New function. It prefers sigaction, which is more reliable in the presence of race conditions. Catch SIGXCPU and SIGXFSZ, too. (main): Use it instead of installing them by hand. (treat_file): Check for read error when closing ifd. (treat_file, create_outfile, remove_output_file): Avoid race conditions with signals. (create_outfile, check_ofname): Remove most of the gorp about working around ENAMETOOLONG deficiencies. It's obsolete now, and anyway it had race conditions. Just rely on O_EXCL and ENAMETOOLONG. The worst that can happen is that a file name will be silently truncated on an obsolete machine, but no data will be lost. (open_and_stat): Use HAVE_WORKING_O_NOFOLLOW rather than O_NOFOLLOW to work around some O_NOFOLLOW bugs. Otherwise, fall back on lstat only if lstat is available, as symlinks don't exist otherwise. (open_input_file): Use O_NONBLOCK and O_NOCTTY too, to avoid hanging gzip on special files. (abort_gzip_signal): If sigaction is not available, ignore signals. If we get the exiting signal, exit with ERROR status rather than raising a signal. * tailor.h (NO_ST_INO): Remove; no longer used now that same_file is gone. 2006-12-05 Paul Eggert Port to Tandem NSK/OSS, which lacks fchdir. Problem reported by Matthew Woehlke in . * bootstrap.conf (gnulib_modules): Remove openat, as it pulls in fchdir. * configure.ac: Check for fdopendir. * gzip.c: Don't include openat.h; no longer needed. (treat_dir) [!HAVE_FDOPENDIR]: Fall back on the old opendir method since fdopendir is not available. 2006-12-04 Paul Eggert * NEWS: Describe the following change briefly. * bootstrap.conf (gnulib_modules): Remove stat-macros; no longer needed. * gzip.c: Don't include stat-macros.h; no longer needed. (treat_file): Refuse to compress files that are setuid, or setgid, as this can in theory lead to security holes. Also, refuse to compress files with the sticky bit set, on general principle. (copy_stat): Don't copy the setuid, setgid, or sticky bits, as (given the above change) they'll always be zero here. Invoke chmod before chown, to close a race condition. * .cvsignore: Add *.doc, build-aux. * doc/.cvignore: New file. * lib/.cvsignore: New file. * m4/.cvsignore: New file. 2006-12-01 Paul Eggert * doc/gzip.texi (Overview): Mention limits of gzip format's time stamps. Also, gzip doesn't always preserve time stamps. * gzip.c (abort_gzip_signal): Don't call abort () as a "safeguard", since it actually causes a core dump. Problem reported by Jakub Bogusz. * NEWS: Describe gzexe changes noted below. * Makefile.am (.in): Don't bother with SEDCMD. This stuff isn't needed any more (the hosts it caters to are long extinct), and was questionable anyway since the code assumes the skip= line was line 2. * configure.ac (AC_SYS_INTERPRETER, SEDCMD): Remove; no longer needed. * gzexe.in: Sweep the code and fix some bugs. My, what sharp teeth you have, gzexe! The straw that broke this camel's back was Matthew Burgess's bug report . (IFS): Set it to the standard value, both here and in the script gzexe generates. Check for missing operand after parsing options, not before. This fixes the case for "cpexe --". Check for tail -n problem separately in gzexe and in the executable it generates, in case it's a different 'tail'. (trap): Remove $tmp only if $tmp is not the empty string. Preserve exit status. Don't use the nonstandard (and rarely available) "cpmod" utility. Don't use "set -C"; it's no longer useful and it breaks things in some cases. (main loop): Handle file names beginning with "-". Exit with status of failing program, not with 1. Fix some bugs in printing diagnostics, and in quoting. Require the skip= line to have at least one digit. Use test -u and test -g rather than using the (less-reliable) ls. Refuse to compress more programs, e.g., sh. Use mktemp rather than tempfile. Build a copy of the compressed or uncompressed executable in the same directory as the executable, as that's less likely to go wrong if disk space is low. Have the executable exit with status 127, not 1, if the decompression process fails; this is more compatible with meta-programs like nohup. Have the executable uncompress to a temp file with the same basename as the executable; this is more likely to go right. Fix a race condition where the executable temporarily did not exist (in either old or new forms). Check for race conditions better when mv fails. Do not attempt to use cp to do the real work, only to copy permissions to a temp file, since we don't want to trash running executables. 2006-11-26 Paul Eggert * inflate.c (inflate_dynamic, inflate): Don't send output to stderr unless DEBUG is defined and 'verbose'. Problem reported by Santiago Vila. * zgrep.in: If the file name contains newline, &, \, or |, escape the character so that 'sed' doesn't mishandle it as a replacement. Problem reported by Bdale Garbee. 2006-11-25 Paul Eggert * gzip.1 (OPTIONS): ouput -> output. Problem reported by Matt Taggart. * vms/gzip.hlp: Likewise. * Makefile.am (FILES_TO_CHECK): New macro. (check-local): Check only the files in FILES_TO_CHECK, since some files under the working directory might be mutating as the test is run, e.g., with "make check >log". Problem reported by Jim Meyering. 2006-11-20 Paul Eggert * NEWS, configure.ac (AC_INIT): Version 1.3.6 released. * NEWS: Describe 1.3.6's changes. * NEWS, README, README-alpha, TODO: Change from GPL to FDL. * .cvsignore, README-cvs, bootstrap, bootstrap.conf: New files. * doc/Makefile.am, lib/Makefile.am: New files. * THANKS: Change own email address to cs.ucla.edu. Add Sverre Jarp. * TODO: Add new tasks to remove porting cruft and all those buggy scripts. * configure.ac: Renamed from configure.in. (AC_PREREQ): Bump to 2.60. (AC_INIT): Bump version to 1.3.6. (AC_CONFIG_AUX_DIR): New. (AC_CONFIG_HEADERS): Move config.h to lib. Input is now lib/config.hin. (AM_INIT_AUTOMAKE): Add gnits, dist-shar. (AC_PROG_CC_STDC): New, replacing AC_PROG_CC. (AM_PROG_CC_C_O, AC_PROG_RANLIB): New. (AC_AIX, AC_GNU_SOURCE, AC_MINIX): Remove; gnulib does them now. (gl_EARLY, gl_INIT): New. match.c was moved to lib/match.c. (AC_CHECK_HEADERS_ONCE): Replace AC_CHECK_HEADERS. Don't check for sys/utime.h or utime.h. (AC_CHECK_FUNCS_ONCE): Replace AC_CHECK_FUNCS. Check for fchmod and fchown, not utime. (AC_REPLACE_FUNCS): Remove; rpmatch is now done by gnulib. (AC_CONFIG_FILES): Add doc/Makefile, lib/Makefile. * bits.c: Use the more-usual form for copyright notices in source code. * deflate.c: Likewise. * gzip.c: Likewise. * gzip.h: Likewise. * inflate.c: Likewise. * lzw.h: Likewise. * revision.h: Likewise. * tailor.h: Likewise. * trees.c: Likewise. * unpack.c: Likewise. * unzip.c: Likewise. * util.c: Likewise. * crypt.c (dummy): Add decl so that pedantic compilers won't complain about an empty file. * gzip.c (license_msg): Use more-modern wording. Include fcntl-safer.h, openat.h, stat-macros.h, stat-time.h. Simply include if !NO_DIR, removing a rats-nest of #ifdefs. Simply include if !defined NO_UTIME, removing a another rats-nest of #ifdefs. (DIR_OPT, TIME_OPT): Remove. (_D_EXACT_NAMLEN): Renamed from NAMLEN. All uses changed. (S_ISDIR, S_ISREG, O_BINARY, O_CREAT, O_EXCL, S_IRUSR, S_IWUSR): Remove; gnulib now does this. (RETSIGTYPE): Remove; Autoconf does this. (program_name): Renamed from progname, for compatibility with gnulib. All uses changed. (time_stamp): Now struct timespec, not time_t. All uses changd. (remove_oftime): Now volatile. (reset_times): Remove; now done by futimens. (usage): Remove. (try_help): New function. (help, license): Don't output date as part of version. A version number suffices. (help): Redo help message to match style of coreutils etc. (version): Don't bother printing compile-time configuration info like STDC_HEADERS. (main): Don't assume strlen (argv[0]) < INT_MAX (!). On usage errors, suggest --help without outputting all the help. (main, do_list): Remove unnecessary casts. (treat_stdin, treat_file, get_method, copy_stat): Support sub-second time stamp resolution. (treat_file, copy_istat): Close some race conditions if files are renamed as we read or write them. (treat_file): Do not attempt to reset the access times of directories that we read. (open_and_stat, open_input_file): New functions. (do_stat, get_istat): Remove; most of the contents went to these new functions. (make_ofname): Don't use WARN, as it affects exit status. (get_method): When the original file name was truncated, restore from its base name, not from its full name. (do_list): Avoid undefined behavior with out-of-range time stamps. ctime, for example, cannot be invoked on arbitrary time stamps safely, since it might overrun an internal buffer. Do not assume that localtime succeeds. (copy_stat): Do not remove input file; that's now the caller's responsibility. This avoids a problem if there is a write error when the caller closes the output file. (treat_dir): New arg FD, to avoid a race condition. All uses changed. (remove_output_file): New function. (abort_gzip): Use it. (abort_gzip_signal): New function, which is async-signal-safe. Exit with the signal that we got. * gzip.h (program_name, time_stamp, abort_gzip): Adjust decls to match gzip.c changes. * inflate.c (huft_build): Return 2 if null input. * tailor.h (HAVE_UTIME): Do not define; gnulib does this now. (OPEN): Use open_safer, not plain open. * unlzh.c (NPT): Set to 1<, for xalloc_die decl. (gzip_base_name): Renamed from base_name, so we don't collide with gnulib. All uses changed. (add_envopt): Use xstrdup instead of xmalloc+strcpy. Use xcalloc rather than calloc + check. (gzip_error): Renamed from error, so we don't collide with gnulib. All uses changed. (xalloc_die): New function. (xmalloc): Remove; no longer needed. * zip.c (zip): Watch for time stamp overflow; the old code mishandled negative time stamps. * gzexe.in: Add support for --help, --version, --. Don't call basename or sed if we can avoid it. * zdiff.in: Likewise. * zforce.in: Likewise. * zgrep.in: Likewise. * zless.in: Likewise. * zmore.in: Likewise. * znew.in: Likewise. * zdiff.in: Protect against file names beginning with "-". * zmore.in: Likewise. * zgrep.in: Use printf rather than echo, to avoid problems with leading "-" and backslash. Return status of subsidiary grep. * zless.in: Add copyright notice. * zless.1: We now pass "--" to LESSOPEN. (BUGS): Mention that input file arguments are required. Add copyright notice. * COPYING: Update to current version. * Makefile.am (SUBDIRS): New macro. (AUTOMAKE_OPTIONS): Remove; now done in configure.ac. (M4DIR, ACINCLUDE_INPUTS): Remove. (EXTRA_DIST): Remove getopt.h. (gzip_SOURCES): Remove getopt.c, getopt1.c, yesno.c. (gzip_LDADD): Change from @LIBOBJS@ to lib/libgzip.a. (AM_MAKEINFOFLAGS, info_TEXINFOS, gzip_TEXINFOS, ASCPP, LN_S): (match.$(OBJEXT)): Move to subdirectory makefiles. (.in): Substitute @VERSION@, too. (check-local): New rule. (MOSTLYCLEANFILES): Add _match.S. * doc/gzip.texi: Renamed from gzip.texi. Change to GNU FDL without invariant sections or cover texts. Don't put version number or date into sample gzip -h output. * lib/match.c: Renamed from match.c. Add ia64 version written by Sverre Jarp (HP Labs). * INSTALL: Remove from CVS; now created automatically by the bootstrap script. * Makefile.in: Likewise. * aclocal.m4: Likewise. * config.h.in: Likewise. * configure: Likewise. * depcomp: Likewise. * fdl.texi: Likewise. * getopt.c: Likewise. * getopt.h: Likewise. * getopt1.c: Likewise. * gzip.doc: Likewise. * gzip.info: Likewise. * install-sh: Likewise. * mdate-sh: Likewise. * missing: Likewise. * mkinstalldirs: Likewise. * rpmatch.c: Likewise. * stamp-vti: Likewise. * texinfo.tex: Likewise. * version.texi: Likewise. * yesno.c: Likewise. 2002-09-30 Paul Eggert * NEWS, README, revision.h, configure.in (AM_INIT_AUTOMAKE): Revision 1.3.5, dated today. * util.c (fprint_off): Fix bug in printing values greater than 10 * 2**32 bytes. Bug reported by Bryan Andersen. * Makefile.am (match.$(OBJEXT)): Use .S as extension for $(ASCPP), to keep gcc happy. * configure.in: Likewise. Upgrade assembly-language checking for Autoconf 2.54, using cache vars. (AC_PROG_CPP, AC_OBJEXT): Add. * match.c: Accept __i386 and __i386__ as synonyms for i386. Bug reported by "fork __" . 2002-09-29 Paul Eggert * gzip.texi (Overview): Suggest how to use gunzip on zip files. * zless.1, zless.in: Use LESSOPEN, not PAGER. Suggested by . 2002-09-28 Paul Eggert * zforce.in: Use shell pattern matching instead of 'expr', which mishandles names like "+". Remove old check for 14-byte file names on hosts with broken "mv" implementations, as such systems aren't in use any more and it's better nowadays to support file names longer than 14 bytes. Rely on "mv"'s error-reporting. This fixes a portability bug reported by Ralf Neubauer, along with some other bugs. Remove dangling output symlinks properly. Bug reported by Kalle Olavi Niemitalo. * gzip.c (lstat): New macro, for platforms lacking lstat. (do_stat): Use it. (name_too_long, check_ofname): Use lstat instead of stat. 2002-09-27 Paul Eggert * zforce.in: Use "gzip -lv", not "gzip -v". Patch by Ralf Neubauer. * configure.in (ASCPP): Don't use test -a, as POSIX says it's not portable. * znew.in: Likewise. * zmore.in: Likewise. Similarly, don't use test -o, or test -t with no operand. * gzexe.in (PATH): Set to same as other programs. Don't assume "tail +22" works; POSIX removed this. Check against compressing "tail". Check against "skip=" line with no integer. * zgrep.in: Exit with status 2 if trouble, for consistency with grep. * gzip.c (main): Avoid core dump in diagnostic message if incorrect suffix is given. 2002-09-26 Paul Eggert * zdiff.in: Use "trap -" instead of "trap". Patch by Nicolas Boullis. Use names, not numbers, for signals. Patch by Andrew Stribblehill. * NEWS, README, revision.h, configure.in (AM_INIT_AUTOMAKE): Revision 1.3.4, dated today. * README-alpha: Upgrade to Autoconf 2.54 and Automake 1.7. * configure.in (AC_PREREQ): Move to start, and increase to 2.54. (AC_INIT, AM_INIT_AUTOMAKE, AC_CONFIG_SRCDIR, AC_CONFIG_FILES, AC_OUTPUT): Use modern style. (AC_OBJEXT, AC_EXEEXT): Remove; obsolete. (AC_GNU_SOURCE): Add. (AC_HEADER_STDC): Renamed from AC_STDC_HEADERS. (AC_CHECK_HEADERS): Remove stdlib.h, string.h, unistd.h; now done by Autoconf. (AC_SUBST): Remove CFLAGS; now done by Autoconf. * gzip.texi: Use the GNU FDL for distribution terms, following the recipe in the Texinfo manual. Use Automake-generated variables for date and version. * fdl.texi, mdate-sh: New files. * Makefile.am (AM_MAKEINFOFLAGS): Add --no-split. (gzip_TEXINFOS): New macro. * tailor.h (NO_DIR): Define to 1, not the empty string. * gzip.c (NO_DIR): Define to 0 if not defined. All uses changed. (usage): Don't put '#if' inside printf, as the C standard says that it is not portable if printf is a macro. Don't lose output when decompressing truncated input. Bug reported by Nadav Har'El. * inflate.c (GETBYTE): New macro. (NEXTBYTE): Use it. (inflate_dynamic, inflate_block): Add a local variable w, needed by GETBYTE. 2002-03-08 Paul Eggert * NEWS, README, revision.h, gzip.texi, configure.in (AM_INIT_AUTOMAKE): Revision 1.3.3, dated today. * README-alpha: Now using latest stable GNU tools. Using the latest tools allows gzip to build correctly on hosts conforming to POSIX 1003.1-2001. * configure.in (match): Use AC_LIBOBJ; Autoconf 2.53 requires it. (LIBOBJS): No longer need to subst, since AC_LIBOBJ does it. (AC_PREREQ): Bump to 2.53. * Makefile.am (install-exec-hook, remove-installed-links): Work even when configured with --program-transform-name. * gzip.c (license_msg): Update copyright. (z_len): Now of type size_t. 2001-11-03 Paul Eggert * NEWS, README, revision.h, gzip.texi, configure.in (AM_INIT_AUTOMAKE): Revision 1.3.2, dated today. * Makefile.am (LN_S): New macro. (install-exec-hook): Depend on remove-installed-links. Affect $(DESTDIR)$(bindir), not just $(bindir). (uninstall-local, remove-installed-links): New rules. * README-alpha: This release built with autoconf 2.52f. * TODO: Add rsync patch. * configure.in: Add AC_PREREQ(2.52) and AC_PROG_LN_S. * gzip.1, zmore.1: Fix troff glitches, using Eric S. Raymond's suggestions for inspiration. * m4/shell.m4(AC_PROG_SHELL): Add commentary and cleanup. * gzip.texi, gzip.1: Add pointers to RFCs 1951 and 1952. Mention that gzip --list reports file sizes modulo 2^32. * gzip.1: Remove incorrect report of 2 GB bug. Add copyright notice. 2001-09-30 Paul Eggert * NEWS, README, revision.h, gzip.texi, configure.in (AM_INIT_AUTOMAKE): Revision 1.3.1, dated today. * INSTALL, getopt.c, getopt.h, getopt1.c, install-sh, missing, mkinstalldirs, texinfo.tex: Sync with latest version in other packages. * acinclude.m4, config.guess, config.sub: Remove. * depcomp, rpmatch.c, yesno.c: New files. * ChangeLog, README, NEWS, TODO, configure.in, zgrep.in, zmore.in: Add copyright notice. * Makefile.am (ACLOCAL_AMFLAGS): New macro. (ACINCLUDE_INPUTS): Remove all but shell.m4. ($(srcdir)/acinclude.m4): Remove. (gzip_sources): Add yesno.c. * TODO: Add i18n. * configure.in (AC_CANONICAL_HOST): Remove. (AC_AIX, AC_MINIX): Move earlier. (AC_REPLACE_FUNCS): Add rpmatch. * gzip.c (main): Report error if -b operand is not a nonnegative integer. (treat_file): Don't assume tab width is 8, or that characters are one column wide. (make_ofname): Use WARN to warn about unchanged files. (get_method): "get newer version of gzip" -> "not supported" (check_ofname): Use yesno instead of checking for 'y' ourselves. (treat_file): Do not assume link count fits in int. * gzip.h (yesno): New decl. * util.c (display_ratio): Use floating point to compute ratio: this avoids problems with integer overflow. * zgrep.in: Add support for --, -H, -h, -L, -l, -C, -d, -m and their long equivalents. Warn that -r and -d are not supported. * zmore.in: Check that file is readable before attempting to decompress it. 2000-10-09 Paul Eggert * configure.in (AC_CHECK_FUNCS): Add lstat. 2000-07-20 Paul Eggert Use a POSIX-compliant shell instead of /bin/sh. Idea suggested by Albert Chin-A-Young . * m4/shell.m4: New file. * configure.in (AC_PROG_SHELL): Add it. * Makefile.am (ACINCLUDE_INPUTS): Add $(M4DIR)/shell.m4. (.in): Replace /bin/sh with $(SHELL). 2000-04-17 Bruno Haible * Makefile.am (install-exec-hook): If hard links fail, try symlinks. 2000-04-02 Jim Meyering * Makefile.am (install-exec-hook): Remove link targets before installing. 2000-01-02 Albert Chin-A-Young * gzip.texi: Add direntry. 1999-12-21 Paul Eggert * NEWS, README, revision.h, gzip.texi: Revision 1.3, dated today. * gzip.c (license_msg, usage, version, help, license): Adjust to current GNU coding standards. (total_in, total_out): Remove unnecessary initialization. * zip.c (file_read): Report read errors. * util.c (fill_inbuf): Likewise. * gzip.c (main): Don't assume EOF == -1. * unlzw.c (unlzw): Likewise. * util.c (copy, fill_inbuf): Likewise. 1999-11-18 Paul Eggert * m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Work around a bug in the QNX shell, which doesn't propagate exit status of failed commands inside shell assignments. 1999-10-07 Paul Eggert * NEWS, README, revision.h, gzip.texi: Revision 1.2.4294967306 dated today. This is the successor to revision 1.2.4.4294967305; automake requires the new (shorter) number. Convert to automake. * Makefile.am, gunzip.1, zcat.1, zcmp.1, AUTHORS: New files. * revision.h (VERSION): Remove; moved to config.h. * configure.in (AM_INIT_AUTOMAKE, AM_CONFIG_HEADER, AC_CANONICAL_HOST, AC_OBJEXT): Add. (AC_PROG_CPP): Remove. (AC_SYS_LARGEFILE): Add, replacing older inline code. (ASCPP): Use $OBJEXT. (LIBOBJS): Add match.o if needed. (AC_PROG_INSTALL): Remove. (AC_EXT, AC_C_CONST): Add. (AC_CHECK_HEADERS): Add, replacing lots of AC_HEADER_CHECKs. All instances of defined(NO_TIME_H) changed to !defined(HAVE_TIME_H), etc. (AC_CHECK_FUNCS): Add utime. (SEDCMD): Use $interpval, not $ac_cv_sys_interpreter. (AC_PREFIX_PROGRAM): Add, replacing AC_PREFIX. (ZCAT, G): Remove. (LIBOBJS): Add. (OBJA): Remove; LIBOBJS now does this. * bits.c, gzip.c, deflate.c, inflate.c, lzw.c, trees.c, unlzh.c, unlzw.c, unpack.c, unzip.c, util.c, zip.c: Include first; this is needed for proper large-file support, given the new way of configuring large files. * gzip.c: Include ; Ultrix needs this. (TIME_OPT): Use STRUCT_UTIMBUF instead of empty string. (help): Add bug-report address. (do_stat): Depend on HAVE_LSTAT, not S_IFLNK, S_ISLNK, and NO_SYMLINK. 1999-06-25 Paul Eggert * inflate.c (huft_build): Set n to length of v, to detect improper tables. Don't accidentally grow j past z. 1999-06-24 Paul Eggert * Makefile.in (check): Update texinfo.tex size. * configure.in (ASMV): Define with AC_DEFINE; do not manipulate DEFS directly, as this doesn't work with recent autoconf versions. 1999-02-06 Paul Eggert * NEWS, README, revision.h, gzip.texi: Revision 1.2.4.4294967305, dated today. This merges the changes from gzip 1.2.4a, which fix some typographical errors in the documentation and update the bug-reporting address. 1999-01-27 Paul Eggert * NEWS, README, revision.h (VERSION, REVDATE): Revision 1.2.4.4294967304, dated today. Port to autoconf 2.13. * Makefile.in (next, next-fat, coherent): Update dirent headers to match Autoconf 2.13. * configure.in (AC_RETSIGTYP): Remove; superseded by AC_TYPE_SIGNAL. (AC_DYNIX_SEQ, AC_XENIX_DIR, AC_DIR_HEADER): Remove; superseded by AC_HEADER_DIRENT. * tailor.h (HAVE_DIRENT_H, HAVE_SYS_DIR_H): Define instad of DIRENT, SYSDIR. * gzip.c (NAMLEN): Renamed from NLENGTH. Depend on Autoconf 2.13 names HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H instead of the oldfashioned names DIRENT, SYSDIR, SYSNDIR, NDIR. (CLOSEDIR): New macro. (progerror): New function. (treat_stdin, treat_file, creat_outfile, get_istat, check_ofname, treat_dir): Use it, for brevity. (treat_dir): Report any I/O errors when reading directories. * COPYING, INSTALL, doc/texinfo.tex, install-sh: Update to latest public versions. 1998-11-18 Paul Eggert * NEWS, README, revision.h (VERSION, REVDATE): Revision 1.2.4.4294967303, dated today. * gzip.c (get_method): Don't complain about trailing zeros at the end of a gzipped file, as they're commonly appended to fill out a block (e.g. by GNU tar). * configure.in (CPPFLAGS, LDFLAGS, LIBS): Add large-file support for HP-UX 10.20 and later. * getopt.c, getopt.h, texinfo.tex: Sync with latest version at gnu.org. * getopt1.c: New file. * Makefile.in (SRCS): Add getopt1.c. (OBJS): Add getopt1$O. (getopt1$O): New dependency. (check): Adjust desired size of compressed texinfo.tex to 55637, to reflect the 1998-11-13 edition of texinfo.tex. * gpl.texinfo: Remove; its addresses were out of date and these days the GPL isn't reprinted in manuals anyway. * gzip.texi: Remove reference to gpl.texinfo. * Makefile.in (GENFILES): Remove gpl.texinfo. 1998-11-13 Paul Eggert * NEWS, README, revision.h (VERSION, REVDATE): Revision 1.2.4.4294967302, dated today. * gzip.c (input_eof): New function. (treat_stdin, treat_file): Use it to fix premature detection of EOF bug when a gzipped file concatenation boundary is at a multiple of INBUFSIZ. * Makefile.in (installman): Fix bug when installing from subdirectory. ($(srcdir)/gzip.info): Renamed from gzip.info. ($(srcdir)/gzip.info, realclean): Do not split gzip.info. 1998-10-26 Paul Eggert * NEWS, README, revision.h (VERSION, REVDATE): Revision 1.2.4.4294967301, dated today. * TODO: Update bug reporting address. * Makefile.in (datadir, libdir): Remove unused macros. (mandir): Let configure set it. (manextdir): New macro. (alldirs): Remove datadir, libdir; add manextdir. (TEXI2HTML): New macro. (installman, uninstall): Install into manextdir, not mandir. (install-strip): New rule. (installdirs): No need to build $(prefix)/man separately, as it's now in alldirs. (match$O): Compile with $(CFLAGS). (gzip_1.html): New rule. * gzip.c (get_istat): Remove lint by initializing z_suffix_errno. (check_ofname): Do not assume unsigned char. * util.c (strlwr): Don't assume char is unsigned. (warning): Renamed from `warn'. * gzip.h (tolow): Use tolower instead of relying on 'A'-'a'. (warning): Renamed from warn. * trees.c (warning): Renamed from warn. 1998-10-14 Paul Eggert Merge patches from Debian. * NEWS, README, revision.h (VERSION, REVDATE): Revision 1.2.4.4294967300, dated today. * README, algorithm.doc, gzip.texi: Update maintainer address. * gzexe.in, zdiff.in, znew.in: Close security hole portably, using `set -C'. * zgrep.in: Add -A, -B. * gzexe.in: Use `gzip', not full path, to run gzip. * zdiff.in: Report proper exit status. * gzip.h (base_name): Renamed from basename. All uses changed. * gzip.c (z_suffix): Now char *, so that there's no limit to length. All uses change. (main): If --quiet, abort gzip when SIGPIPE received. (get_suffix): Don't assume z_suffix's address is a constant. (get_istat): Likewise. Check for buffer overflow. Preserve errno correctly. (make_ofname): Check for buffer overflow. * util.c (fill_inbuf): Flush window before reporting read error. * inflate.c (inflate_dynamic): Don't dump core if tl == NULL. * Makefile.in (GENFILES): Add zless.in. (SCRIPTS): Add zless. (default): Build all programs, not just gzip. (all): Add zless. (installbin): Install zegrep, zfgrep. (installman): Install zless man page. (install_compress): Don't install compress. (zless): New rule. 1998-09-16 Paul Eggert * NEWS, README, revision.h: Bump version number to 1.2.4.4294967299. * tailor.h (UNLINK_READONLY_BUG): New macro. * gzip.h (unlink): New decl. * util.c (xunlink): New function. * gzip.c (treat_file, create_outfile, check_ofname, copy_stat, abort_gzip): Use xunlink rather than unlink. Do not chmod the file; xunlink will do that if need be. 1998-05-21 Paul Eggert * NEWS, README, revision.h: Bump version number to 1.2.4.4294967298. * Makefile.in (prefix): Set from @prefix@. (distclean): Remove config.cache. 1998-01-15 Paul Eggert * NEWS, README, revision.h: Bump version number to indicate large-file support. 1997-10-08 Paul Eggert * gzip.c (CHAR_BIT): Define if doesn't. (OFF_T_MIN, OFF_T_MAX): New macros. (do_list): Revert to fixed format, but this time don't assume that 9 digits suffice; use a width taken from the maximum value that off_t can represent. (off_t): Do not typedef; autoconf handles this now. * gzip.c, util.c (): Include if HAVE_LIMITS_H. * gzip.h, util.c (fprint_off): Now takes int width argument. * configure.in (AC_HAVE_HEADERS): Check for limits.h. (AC_TYPE_OFF_T): Use this instead of grepping sys/types.h for off_t. (AC_TYPE_SIZE_T): Use this instead of obsolescent AC_SIZE_T. * tailor.h (NO_OFF_T): Remove. (off_t): Define this instead. 1997-10-03 Paul Eggert * Makefile.in, bits.c, configure.in, deflate.c, gzip.c, gzip.h, inflate.c, trees.c, unlzw.c, unpack.c, unzip.c, util.c, zip.c: Adjust to Solaris 2.6, which has large files but small off_t by default. * gzip.c: Output more reasonable message if input file is too large. * gzip.c, util.c: Propagate errno from point of error to `perror'. * unzip.c: Allow uncompressing files larger than 4 gigabytes. http://www.gzip.org/4g.patch (1996-07-21) Wed Aug 18 09:34:23 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.2.4 By default, do not restore file name and timestamp from those saved inside the .gz file (behave as 'compress'). Added the --name option to force name and timestamp restoration. Accept - as synonym for stdin. Use manlinks=so or ln to support either hard links or .so in man pages Accept foo.gz~ in zdiff. Added support for Windows NT Handle ENAMETOOLONG for strict Posix systems Use --recursive instead of --recurse to comply with Webster and the GNU stdandard. Allow installation of shell scripts with a g prefix: make G=g install Install by default zcat as gzcat if gzcat already exists in path. Let zmore behave as more when invoked without parameters (give help) Let gzip --list reject files not in gzip format even with --force. Don't complain about non gzip files for options -rt or -rl. Added advice in INSTALL for several systems. Added makefile entries for NeXTstep 3.1 (if configure fails) Avoid problem with memcpy on Pyramid (gave crc error on some files) Support the -r option when compiled with Borland C++ on msdos. Force lower case file names only for FAT file systems (not HPFS) Rewrite one expression in inflate.c to avoid cc bug on Solaris x86. In the msdos makefiles, get match.asm from the msdos subdirectory. Catch SIGTERM and SIGHUP only if they are not ignored. getopt.c: on Amiga, "#if !defined(const)" does not compile. Use register parameters on Amiga. Do not force names to lower case on Amiga. Fix support of Atari TOS (Makefile.st and tailor.h) In unlzw.c, do not suggest using zcat if zcat already used. In INSTALL, suggest using bsdinst for HPUX. Document Turbo C++ 1.0 bug in INSTALL. Improved the documentation relative to the --no-name option. Avoid signed/unsigned warnings in several files. Added pointer to jka-compr19.el in README. Added pointer to OS/2 executables in README. Added --block-compress in tar -z example (gzip.1 and gzip.texi). Don't keep rcsid in executable (avoid compilation warnings). Check also the correctness of the first byte of an .Z file. Return non zero status for an invalid option. Remove "NEWFILES" from os2/gzip.def for Borland C++ on OS/2. Remove "time stamp restored" message (just obey the -N request). Thu Jun 24 10:27:57 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.2.3 Don't display the output name when decompressing except with --verbose. Remove usage of alloca in getopt.c and all makefiles. Use ASCPP instead of CPP to avoid breaking AC_HEADER_CHECK on RiscOS. Added the zfile shell script in subdirectory sample. Moved the list of compiler bugs from README to INSTALL. Added vms/Readme.vms. Fix DIST_BUFSIZE check in unlzh.c for 16 bit machines. Fix REGSIGTYP macro in configure.in. Use 'define' instead of == in vms/gzip.hlp. Avoid warnings in unlzh.c Allow separate installation of binaries and man pages. Simplified handling of file names with spaces in zgrep and znew. Fix dependencies and remove rule for trees.c in amiga/Makefile.sasc Add missing quote in gzexe. Thu Jun 17 13:47:05 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.2.2 Fix a compilation error in gzip.c on Sun with cc (worked with gcc). Wed Jun 16 11:20:27 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.2.1 Let zmore act as more if the data is not gzipped. By default, display output name only when name was actually truncated. Use absolute path names in gzexe'd programs for better security. In gzexe, use chmod 700 instead of 755 and don't gzexe tail,rm,etc... Update vms/gzip.hlp. Added a note about the fast options (-1 to -3) in algorithm.doc. Improved man page for zgrep. Minor fixes to gzip.texi. Always set LC_ALL and LANG in configure (for tr on HPUX) Mon Jun 14 10:03:24 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.2 Added the --list option to display the file characteristics. Added the --no-name option: do not save or restore original filename Save the original name by default. Allow gunzip --suffix "" to attempt decompression on any file regardless of its extension if an original name is present. Add support for the SCO compress -H format. gzip --fast now compresses faster (speed close to that of compress) with degraded compression ratio (but still better than compress). Default level changed to -6 (acts exactly as previous level -5) to be a better indication of its placement in the speed/ratio range. Use smart name truncation: 123456789012.c -> 123456789.c.gz instead of 12345678901.gz With --force, let zcat pass non gzip'ed data unchanged (zcat == cat) Added the zgrep shell script. Made sub.c useful for 16 bit sound, 24 bit images, etc.. Supress warnings about suffix for gunzip -r, except with --verbose. Moved the sample programs to a subdirectory sample. On MSDOS, use .gz extension when possible (files without extension) Added a "Special targets" section in INSTALL. Use stty -g correctly in zmore.in. Use cheaper test for gzipness in zforce.in. Remove space before $ in match.S (no longer accepted by gas 2.x) For the shell scripts, do not assume that gzip is in the path. Fix syntax error and define lnk$library in vms/Makefile.mms REGSIGTYPE is void on the Amiga. Do not write empty line when decompressing stdin with --verbose. Fix the 1.1.2 fix for VMS (bug in get_suffix) Added warning in README about compiler bug on Solaris 2.1 for x86. Added warning about 'rehash' in INSTALL. Removed default value of read_buf in bits.c (supermax doesn't like). In tailor.h, added support for Borland C and Zortech C on OS/2. Added warning in gzexe about Ultrix buggy sh (use /bin/sh5 instead). Added warning in zdiff about AIX buggy sh (use /bin/ksh instead). In configure.in, do not try the asm code if DEFS contains NO_ASM Fri Jun 4 09:49:33 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.1.2 Fix serious bug for VMS (-gz not removed when decompressing). Allow suffix other than .gz in znew. Do not display compression ratio when decompressing stdin. In zmore.in, work around brain damaged stty -g (Ultrix). Display a correct compression ratio for .Z files. Added .z to .gz renaming script in INTALL. Allow setting CFLAGS in configure. Add warning in README about bug in Concentrix cc compiler. Avoid || in Makefile.in (at least one make doesn't support this). Disable useless --ascii option for the Amiga. Add a pointer to the Primos executable in README. Added description of extra field in algorithm.doc. Do not redefine NULL in alloca.c. Added check for unsupported compression methods. Avoid getopt redeclaration on OSF/1. Tue Jun 1 09:07:15 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.1.1 Fix serious bug in vms.c (== instead of =). Added --ascii option. Add workaround in configure.in for Ultrix (quote eval argument) Do not use unset in znew (not supported on Ultrix) Use tar.gz instead of tar.z for the distribution of gzip. Add missing menu item in gzip.texi. Use size_t instead of unsigned, add AC_SIZE_T in configure.in. Fri May 28 11:40:01 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.1 Use .gz suffix by default, add --suffix option. Let gunzip accept a "_z" suffix (used by one 'compress' on Vax/VMS). Quit when reading garbage from stdin instead of reporting an error. Added sub.c and add.c for compression of 8 bit images. Added makefile for VAX/MMS and support for wildcards on VMS. Added support for MSC under OS/2. Added support for Prime/PRIMOS. Display compression ratio also when decompressing. Quit after --version (GNU standard) Use --force to bypass isatty() check. Accept --silent as synonym for --quiet (see longopts.table) Accept --to-stdout as synonym for --stdout (see longopts.table) Accept -H and -? in addition to -h and --help. Added comparison of zip and gzip in the readme file. Return an error code in all main compression/decompression functions. Continue processing other files in case of recoverable error. Add description of -f in znew.1. Do not keep uncompressed version for znew -t if .gz already exists. On Unix, use only st_ino and st_dev in same_file(). Use S_IRUSR and S_IWUSR if they exist. "test $1 = -d" -> "test x$1 = x-d" in gzexe. In match.S, use symbol sysV68 to detect the Motorola Delta. Do not include memory.h with gcc (conflicting declarations on Sun). Fix more typos. On VMS, define unlink as delete also for gcc. In "make check", unset LANG because "wc -c" fails on Kanji. Renamed shdir as scriptdir. Use the 68020 code instead of 68000 code on the NeXT. Documented --uncompress as synonym for --decompress. Include the standard header files before gzip.h (needed on Bull). Do not assume that _POSIX_VERSION implies dirent.h present. Removed gzip-tar.patch since tar 1.11.2 handles gzip directly. Use less memory when compiled with -DSMALL_MEM (for MSDOS). Optimized updcrc(). Don't complain if cc -E does not work correctly. Do not attempt reading 64K bytes on 16 bit Unix systems. Do not use the variable name 'overhead' which is reserved on Lynx! One BULL compiler does not like *p++ in inflate.c => *p, p++. Use casts on free and memcmp to avoid warnings. Remove the "off by more than one minute" time stamp kludge, but document how to avoid saving the time stamp on pipes if desired. Include crypt.h in inflate.c (one system predefines the CRYPT symbol). Add links to gunzip and (g)zcat in the default make rule. Create installation directories if they do not exist. Clarified --prefix option in INSTALL. Use symbol mc68k in match.S for the DIAB DS90. Guard against zero length _match.s in configure.in. In zmore, restore all tty options using stty -g. Added support for MacOS Simplified makecrc.c. Avoid warnings in getopt.c, util.c, unlzw.c. Use autoconf 1.4, in particular for INSTALL and AC_HAVE_POUNDBANG Use .so instead of hard links for zcat.1, gunzip.1 and zcmp.1. Fixed declration of sig_type. Make consistency check in fcfree. Added ztouch. Do not complain if utime fails on a directory (for OS/2). Thu Mar 18 18:56:43 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.0.7 Allow zmore to read from standard input (like more). Support the 68000 (Atari ST) in match.S. Retry partial writes (required on Linux when gzip is suspended in a pipe). Allow full pathnames and renamings in gzexe. Don't let gzexe compress setuid executables or gzip itself. Added vms/Makefile.gcc for gcc on the Vax. Give a pointer to Solaris and VMS executables of gzip in README. Allow installation of binaries and shell scripts in different dirs. Do not use alloca on the Cray. Provide strspn and strcspn if string.h does not exist. Define O_CREAT and O_EXCL from FCREAT and FEXCL if necessary. Remove gzip.doc in make realclean. Fixed many typos. (Corrections to my English are welcome.) Put "make manext=l install" at the correct place in INSTALL. Fix incorrect examples in INSTALL and give more examples. Include zdiff.1 for install and uninstall. Allows complex PAGER variable in zmore (e.g.: PAGER="col -x | more") Avoid warning on unused indfound in getopt.c. Cast memset arg to void* (required by some buggy compilers). Include sys/types.h before dirent.h in acgeneral.m4. Fix acgeneral.m4 AC_COMPILE_CHECK to avoid warnings. Don't use alloca.c with gcc. (One NeXT user did not have alloca.h). Change all error messages according to GNU standards. Restore time stamp only if off by more than one minute. Allow installation of zcat as gzcat. Suppress help message and send compressed data to the terminal when gzip is invoked without parameters and without redirection. (Explicit request from Noah Friedman.) Add compile option GNU_STANDARD to respect the GNU coding standards: with -DGNU_STANDARD, behave as gzip even if invoked under the name gunzip. (Complaints to /dev/null or the FSF, not to me!) Fri Mar 10 13:27:18 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.0.6 Let gzexe detect executables that are already gzexe'd. Don't try restoring record format on VMS (the simple 1.0.5 code worked correctly only on fixed-512 files). Suppress text_mode. Added asm version for 68000 in amiga/match.a. Use asm version for Atari TT. Fix "make clean" in vms/Makefile.vms. For OS/2, assume HPFS by default, add flag OS2FAT if necessary. Fixed some bugs in zdiff and define zcmp as a link to zdiff. Added zdiff.1 Remove configure hack for NeXT; add general fix to autoconf instead Do not strip a ".z" extension if this results in an empty name. Avoid array overflow in get_prefix() for extensions > 10 chars. Accept either q or e to quit zmore. In zmore, try restoring tty mode in all cases. Use Motorola style for match.S on the NeXT. configure.in: unsetenv *hangs* with the Siemens csh... Update vms/gzip.hlp. Thu Mar 4 14:13:34 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.0.5 For VMS, restore the file type for variable record format, otherwise extract in fixed length format (not perfect, but better than forcing all files to be in stream_LF format). Use "-z" suffix for VMS. Use only .z, .*-z, .tgz, .taz as valid gzip extensions; update zforce accordingly. Allow a version number in input file names for VMS. Added sample program zread.c. Fix "make check" for some implementations of /bin/sh. Don't rely on stat() for filenames with extension > 3 chars on MSDOS, OS2 and Atari. Garbage collect files in /tmp created by gzexe. Quote $opt in znew. Use TOUCH env variable in znew if it exists. Better error message for gunzip on empty or truncated file. Allow prototypes in getopt.h when __STDC__ defined but 0. Added "make clean" in vms/Makefile.vms. Removed -g from default CFLAGS (with Noah's permission!) Avoid too many HAVE_xxx_H for most systems; use common defaults. Moved default Atari flags into tailor.h for consistency. Use memzero() to clear the hash table. Update vms/gzip.hlp to reflect the VMS behavior. Fix OS_CODE (to fit in a byte). Add utime.h for the Amiga. Add gcc support for the Amiga. Work around incorrect dirent.h for NeXT 2.0. Added Makefile entry for Coherent. Fri Feb 22 11:20:49 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.0.4 Added optimized asm version for 68020. Add support for DJGPP. Add support for the Atari ST. Added zforce to rename gzip'ed files with truncated names. Do not install with name uncompress (some systems rely on the absence of any check in the old uncompress). Added missing function (fcfree) in msdos/tailor.c Let gunzip handle .tgz files, and let gzip skip them. Added 'stty min 1' in zmore for SysV and fixed trap code. Suppress .PHONY in Makefile.in, which breaks old makes. Added documentation about pcat and unpack in INSTALL. Add cast to getenv for systems without stdlib.h. Use VAXC instead of VMS to avoid confusion for gcc. Add -K to znew.1. Add gzexe.1. Try preserving file permissions in gzexe. Added -d option for gzexe. Guard against spaces in file names in gzexe. Use CMP env. variable in zcmp. Return a warning exit status for gzip of file with .z suffix. Suppress usage of d_ino which is not portable to all systems. Use #ifdef instead of #if for consistency. For VMS, use "cc util.c" instead of "cc util" (pb with logical names) Added utime() for Amiga. Renamed gzcat.1 as zcat.1. Include fcntl.h for Amiga (for read and write). For VMS, add definition of symbols and links in the makefiles. Give a VMS look to vms/gzip.hlp. Save the original name only when necessary. Add a mode parameter for open in read mode (required by VMS). For VMS, remove the version suffix from the original name. Accept both / and \ as path separator for MSDOS. Let gunzip extract stored .zip files correctly. Added warning about VFC format in vms/gzip.hlp. In znew, skip a bad file but process the others. Cleanup tailor.h. Use GZIP_OPT for VMS to avoid conflict with program name. Added description of GZIP variable in gzip.texi. Thu Feb 11 17:21:32 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.0.3 Add -K option for znew to keep old .Z files if smaller. Add -q option (quiet) to cancel -v in GZIP env variable. For Turbo C, normalize pointers before freeing them. Add more safety checks in add_envopt(). Add do_exit() for uniform exit path (always free memory). Reduce MAX_PATH_LEN for MSDOS. Include sys/types.h before signal.h Avoid strdup, the NeXT does not have it. Made gzexe safer on systems with filename limitation to 14 chars. Fri Feb 10 09:45:49 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.0.2 Added env variable GZIP for default options. Added support for the Amiga. znew now keeps the old .Z if it is smaller than the .z file. Added gzexe to compress rarely used executables. Reduce memory usage when using static allocation (no DYN_ALLOC). Better separation of warning and error return codes. Fix unlzw.c to make DYN_ALLOC and MAXSEG_64K independent options. Allow INBUFSIZ to be >= 32K in unlzw (don't use sign of rsize) Generate tar file in old format to avoid problems with old systems. Preserve time stamp in znew -P if touch -r works. Use ${PAGER-more} instead of ${PAGER:-more} in zmore. Do not use unsigned instead of mode_t. Better error message for trailing garbage in .z file; ignore this garbage on VMS. In zmore, use icanon instead of -cbreak on SYSV. Add trap handler in zmore. Use char* instead of void* for non STDC compilers. Added makefile entry for Xenix on 286. Return an error code when existing file was not overwritten. Use prototype of lzw.h for lzw.c. Fix znew with -P option alone. Give warning for directories even without -v. Close output file before unlink() in case of error. Suppress all target dependent ifdef from the portable files. Free all dynamically allocated variables upon exit. Thu Feb 4 18:23:56 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.0.1 Fixed some trivial errors in msdos/Makefile.bor Thu Feb 4 10:00:59 1993 Jean-loup Gailly (jloup@chorus.fr) * version 1.0 gzip now runs on Vax/VMS (Amiga support will come in next version). Do not overwrite files without -f when using /bin/sh. Support the test option -t for compressed (.Z) files. Flush output for bad compressed files. Add warning in README. Added makefiles for MSDOS. Don't rely on presence of csh in configure Added gunzip.1 and gzcat.1. Updated znew.1. Check reserved flags in unlzw(). Return dummy value in main to avoid lint warning. Define OF in lzw.h for lint. Allow both "znew -v -t" and "znew -vt". Don't overwrite the output file name for multiple parts. Echo just a warning if configure is out of date. Use ; instead of , in trees.c (confuses the SAS Amiga compiler). In INSTALL, document "DEFS='-DM_XENIX' ./configure". Use OTHER_PATH_SEP for more portability (DOS, OS2, VMS, AMIGA). Make all directories world writable for broken versions of tar. Use gzip -cd instead of zcat in zmore, zcmp, zdiff. Don't use GNU tar for distributions, some systems can't untar. Do not exit() for gzip --version. Mon Jan 26 10:26:42 1993 Jean-loup Gailly (jloup@chorus.fr) * Beta version 0.8.2 Avoid 'far' declarations for MSDOS. Use test -f instead of test -x in configure.in (for Ultrix) Add empty else part to if in Makefile.in for broken shells. Use NO_UNDERLINE instead of UNDERLINE (pb with Linux cpp) Accept continuation files with -ff (for damage recovery) Small patch to Makefile.os2 Use memzero instead of bzero to avoid potential conflicts Document restriction on extraction of zip files. Fix quoting in ACL_HAVE_SHELL_HACK. Do not check file size on MSDOS because of bug in DIET. Allow zcat on a file with multiple links. Add fix in inflate.c for compatibility with pkzip 2.04c. Release gzip in tar.z and tar format. (No tar.Z). Fri Jan 22 10:04:13 1993 Jean-loup Gailly (jloup@chorus.fr) * Beta version 0.8.1 Fixed Makefile.os2 Fixed #if directives that TurboC does not like. Don't rely on uncompress in znew, use gzip -d. Add the pipe option -P in znew. Add some more ideas in TODO. Support both NDIR and SYSNDIR. Sat Jan 21 15:46:38 1993 Jean-loup Gailly (jloup@chorus.fr) * Beta version 0.8 Support unpack. Check for _match.o in configure.in in addition to return status. Include in zip.c Define local variables and functions as local. Accept more alternative names for the program (pcat, gzcat, ...). Accept .exe as well as .EXE. Uncompress files with multiple links only with -f. Better error message for gunzip of non-existent file.z. Fix the entry for /etc/magic in INSTALL. Use AC_HAVE_HEADERS uniformly instead of special macros. Install the man pages as .1 by default instead of .l. Document crypt++.el in README. Fix for unlzw() on 16-bit machines (bitmask must be unsigned). Complain if input and output files are identical. Create a correct output name for files of exactly 13 chars. Do not overwrite CPP if set Check for i386 before trying to assemble match.s Check for underline in external name before assembling Add patch for tar 1.11.1. Mon Jan 5 10:16:24 1993 Jean-loup Gailly (jloup@chorus.fr) * Beta version 0.7 Use "make check" instead of "make test". Do not rely on dirname in znew. Keep time stamp and pass options to gzip in znew. Rename .l files back to .1 to avoid conflict with lex Do not create .z.z files with gzip -r. Use nice_match in match.asm Unroll loops in deflate.c Do not attempt matches beyond the window end Allow again gunzip .zip files (was working in 0.5) Allow again compilation with TurboC 2.0 (was working in 0.4) Tue Dec 30 20:00:19 1992 Jean-loup Gailly (jloup@chorus.fr) * Beta version 0.6 The .z extension is used by pack, not compact (README, gzip.1) Accept gzcat in addition to zcat. Use PAGER in zmore if defined. Man pages for /usr/local/man/manl should have extension .l. Don't redefine bzero on the NeXT Allow incomplete Huffman table if there is only one code. Don't lookahead more than 7 bits (caused premature EOF). Added "make test" to check for compiler bugs. Don't rely on `i386`; try to assemble directly Change magic header to avoid conflict with freeze 1.x. Added entry for /etc/magic in INSTALL. Do not destroy an input .zip file with more than one member. Display "untested" instead of "OK" for gzip -t foo.Z With -t, skip stdin in .Z format Allow multiple compressed members in an input file. Ignore a zero time stamp. Made znew safer. Tue Dec 29 10:00:19 1992 Noah Friedman (friedman@gnu.ai.mit.edu) Added test for #!/bin/sh in configure.in. Fix some references to $srcdir in Makefile.in Mon Dec 21 17:33:35 1992 Jean-Loup Gailly (jloup@chorus.fr) * Beta version 0.5 Put RCS ids in all files. Added znew to recompress old .Z files with gzip. Avoid "already .z suffix" messages for -r and no -v. Put back check for d_ino in treat_dir(). Use HAVE_STRING_H instead of USG. Added os2/Makefile.os2 Use SYSUTIME on OS/2. Info dir is $(prefix)/info, not $(prefix)/lib/info. Support long options, added getopt and alloca Support -V and -t Reorder configure.in according to suggestions in autoconf.info Allow links when not removing original file Allow either .z or .Z in zdiff Wed Nov 25 11:40:04 1992 Jean-loup Gailly (jloup@chorus.fr) * Beta version 0.4.1 Save only the original base name, don't include any directory prefix. Don't use HAVE_LONG_FILE_NAMES (support multiple file system types). Fix declaration of abort_gzip in gzip.h. Include unistd.h when it exists to avoid warnings with gcc -Wall. Mon Nov 23 12:39:01 1992 Jean-loup Gailly (jloup@chorus.fr) * Beta version 0.4 Lots of cleanup Use autoconf generated 'configure' Fixed the NO_MULTIPLE_DOTS code Fixed the save_orig_name code Support for MSDOS (Turbo C) Thu Nov 19 15:18:22 1992 Jean-loup Gailly (jloup@chorus.fr) * Beta version 0.3 Added auto configuration. Just type "make" now. Don't overwrite compress by default in "make install". Use "make install_compress" to overwrite. Add match.s for 386 boxes. Added documentation in texinfo format. Provide help for "gunzip" invoked without redirected input. Save original file name when necessary. Support OS/2 (Kai-Uwe Rommel). Tue Nov 17 14:32:53 1992 Jean-loup Gailly (jloup@chorus.fr) * Alpha version 0.2.4 Return 0 in get_istat() when ok (caused error with zcat). Don't update crc on compressed data (caused crc errors on large files). Fri Nov 13 15:04:12 1992 Jean-loup Gailly (jloup@chorus.fr) * Alpha version 0.2.3 Initialize rsize in unlzw.c Initialize ofd for zcat. Do not use volatile ifname as argument of treat_dir. Add -1 to -9 in gzip.1. Sat Oct 31 18:30:00 1992 Jean-loup Gailly (jloup@chorus.fr) * Alpha version 0.2.2. Fix error messages. Accept gunzip on zip files. Sat Oct 31 17:15:00 1992 Jean-loup Gailly (jloup@chorus.fr) * Alpha version 0.2.1 Use ctype.h in util.c (problem on SysV). Create BINDIR if it does not exist. Use cc by default. Added zcmp, zmore, zdiff. Fixed the man page gzip.1. Sat Oct 31 17:00:00 1992 Jean-loup Gailly (jloup@chorus.fr) * Alpha version 0.2 Fixed compilation problems with gcc Sat Oct 31 12:46:00 1992 Jean-loup Gailly (jloup@chorus.fr) * Alpha version 0.1 released (under time pressure), so it's not much tested, sorry. ----- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2006, 2007 Free Software Foundation, Inc. Copyright (C) 1992, 1993 Jean-loup Gailly Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved.