+2018-12-29 Jim Meyering <meyering@fb.com>
+
+ version 1.10
+ * NEWS: Record release date.
+
+2018-12-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ build: enable -Wunreachable-code
+ * configure.ac (nw): Remove -Wunreachable-code from the list of
+ disabled warnings, now that all offending statements have been removed.
+
+ maint: remove unreachable code
+ Problem reported by Oracle Developer Studio 12.6.
+ In the old days we needed a return statement at the end of
+ the gzip main function to pacify traditional 'lint', but
+ lint checkers nowadays are smarter.
+ * gzip.c (main):
+ * zip.c (file_read): Remove unreachable code.
+
+2018-12-23 Jim Meyering <meyering@fb.com>
+
+ maint: use a slightly cleaner expression
+ * gzip.c (do_list): Simplify an expression:
+ - int positive_off_t_width = INT_BUFSIZE_BOUND (off_t) - 2;
+ + int positive_off_t_width = INT_STRLEN_BOUND (off_t) - 1;
+
+2018-12-22 Jim Meyering <meyering@fb.com>
+
+ build: avoid build failure with --enable-gcc-warnings and latest gcc
+ * gzip.c (do_list): There was a loop to compute the maximum width
+ of a decimal positive off_t value. Replace it with assignment to a
+ constant. Noticed because gcc 9.0.0 20181219 warned about its use
+ as a printf format-width value.
+ (OFF_T_MAX): Remove now-unused definition.
+
+2018-12-21 Jim Meyering <meyering@fb.com>
+
+ maint: improve a comment
+ * trees.c (flush_block): Fix grammar/spelling in a comment.
+
+ maint: update gnulib to latest; also update bootstrap and init.sh
+
+ build: make the autoconf-2.63 requirement explicit
+ * configure.ac: AC_PREREQ: Require 2.63, not 2.59.
+ Autoconf-2.63 has been required for some time via gnulib.
+ This merely makes it explicit.
+
+2018-11-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: fix use of uninitialized memory
+ Problem reported by Hanno Böck (Bug#33501).
+ * NEWS: Mention this.
+ * inflate.c (inflate_dynamic): Return if code is invalid.
+ Fix by Mark Adler.
+ * tests/hufts: Add test case for the bug.
+
+2018-08-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * gzip.c (remove_output_file): Fix typo.
+
+ gzip: fix bug in signal-handling fix
+ Problem reported by Johannes Przybilla (Bug#32375#26).
+ * gzip.c (volatile_strcpy): Source is now pointer-to-volatile too.
+ (remove_output_file): Copy remove_ofname to a private nonvolatile
+ copy so that it can be passed to xunlink safely.
+
+2018-08-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix some theoretical races in signal handling
+ Problem reported by Johannes Przybilla (Bug#32375).
+ * NEWS: Mention this.
+ * bootstrap.conf (gnulib_modules): Add sigaction.
+ * gzip.c (SA_NOCLDSTOP, sigprocmask, sigset_t)
+ (siginterrupt) [!SA_NOCLDSTOP]: Remove; Gnulib not supplies these.
+ (remove_ofname): New var.
+ (volatile_strcpy): New function.
+ (create_outfile): Use it.
+ (install_signal_handlers, abort_gzip_signal): Assume sigaction.
+ (remove_output_file): New arg SIGNALS_ALREADY_BLOCKED.
+ All uses changed. Avoid unnecessary (and racy) call
+ to sigprocmask if this new arg is set.
+ (abort_gzip_signal): Assume C89 or better for signal handler type.
+ * gzip.h (RETSIGTYPE): Remove.
+ * lib/.gitignore, m4/.gitignore:
+ Add files brought in by Gnulib sigaction module. Sort.
+
+2018-08-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: port better to mingw again
+ Problem reported by Bdale Garbee (Bug#32305#8).
+ * gzip.c (do_chown): Use HAVE_FCHOWN || HAVE_CHOWN,
+ which is configured, instead of DO_CHOWN, which is not.
+
+2018-08-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: make the output more reproducible
+ Problem reported by Bernhard M. Wiedemann (Bug#32342).
+ * NEWS: Mention this.
+ * doc/gzip.texi (Overview, Invoking gzip): Document this.
+ * gzip.c (get_input_size_and_time): New function,
+ which implements the change.
+ (treat_stdin, treat_file): Use it.
+ * tests/reproducible: New test.
+ * tests/Makefile.am (TESTS): Add it.
+
+2018-07-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: port better to mingw
+ Problem reported by Bdale Garbee for Debian
+ * gzip.c (do_chown): Don't assume uid_t and gid_t.
+
+2018-07-01 Jim Meyering <meyering@fb.com>
+
+ maint: update gnulib to latest; also update bootstrap and init.sh
+
+2018-06-30 Jim Meyering <meyering@fb.com>
+
+ build: remove -Wformat-truncation=2 to avoid avoid false-positive
+ * configure.ac (GNULIB_WARN_CFLAGS): Add -Wformat-truncation=2,
+ to disable it when building gnulib with --enable-gcc-warnings.
+ This avoids what looks like a false positive from GCC 9:
+ strerror_r.c: In function 'rpl_strerror_r':
+ strerror_r.c:453:35: error: 'Unknown error ' directive output \
+ truncated writing 14 bytes into a region of size 2 \
+ [-Werror=format-truncation=]
+ snprintf (buf, buflen, "Unknown error %d", errnum);
+ ~~^~~~~~~~~~~~
+ In file included from /usr/include/stdio.h:862,
+ from ./stdio.h:43,
+ from strerror_r.c:29:
+ /usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' \
+ output between 16 and 26 bytes into a destination of size 2
+ return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
+
+2018-01-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ misc: update --version copyright
+ * gunzip.in, gzexe.in, gzip.c, zcat.in, zdiff.in, zforce.in, zgrep.in:
+ * zless.in, zmore.in, znew.in:
+ Update copyright year in --version output to 2018.
+ This part of the year-number update isn’t automated yet.
+
+2018-01-07 Jim Meyering <meyering@fb.com>
+
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
+ version 1.9
+ * NEWS: Record release date.
+
+2018-01-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzexe: port to macOS mktemp
+ Problem reported by Jeffrey Walton (Bug#30000).
+ * gzexe.in, zdiff.in, zgrep.in:
+ Don’t assume that mktemp works when given no arguments,
+ as this is not true for macOS. Instead, use a syntax
+ that should work with coreutils, NetBSD, and macOS.
+ While we’re in the neighborhood, be more consistent about how program
+ names are used in temporary file names. Also, watch out for TMPDIR
+ values that are not absolute file names, since they can cause problems
+ (e.g., leading "-").
+
+2018-01-03 Jim Meyering <meyering@fb.com>
+
+ maint: update gnulib and copyright dates for 2018
+ * gnulib: Update to latest.
+ * bootstrap: Update from gnulib.
+ * all files: Run "make update-copyright".
+
+2017-12-16 Jim Meyering <meyering@fb.com>
+
+ build: update gnulib to latest
+
+2017-11-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ maint: zforce and zmore exit status cleanup
+ Problem reported by Nelson H. F. Beebe.
+ * zforce.in, zmore.in: On failure, exit with status 1 instead of
+ with whatever failing status that printf or mv exited with.
+
+2017-11-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzexe: ensure file always exists
+ * gzexe.in: When in a filesystem that does not support symlinks,
+ use rm+cp rather than mv to make backups, so that the argument
+ file always exists.
+
+2017-11-23 Jim Meyering <meyering@fb.com>
+
+ build: update gnulib to latest
+
+2017-11-16 Jim Meyering <meyering@fb.com>
+
+ gzexe: work even without the ability to make a hard link
+ * gzexe.in: When ln -f fails to create a "~"-style backup,
+ fall back to using mv -f.
+ Reported by Bruno Haible in http://debbugs.gnu.org/29266
+
+2017-11-15 Jim Meyering <meyering@fb.com>
+
+ build: make each generated script unwritable
+ * Makefile.am (.in): Ensure that each generated script is unwritable.
+ This makes it less likely that someone (even me) will mistakenly
+ modify one of those generated files.
+
+2017-11-13 Jim Meyering <meyering@fb.com>
+
+ zless, znew: exit 1 upon --help or --version write failure
+ * zless.in: Exit 1 upon --help or --version write error.
+ * znew.in: Likewise.
+
+2017-11-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ maint: script diagnostics status cleanup
+ Problem reported by Bruno Haible (Bug#29266#20).
+ * NEWS: Mention this.
+ * gunzip.in, gzexe.in, zcat.in, zcmp.in, zdiff.in, zforce.in:
+ * zgrep.in, zless.in, zmore.in, znew.in:
+ Use printf instead of echo if the argument might contain ‘\’, at
+ least in theory. Don’t assume printf exits with status 1 on
+ failure; it might be some other positive status.
+ * gzexe.in: Use printf consistently instead of echo, and
+ proscribe it instead of echo.
+
+ tests: don’t be so strict about timestamps
+ * tests/timestamp: We’ve had many false alarms about timestamps
+ that are not gzip problems, but instead are problems with ‘touch’.
+ Attempt to work around them by not trusting ‘touch’ so much.
+ Problems and parts of solutions proposed by Bruno Haible.
+
+2017-11-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ build: update gnulib submodule to latest
+
+2017-11-09 Jim Meyering <meyering@fb.com>
+
+ gnulib: update to latest
+
+ maint: use noreturn, not ATTRIBUTE_NORETURN
+ Use gnulib's stdnoreturn module so we can include
+ <stdnoreturn.h> and the "noreturn" helper macro, thus
+ replacing the definition and uses of ATTRIBUTE_NORETURN.
+ * bootstrap.conf (gnulib_modules): Add stdnoreturn.
+ * gzip.h (ATTRIBUTE_NORETURN): Remove definition.
+ Include stdnoreturn.h and use "noreturn" for each
+ ATTRIBUTE_NORETURN-adorned function declaration.
+ * gzip.c (do_exit, try_help): Use "noreturn".
+
+ tests: unpack-invalid: correct and clean up a test
+ * tests/unpack-invalid: There was a logic error that would have
+ caused this test to ignore a failure if first iteration of the
+ loop set fail=1 and the second one reset it to 0. Also, use
+ "returns_ 1 ...", to require an exit status of 1.
+
+2017-11-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: diagnose out-of-range MTIME
+ This seems to be the problem reported by Bruno Haible for GNU/Hurd
+ i386 with touch 8.26 and glibc 2.24 (Bug#29033#20).
+ * NEWS: Document this.
+ * gzip.c (get_method): If MTIME is out of range for
+ this platform, warn and substitute the nearest in-range
+ value, instead of silently ignoring it.
+ (do_list): Remove no-longer-needed test for unknown time stamp.
+
+2017-11-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ misc: diagnose year-2038 configuration problems
+ * bootstrap.conf (gnulib_modules): Add year2038.
+ * m4/.gitignore: Add year2038.m4[
+
+ maint: remove IMPORT_FROM_GETTEXT
+ * bootstrap.conf (IMPORT_FROM_GETTEXT): Remove.
+ This is a relic from older Gnulib, and has no effect now.
+
+2017-10-29 Jim Meyering <meyering@fb.com>
+
+ tests/unpack-valid: port to printf that do not grok hex
+ Many versions of printf do not handle hexadecimal in a format string,
+ so this test would fail.
+ * tests/init.cfg (hex_printf_): Copied from grep's tests/init.cfg.
+ * tests/unpack-valid: Use hex_printf_.
+ Reported by Bruno Haible in https://bugs.gnu.org/29033#26
+
+ gnulib: update to latest; also update tests/init.sh from gnulib
+
+ gzip: fix bug with any upper case custom ('-S'-specified) suffix
+ Any user-specified suffix with an upper case
+ letter would fail to match desired file.
+ * gzip.c (get_suffix): First, arrange to have only one return
+ point rather than two. Put a lower-cased (just-malloc'd) copy
+ of z_suffix in the suffix vector, and free it before returning.
+ * tests/upper-suffix: New file.
+ * tests/Makefile.am (TESTS): Add it.
+ * NEWS: Mention it.
+ Reported by meo@xenialab.it in https://bugs.gnu.org/29006
+
+2017-10-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: fix bug in unpack EOB check
+ Problem reported by Vidar Holen (Bug#28861).
+ * NEWS: Mention fix.
+ * tests/unpack-valid: New test.
+ * tests/Makefile.am (TESTS): Add it.
+ * unpack.c (build_tree): Report an error if Huffman tree has
+ too few leaves.
+ * unpack.c (unpack): Fix check for EOB.
+ Remove now-unnecessary check for code out of range.
+
+2017-09-19 Jim Meyering <meyering@fb.com>
+
+ maint: fix "make syntax-check": remove useless HAVE_UTIME_H definitions
+ * tailor.h: Don't define HAVE_UTIME_H.
+
+ maint: avoid "make syntax-check" failure due to old-NEWS modification
+ * cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction.
+
+2017-09-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzexe: improve usage diagnostic
+ * gzexe.in (usage): Reword for clarity (Bug#28514).
+
+ misc: update --version copyright
+ * gunzip.in, gzexe.in, gzip.c, zcat.in, zdiff.in, zforce.in, zgrep.in:
+ * zless.in, zmore.in, znew.in: Update copyright year in --version
+ output to 2017.
+
+ maint: prefer HTTPS to HTTP, FTP in URLs
+
+ maint: copy bootstrap from Gnulib
+
+ maint: port to GCC 7.2
+ * configure.ac (WERROR_CFLAGS): Avoid -Wduplicated-branches.
+ * tailor.h (FALLTHROUGH): New macro, taken from Emacs.
+ * gzip.c (main): Use it.
+
+ maint: update .gitignore for recent Gnulib
+
+ build: update gnulib submodule to latest
+
+2017-05-07 Jim Meyering <meyering@fb.com>
+
+ maint: also distribute a zip-compressed tarball
+ * configure.ac (AM_INIT_AUTOMAKE): Add dist-zip, for
+ those lacking gzip, 7zip, etc. Suggested by Karl Berry in
+ https://bugs.gnu.org/25538.
+
+2017-03-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: port zdiff, zless to Busybox
+ Problem reported by Denys Zagorui (Bug#26088).
+ * tests/zdiff: Check that diff uses POSIX-format output.
+ * zless.in (less_version): Don't exit merely because 'less -V'
+ fails; instead, assume 'less' is compatible with an old version of
+ the original 'less'. Busybox 'less -V' fails, but apparently its
+ 'less' works anyway somehow.
+
+2017-02-06 Jim Meyering <meyering@fb.com>
+
+ tests: avoid failure when running with no tty
+ * tests/help-version (zcat_setup): Export TERM=dumb, to avoid zless
+ malfunction. Reported by Assaf Gordon in https://bugs.gnu.org/25636#8
+
+ gnulib: update to latest; and tests/init.sh and bootstrap
+
+ maint: change "time stamp" to "timestamp" globally
+ This avoids a new syntax-check failure.
+ * ChangeLog-2007: Perform that change.
+ * NEWS: Likewise.
+ * algorithm.doc: Likewise.
+ * doc/gzip.texi: Likewise.
+ * gunzip.in: Likewise.
+ * gzip.1: Likewise.
+ * gzip.c: Likewise.
+ * gzip.h: Likewise.
+ * m4/.gitignore: Likewise.
+ * sample/ztouch: Likewise.
+ * tests/timestamp: Likewise.
+ * unzip.c: Likewise.
+ * zip.c: Likewise.
+ * znew.1: Likewise.
+ * cfg.mk: Update the old news hash accordingly.
+
+2017-01-01 Jim Meyering <meyering@fb.com>
+
+ maint: tweak a distcheck rule
+ * dist-check.mk (my-distcheck): Don't use --disable-nls.
+ That option is now unrecognized.
+
+ maint: update gnulib and copyright dates for 2017
+ * gnulib: Update to latest.
+ * all files: Run "make update-copyright".
+
+2016-11-08 Jim Meyering <meyering@fb.com>
+
+ maint: use "returns_" rather than explicit comparison with "$?"
+ * tests/zdiff: Use "returns_ 1" rather than testing $? = 1.
+ * tests/hufts: Likewise.
+ * tests/timestamp: Likewise, but s/1/2/.
+
+2016-11-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: minor time stamp cleanups
+ * NEWS: Document this.
+ * gzip.c (get_method): Do not warn about MTIME out of range.
+ This should avoid useless chatter on hosts with 32-bit time_t
+ after the year 2038 (!).
+ (do_list): Do not pass junk time stamp to localtime.
+ (copy_stat): Do not report "time stamp restored" if restoration
+ fails.
+
+ gzip: --no-time cleanup
+ Problem reported by Jim Meyering (Bug#24826).
+ * gzip.c (longopts): Remove non-working no-time entry.
+ (help) [UNDOCUMENTED]: Don't document it.
+
+ gzip --no-name: avoid spurious warning
+ Problem reported by Jim Meyering (Bug#24826).
+ * tests/timestamp: Add a test from Jim Meyering to exercise the fix
+ * zip.c (zip): Treat unknown time stamps as 0.
+
+2016-10-24 Jim Meyering <meyering@fb.com>
+
+ maint: update .gitignore files to ignore more generated files
+
+2016-10-02 Jim Meyering <meyering@fb.com>
+
+ maint: avoid unwarranted "make syntax-check" failure
+ * tests/timestamp: Reorder "rm" arguments so the doubled-word
+ syntax-check rule does not detect a false positive "in in" here.
+
+ gnulib: update to latest
+
+2016-09-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/gzip.texi: Fix off-by-one timestamp.
+
+2016-09-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: fix some Y2038 etc. bugs
+ * NEWS: Document this.
+ * gzip.c (get_method): Warn about out-of-range MTIME,
+ and ignore it instead of relying on possibly-undefined behavior.
+ * tests/Makefile.am (TESTS): Add timestamp.
+ * tests/timestamp: New test.
+ * zip.c (zip): Warn about out-of-range file time stamp.
+
+2016-08-29 Jim Meyering <meyering@fb.com>
+
+ maint: fix gzip-specific syntax-check rule
+ * cfg.mk (sc_gzip_copyright_check): This rule had two problems.
+ It was failing erroneously (the copyright date in gzip.c is fine),
+ yet it was complaining. The first problem is that the rule's
+ diagnostic mentioned the wrong file: lib/version-etc.c, rather than
+ ./gzip.c. The second problem is that it specified this file name
+ via "in_files" rather than the "in_vc_files" variable.
+
+2016-06-12 Paul Eggert <eggert@penguin.cs.ucla.edu>
+
+ gzip: fix port to Atari by not defining ASMV
+ Problem reported by Helmut Karlowski in: http://bugs.gnu.org/23751
+ * tailor.h (ASMV) [ATARI || atarist]: Do not define.
+
+2016-06-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ gzip: drop mentions of Amiga, VMS
+ These platforms were not supported anyway, and their code was
+ suffering from bitrot. This patch may also fix some file name
+ glitches on MS-Windowsish platforms.
+ * bootstrap.conf (gnulib_modules): Add dosname.
+ * gzip.c: Include dosname.h.
+ (shorten_name, treat_dir): Use last_component rather than looking
+ at path separators by hand.
+ * tailor.h: Remove sections on porting to VMS and to Amiga,
+ since dosname.h doesn't support these platforms anyway.
+ (PATH_SEP2, PATH_SEP3, STDC_HEADERS, SUFFIX_SEP, RECORD_IO)
+ (HAVE_CHOWN, HAVE_LSTAT, HAVE_SYS_DIR_H, direct): Remove. All
+ uses removed. Many uses replaced by calls to ISSLASH and/or
+ last_component.
+
+2016-04-29 Jim Meyering <meyering@fb.com>
+
+ maint: arrange for better URLs in generated announcement message
+ * cfg.mk (url_dir_list): Define. I had been correcting the generated
+ URLs by hand, just before the announcement. This is better.
+
2016-04-26 Jim Meyering <meyering@fb.com>
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
version 1.8
* NEWS: Record release date.