document mingw linker fix and close associated bug
[debian/gzip] / ChangeLog
1 2018-12-29  Jim Meyering  <meyering@fb.com>
2
3         version 1.10
4         * NEWS: Record release date.
5
6 2018-12-23  Paul Eggert  <eggert@cs.ucla.edu>
7
8         build: enable -Wunreachable-code
9         * configure.ac (nw): Remove -Wunreachable-code from the list of
10         disabled warnings, now that all offending statements have been removed.
11
12         maint: remove unreachable code
13         Problem reported by Oracle Developer Studio 12.6.
14         In the old days we needed a return statement at the end of
15         the gzip main function to pacify traditional 'lint', but
16         lint checkers nowadays are smarter.
17         * gzip.c (main):
18         * zip.c (file_read): Remove unreachable code.
19
20 2018-12-23  Jim Meyering  <meyering@fb.com>
21
22         maint: use a slightly cleaner expression
23         * gzip.c (do_list): Simplify an expression:
24         - int positive_off_t_width = INT_BUFSIZE_BOUND (off_t) - 2;
25         + int positive_off_t_width = INT_STRLEN_BOUND (off_t) - 1;
26
27 2018-12-22  Jim Meyering  <meyering@fb.com>
28
29         build: avoid build failure with --enable-gcc-warnings and latest gcc
30         * gzip.c (do_list): There was a loop to compute the maximum width
31         of a decimal positive off_t value. Replace it with assignment to a
32         constant.  Noticed because gcc 9.0.0 20181219 warned about its use
33         as a printf format-width value.
34         (OFF_T_MAX): Remove now-unused definition.
35
36 2018-12-21  Jim Meyering  <meyering@fb.com>
37
38         maint: improve a comment
39         * trees.c (flush_block): Fix grammar/spelling in a comment.
40
41         maint: update gnulib to latest; also update bootstrap and init.sh
42
43         build: make the autoconf-2.63 requirement explicit
44         * configure.ac: AC_PREREQ: Require 2.63, not 2.59.
45         Autoconf-2.63 has been required for some time via gnulib.
46         This merely makes it explicit.
47
48 2018-11-30  Paul Eggert  <eggert@cs.ucla.edu>
49
50         gzip: fix use of uninitialized memory
51         Problem reported by Hanno Böck (Bug#33501).
52         * NEWS: Mention this.
53         * inflate.c (inflate_dynamic): Return if code is invalid.
54         Fix by Mark Adler.
55         * tests/hufts: Add test case for the bug.
56
57 2018-08-19  Paul Eggert  <eggert@cs.ucla.edu>
58
59         * gzip.c (remove_output_file): Fix typo.
60
61         gzip: fix bug in signal-handling fix
62         Problem reported by Johannes Przybilla (Bug#32375#26).
63         * gzip.c (volatile_strcpy): Source is now pointer-to-volatile too.
64         (remove_output_file): Copy remove_ofname to a private nonvolatile
65         copy so that it can be passed to xunlink safely.
66
67 2018-08-06  Paul Eggert  <eggert@cs.ucla.edu>
68
69         Fix some theoretical races in signal handling
70         Problem reported by Johannes Przybilla (Bug#32375).
71         * NEWS: Mention this.
72         * bootstrap.conf (gnulib_modules): Add sigaction.
73         * gzip.c (SA_NOCLDSTOP, sigprocmask, sigset_t)
74         (siginterrupt) [!SA_NOCLDSTOP]: Remove; Gnulib not supplies these.
75         (remove_ofname): New var.
76         (volatile_strcpy): New function.
77         (create_outfile): Use it.
78         (install_signal_handlers, abort_gzip_signal): Assume sigaction.
79         (remove_output_file): New arg SIGNALS_ALREADY_BLOCKED.
80         All uses changed.  Avoid unnecessary (and racy) call
81         to sigprocmask if this new arg is set.
82         (abort_gzip_signal): Assume C89 or better for signal handler type.
83         * gzip.h (RETSIGTYPE): Remove.
84         * lib/.gitignore, m4/.gitignore:
85         Add files brought in by Gnulib sigaction module.  Sort.
86
87 2018-08-04  Paul Eggert  <eggert@cs.ucla.edu>
88
89         gzip: port better to mingw again
90         Problem reported by Bdale Garbee (Bug#32305#8).
91         * gzip.c (do_chown): Use HAVE_FCHOWN || HAVE_CHOWN,
92         which is configured, instead of DO_CHOWN, which is not.
93
94 2018-08-02  Paul Eggert  <eggert@cs.ucla.edu>
95
96         gzip: make the output more reproducible
97         Problem reported by Bernhard M. Wiedemann (Bug#32342).
98         * NEWS: Mention this.
99         * doc/gzip.texi (Overview, Invoking gzip): Document this.
100         * gzip.c (get_input_size_and_time): New function,
101         which implements the change.
102         (treat_stdin, treat_file): Use it.
103         * tests/reproducible: New test.
104         * tests/Makefile.am (TESTS): Add it.
105
106 2018-07-29  Paul Eggert  <eggert@cs.ucla.edu>
107
108         gzip: port better to mingw
109         Problem reported by Bdale Garbee for Debian
110         * gzip.c (do_chown): Don't assume uid_t and gid_t.
111
112 2018-07-01  Jim Meyering  <meyering@fb.com>
113
114         maint: update gnulib to latest; also update bootstrap and init.sh
115
116 2018-06-30  Jim Meyering  <meyering@fb.com>
117
118         build: remove -Wformat-truncation=2 to avoid avoid false-positive
119         * configure.ac (GNULIB_WARN_CFLAGS): Add -Wformat-truncation=2,
120         to disable it when building gnulib with --enable-gcc-warnings.
121         This avoids what looks like a false positive from GCC 9:
122         strerror_r.c: In function 'rpl_strerror_r':
123         strerror_r.c:453:35: error: 'Unknown error ' directive output \
124          truncated writing 14 bytes into a region of size 2 \
125          [-Werror=format-truncation=]
126                  snprintf (buf, buflen, "Unknown error %d", errnum);
127                                          ~~^~~~~~~~~~~~
128         In file included from /usr/include/stdio.h:862,
129                          from ./stdio.h:43,
130                          from strerror_r.c:29:
131         /usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' \
132           output between 16 and 26 bytes into a destination of size 2
133            return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
134
135 2018-01-15  Paul Eggert  <eggert@cs.ucla.edu>
136
137         misc: update --version copyright
138         * gunzip.in, gzexe.in, gzip.c, zcat.in, zdiff.in, zforce.in, zgrep.in:
139         * zless.in, zmore.in, znew.in:
140         Update copyright year in --version output to 2018.
141         This part of the year-number update isn’t automated yet.
142
143 2018-01-07  Jim Meyering  <meyering@fb.com>
144
145         maint: post-release administrivia
146         * NEWS: Add header line for next release.
147         * .prev-version: Record previous version.
148         * cfg.mk (old_NEWS_hash): Auto-update.
149
150         version 1.9
151         * NEWS: Record release date.
152
153 2018-01-06  Paul Eggert  <eggert@cs.ucla.edu>
154
155         gzexe: port to macOS mktemp
156         Problem reported by Jeffrey Walton (Bug#30000).
157         * gzexe.in, zdiff.in, zgrep.in:
158         Don’t assume that mktemp works when given no arguments,
159         as this is not true for macOS.  Instead, use a syntax
160         that should work with coreutils, NetBSD, and macOS.
161         While we’re in the neighborhood, be more consistent about how program
162         names are used in temporary file names.  Also, watch out for TMPDIR
163         values that are not absolute file names, since they can cause problems
164         (e.g., leading "-").
165
166 2018-01-03  Jim Meyering  <meyering@fb.com>
167
168         maint: update gnulib and copyright dates for 2018
169         * gnulib: Update to latest.
170         * bootstrap: Update from gnulib.
171         * all files: Run "make update-copyright".
172
173 2017-12-16  Jim Meyering  <meyering@fb.com>
174
175         build: update gnulib to latest
176
177 2017-11-24  Paul Eggert  <eggert@cs.ucla.edu>
178
179         maint: zforce and zmore exit status cleanup
180         Problem reported by Nelson H. F. Beebe.
181         * zforce.in, zmore.in: On failure, exit with status 1 instead of
182         with whatever failing status that printf or mv exited with.
183
184 2017-11-23  Paul Eggert  <eggert@cs.ucla.edu>
185
186         gzexe: ensure file always exists
187         * gzexe.in: When in a filesystem that does not support symlinks,
188         use rm+cp rather than mv to make backups, so that the argument
189         file always exists.
190
191 2017-11-23  Jim Meyering  <meyering@fb.com>
192
193         build: update gnulib to latest
194
195 2017-11-16  Jim Meyering  <meyering@fb.com>
196
197         gzexe: work even without the ability to make a hard link
198         * gzexe.in: When ln -f fails to create a "~"-style backup,
199         fall back to using mv -f.
200         Reported by Bruno Haible in http://debbugs.gnu.org/29266
201
202 2017-11-15  Jim Meyering  <meyering@fb.com>
203
204         build: make each generated script unwritable
205         * Makefile.am (.in): Ensure that each generated script is unwritable.
206         This makes it less likely that someone (even me) will mistakenly
207         modify one of those generated files.
208
209 2017-11-13  Jim Meyering  <meyering@fb.com>
210
211         zless, znew: exit 1 upon --help or --version write failure
212         * zless.in: Exit 1 upon --help or --version write error.
213         * znew.in: Likewise.
214
215 2017-11-12  Paul Eggert  <eggert@cs.ucla.edu>
216
217         maint: script diagnostics status cleanup
218         Problem reported by Bruno Haible (Bug#29266#20).
219         * NEWS: Mention this.
220         * gunzip.in, gzexe.in, zcat.in, zcmp.in, zdiff.in, zforce.in:
221         * zgrep.in, zless.in, zmore.in, znew.in:
222         Use printf instead of echo if the argument might contain ‘\’, at
223         least in theory.  Don’t assume printf exits with status 1 on
224         failure; it might be some other positive status.
225         * gzexe.in: Use printf consistently instead of echo, and
226         proscribe it instead of echo.
227
228         tests: don’t be so strict about timestamps
229         * tests/timestamp: We’ve had many false alarms about timestamps
230         that are not gzip problems, but instead are problems with ‘touch’.
231         Attempt to work around them by not trusting ‘touch’ so much.
232         Problems and parts of solutions proposed by Bruno Haible.
233
234 2017-11-10  Paul Eggert  <eggert@cs.ucla.edu>
235
236         build: update gnulib submodule to latest
237
238 2017-11-09  Jim Meyering  <meyering@fb.com>
239
240         gnulib: update to latest
241
242         maint: use noreturn, not ATTRIBUTE_NORETURN
243         Use gnulib's stdnoreturn module so we can include
244         <stdnoreturn.h> and the "noreturn" helper macro, thus
245         replacing the definition and uses of ATTRIBUTE_NORETURN.
246         * bootstrap.conf (gnulib_modules): Add stdnoreturn.
247         * gzip.h (ATTRIBUTE_NORETURN): Remove definition.
248         Include stdnoreturn.h and use "noreturn" for each
249         ATTRIBUTE_NORETURN-adorned function declaration.
250         * gzip.c (do_exit, try_help): Use "noreturn".
251
252         tests: unpack-invalid: correct and clean up a test
253         * tests/unpack-invalid: There was a logic error that would have
254         caused this test to ignore a failure if first iteration of the
255         loop set fail=1 and the second one reset it to 0.  Also, use
256         "returns_ 1 ...", to require an exit status of 1.
257
258 2017-11-07  Paul Eggert  <eggert@cs.ucla.edu>
259
260         gzip: diagnose out-of-range MTIME
261         This seems to be the problem reported by Bruno Haible for GNU/Hurd
262         i386 with touch 8.26 and glibc 2.24 (Bug#29033#20).
263         * NEWS: Document this.
264         * gzip.c (get_method): If MTIME is out of range for
265         this platform, warn and substitute the nearest in-range
266         value, instead of silently ignoring it.
267         (do_list): Remove no-longer-needed test for unknown time stamp.
268
269 2017-11-06  Paul Eggert  <eggert@cs.ucla.edu>
270
271         misc: diagnose year-2038 configuration problems
272         * bootstrap.conf (gnulib_modules): Add year2038.
273         * m4/.gitignore: Add year2038.m4[
274
275         maint: remove IMPORT_FROM_GETTEXT
276         * bootstrap.conf (IMPORT_FROM_GETTEXT): Remove.
277         This is a relic from older Gnulib, and has no effect now.
278
279 2017-10-29  Jim Meyering  <meyering@fb.com>
280
281         tests/unpack-valid: port to printf that do not grok hex
282         Many versions of printf do not handle hexadecimal in a format string,
283         so this test would fail.
284         * tests/init.cfg (hex_printf_): Copied from grep's tests/init.cfg.
285         * tests/unpack-valid: Use hex_printf_.
286         Reported by Bruno Haible in https://bugs.gnu.org/29033#26
287
288         gnulib: update to latest; also update tests/init.sh from gnulib
289
290         gzip: fix bug with any upper case custom ('-S'-specified) suffix
291         Any user-specified suffix with an upper case
292         letter would fail to match desired file.
293         * gzip.c (get_suffix): First, arrange to have only one return
294         point rather than two. Put a lower-cased (just-malloc'd) copy
295         of z_suffix in the suffix vector, and free it before returning.
296         * tests/upper-suffix: New file.
297         * tests/Makefile.am (TESTS): Add it.
298         * NEWS: Mention it.
299         Reported by meo@xenialab.it in https://bugs.gnu.org/29006
300
301 2017-10-16  Paul Eggert  <eggert@cs.ucla.edu>
302
303         gzip: fix bug in unpack EOB check
304         Problem reported by Vidar Holen (Bug#28861).
305         * NEWS: Mention fix.
306         * tests/unpack-valid: New test.
307         * tests/Makefile.am (TESTS): Add it.
308         * unpack.c (build_tree): Report an error if Huffman tree has
309         too few leaves.
310         * unpack.c (unpack): Fix check for EOB.
311         Remove now-unnecessary check for code out of range.
312
313 2017-09-19  Jim Meyering  <meyering@fb.com>
314
315         maint: fix "make syntax-check": remove useless HAVE_UTIME_H definitions
316         * tailor.h: Don't define HAVE_UTIME_H.
317
318         maint: avoid "make syntax-check" failure due to old-NEWS modification
319         * cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction.
320
321 2017-09-19  Paul Eggert  <eggert@cs.ucla.edu>
322
323         gzexe: improve usage diagnostic
324         * gzexe.in (usage): Reword for clarity (Bug#28514).
325
326         misc: update --version copyright
327         * gunzip.in, gzexe.in, gzip.c, zcat.in, zdiff.in, zforce.in, zgrep.in:
328         * zless.in, zmore.in, znew.in: Update copyright year in --version
329         output to 2017.
330
331         maint: prefer HTTPS to HTTP, FTP in URLs
332
333         maint: copy bootstrap from Gnulib
334
335         maint: port to GCC 7.2
336         * configure.ac (WERROR_CFLAGS): Avoid -Wduplicated-branches.
337         * tailor.h (FALLTHROUGH): New macro, taken from Emacs.
338         * gzip.c (main): Use it.
339
340         maint: update .gitignore for recent Gnulib
341
342         build: update gnulib submodule to latest
343
344 2017-05-07  Jim Meyering  <meyering@fb.com>
345
346         maint: also distribute a zip-compressed tarball
347         * configure.ac (AM_INIT_AUTOMAKE): Add dist-zip, for
348         those lacking gzip, 7zip, etc.  Suggested by Karl Berry in
349         https://bugs.gnu.org/25538.
350
351 2017-03-13  Paul Eggert  <eggert@cs.ucla.edu>
352
353         gzip: port zdiff, zless to Busybox
354         Problem reported by Denys Zagorui (Bug#26088).
355         * tests/zdiff: Check that diff uses POSIX-format output.
356         * zless.in (less_version): Don't exit merely because 'less -V'
357         fails; instead, assume 'less' is compatible with an old version of
358         the original 'less'.  Busybox 'less -V' fails, but apparently its
359         'less' works anyway somehow.
360
361 2017-02-06  Jim Meyering  <meyering@fb.com>
362
363         tests: avoid failure when running with no tty
364         * tests/help-version (zcat_setup): Export TERM=dumb, to avoid zless
365         malfunction.  Reported by Assaf Gordon in https://bugs.gnu.org/25636#8
366
367         gnulib: update to latest; and tests/init.sh and bootstrap
368
369         maint: change "time stamp" to "timestamp" globally
370         This avoids a new syntax-check failure.
371         * ChangeLog-2007: Perform that change.
372         * NEWS: Likewise.
373         * algorithm.doc: Likewise.
374         * doc/gzip.texi: Likewise.
375         * gunzip.in: Likewise.
376         * gzip.1: Likewise.
377         * gzip.c: Likewise.
378         * gzip.h: Likewise.
379         * m4/.gitignore: Likewise.
380         * sample/ztouch: Likewise.
381         * tests/timestamp: Likewise.
382         * unzip.c: Likewise.
383         * zip.c: Likewise.
384         * znew.1: Likewise.
385         * cfg.mk: Update the old news hash accordingly.
386
387 2017-01-01  Jim Meyering  <meyering@fb.com>
388
389         maint: tweak a distcheck rule
390         * dist-check.mk (my-distcheck): Don't use --disable-nls.
391         That option is now unrecognized.
392
393         maint: update gnulib and copyright dates for 2017
394         * gnulib: Update to latest.
395         * all files: Run "make update-copyright".
396
397 2016-11-08  Jim Meyering  <meyering@fb.com>
398
399         maint: use "returns_" rather than explicit comparison with "$?"
400         * tests/zdiff: Use "returns_ 1" rather than testing $? = 1.
401         * tests/hufts: Likewise.
402         * tests/timestamp: Likewise, but s/1/2/.
403
404 2016-11-04  Paul Eggert  <eggert@cs.ucla.edu>
405
406         gzip: minor time stamp cleanups
407         * NEWS: Document this.
408         * gzip.c (get_method): Do not warn about MTIME out of range.
409         This should avoid useless chatter on hosts with 32-bit time_t
410         after the year 2038 (!).
411         (do_list): Do not pass junk time stamp to localtime.
412         (copy_stat): Do not report "time stamp restored" if restoration
413         fails.
414
415         gzip: --no-time cleanup
416         Problem reported by Jim Meyering (Bug#24826).
417         * gzip.c (longopts): Remove non-working no-time entry.
418         (help) [UNDOCUMENTED]: Don't document it.
419
420         gzip --no-name: avoid spurious warning
421         Problem reported by Jim Meyering (Bug#24826).
422         * tests/timestamp: Add a test from Jim Meyering to exercise the fix
423         * zip.c (zip): Treat unknown time stamps as 0.
424
425 2016-10-24  Jim Meyering  <meyering@fb.com>
426
427         maint: update .gitignore files to ignore more generated files
428
429 2016-10-02  Jim Meyering  <meyering@fb.com>
430
431         maint: avoid unwarranted "make syntax-check" failure
432         * tests/timestamp: Reorder "rm" arguments so the doubled-word
433         syntax-check rule does not detect a false positive "in in" here.
434
435         gnulib: update to latest
436
437 2016-09-07  Paul Eggert  <eggert@cs.ucla.edu>
438
439         * doc/gzip.texi: Fix off-by-one timestamp.
440
441 2016-09-06  Paul Eggert  <eggert@cs.ucla.edu>
442
443         gzip: fix some Y2038 etc. bugs
444         * NEWS: Document this.
445         * gzip.c (get_method): Warn about out-of-range MTIME,
446         and ignore it instead of relying on possibly-undefined behavior.
447         * tests/Makefile.am (TESTS): Add timestamp.
448         * tests/timestamp: New test.
449         * zip.c (zip): Warn about out-of-range file time stamp.
450
451 2016-08-29  Jim Meyering  <meyering@fb.com>
452
453         maint: fix gzip-specific syntax-check rule
454         * cfg.mk (sc_gzip_copyright_check): This rule had two problems.
455         It was failing erroneously (the copyright date in gzip.c is fine),
456         yet it was complaining.  The first problem is that the rule's
457         diagnostic mentioned the wrong file: lib/version-etc.c, rather than
458         ./gzip.c. The second problem is that it specified this file name
459         via "in_files" rather than the "in_vc_files" variable.
460
461 2016-06-12  Paul Eggert  <eggert@penguin.cs.ucla.edu>
462
463         gzip: fix port to Atari by not defining ASMV
464         Problem reported by Helmut Karlowski in: http://bugs.gnu.org/23751
465         * tailor.h (ASMV) [ATARI || atarist]: Do not define.
466
467 2016-06-12  Paul Eggert  <eggert@cs.ucla.edu>
468
469         gzip: drop mentions of Amiga, VMS
470         These platforms were not supported anyway, and their code was
471         suffering from bitrot.  This patch may also fix some file name
472         glitches on MS-Windowsish platforms.
473         * bootstrap.conf (gnulib_modules): Add dosname.
474         * gzip.c: Include dosname.h.
475         (shorten_name, treat_dir): Use last_component rather than looking
476         at path separators by hand.
477         * tailor.h: Remove sections on porting to VMS and to Amiga,
478         since dosname.h doesn't support these platforms anyway.
479         (PATH_SEP2, PATH_SEP3, STDC_HEADERS, SUFFIX_SEP, RECORD_IO)
480         (HAVE_CHOWN, HAVE_LSTAT, HAVE_SYS_DIR_H, direct): Remove.  All
481         uses removed.  Many uses replaced by calls to ISSLASH and/or
482         last_component.
483
484 2016-04-29  Jim Meyering  <meyering@fb.com>
485
486         maint: arrange for better URLs in generated announcement message
487         * cfg.mk (url_dir_list): Define.  I had been correcting the generated
488         URLs by hand, just before the announcement.  This is better.
489
490 2016-04-26  Jim Meyering  <meyering@fb.com>
491
492         maint: post-release administrivia
493         * NEWS: Add header line for next release.
494         * .prev-version: Record previous version.
495         * cfg.mk (old_NEWS_hash): Auto-update.
496
497         version 1.8
498         * NEWS: Record release date.
499
500         gnulib: update to latest
501
502 2016-04-19  Paul Eggert  <eggert@cs.ucla.edu>
503
504         gzip: simplify by closing ourselves
505         This simplifies the previous fix, by avoiding the use of the
506         closein module.  That module was problematic, as gzip normally
507         does not use stdio for output and never uses it for input.
508         Also, it is a heavyweight module, as it drags many files into lib
509         (c-ctype.c, c-ctype.h, closein.c, closein.h, closeout.c, closeout.h,
510         close-stream.c, close-stream.h, config.charset, c-strcasecmp.c,
511         c-strcaseeq.h, c-strcase.h, c-strncasecmp.c, fpending.c, fpending.h,
512         freadahead.c, freadahead.h, localcharset.c, localcharset.h, mbrtowc.c,
513         mbsinit.c, quotearg.c, quotearg.h, quote.h, ref-add.sin, ref-del.sin,
514         streq.h, wctype-h.c, wctype.in.h) and into m4 (closein.m4, closeout.m4,
515         close-stream.m4, codeset.m4, configmake.m4, fpending.m4, freadahead.m4,
516         glibc21.m4, localcharset.m4, locale-fr.m4, locale-ja.m4, locale-zh.m4,
517         mbrtowc.m4, mbsinit.m4, mbstate_t.m4, quotearg.m4, wctype_h.m4),
518         and these files are thus no longer needed.
519         * bootstrap.conf (gnulib_modules): Remove closein.
520         * gzip.c: Don't include closein.h.
521         (stdin_was_read): New static var.
522         (main): Don't use close_stdin.
523         Invoke finish_out to exit after outputting via stdio's stdout.
524         Close stdin after reading it.
525         Restore previous way of closing stdout.
526         (treat_stdin): Record that stdin was read.
527         (finish_out): New function.
528
529         gzip: fix bug with -l output to pipes
530         Problem reported by Christian Franke via Eric Blake in:
531         http://bugs.gnu.org/23314
532         * NEWS: Mention this.
533         * gzip.c (main): Do not close stdout twice when given -l.
534         Instead, -l now just fflushes stdout, so that fdatasync
535         can synchronize it if --synchronize is also specified.
536         * tests/list: New test case.
537         * tests/Makefile.am (TESTS): Add it.
538
539 2016-03-28  Paul Eggert  <eggert@cs.ucla.edu>
540
541         Port to Oracle Solaris Studio 12.4
542         Problem reported by Kiyoshi KANAZAWA in: http://bugs.gnu.org/23133
543         * NEWS: Document this.
544         * configure.ac (ASMV): Do not define if NO_ASM is
545         anywhere in DEFS; it doesn't need to be surrounded by white space.
546         * lib/match.c: Do not use x86 version if __x86_64__ is defined.
547
548 2016-03-27  Jim Meyering  <meyering@fb.com>
549
550         maint: post-release administrivia
551         * NEWS: Add header line for next release.
552         * .prev-version: Record previous version.
553         * cfg.mk (old_NEWS_hash): Auto-update.
554
555         version 1.7
556         * NEWS: Record release date.
557
558 2016-03-26  Paul Eggert  <eggert@cs.ucla.edu>
559
560         Port to NetBSD 7.0
561         Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13
562         * gzexe.in, zdiff.in, zgrep.in: Don't rely on mktemp -t,
563         as it has a different meaning in NetBSD.
564
565         * tests/init.sh: Sync from Gnulib.
566
567         Port to Alpine Linux which uses Busybox
568         * Makefile.am (check-local): Use plain diff rather than
569
570 2016-03-24  Jim Meyering  <meyering@fb.com>
571
572         gzip: also honor GZIP=--rsyncable
573         * gzip.c (main): Also accept --rsyncable when it is specified
574         via the GZIP environment variable.
575         I noticed this when gzip's "make dist" failed because maint.mk
576         detected that gzip now honors --rsyncable, yet when it set GZIP_ENV
577         to include that, and that propagated via automake-generated code
578         to the GZIP setting used in the "make dist" rule, there, it was not
579         honored, and caused "make dist" to fail.
580
581 2016-03-21  Paul Eggert  <eggert@cs.ucla.edu>
582
583         Fix typo in previous patch
584
585         Port to Solaris 11 /bin/sh
586         * m4/shell.m4 (AC_PROG_SHELL): Reject Solaris 11 /bin/sh.
587         A problem was reported by Nelson H. F. Beebe for OpenIndiana.
588         I reproduced a problem with different symptoms on Solaris 11.
589         Switching to Bash fixed it, and I hope this fixes it for
590         OpenIndiana too, since both problems appear to be shell-related.
591
592 2016-03-18  Paul Eggert  <eggert@cs.ucla.edu>
593
594         zgrep: with -f SPECIAL, read SPECIAL just once
595         Problem reported by Fulvio Scapin in: http://bugs.gnu.org/22945
596         * NEWS: Document this.
597         * tests/zgrep-f: Add a test.
598         Adjust a test to cover the case of more than one line in -f's input.
599         * zgrep.in (with_filename): With -f FILE, if FILE is stdin or not
600         a regular file, copy it into a temporary and use the temporary.
601
602 2016-03-15  Paul Eggert  <eggert@cs.ucla.edu>
603
604         gzip: port to AIX 7.1 + xlc V12.1
605         * inflate.c, unlzw.c, util.c: Include tailor.h after including any
606         system include file that might in turn include signal.h for the
607         first time, so that SIGPIPE is not #defined to 0 prematurely,
608         which clashes with signal.h's SIGPIPE.
609
610 2016-03-15  Jim Meyering  <meyering@fb.com>
611
612         gnulib: update to latest
613
614         maint: don't ignore gitlog-to-changelog failure
615         * Makefile.am (gen-ChangeLog): Don't ignore failure of
616         gitlog-to-changelog. This syncs to coreutils' copy of this rule.
617
618 2016-03-06  Paul Eggert  <eggert@cs.ucla.edu>
619
620         gzip: pacify clang
621         * gzip.c (do_list): Use 2D array of char for month abbreviations,
622         as this is clearer anyway, and it pacifies Clang.  Problem reported
623         by Assaf Gordon in: http://bugs.gnu.org/22900#40
624
625 2016-03-06  Jim Meyering  <meyering@fb.com>
626
627         tests: port to systems for which ":" is not the PATH separator
628         * Makefile.am (new_path): New variable.
629         (check-local): Use $(PATH_SEPARATOR) rather than a literal ":",
630         to avoid "make syntax-check" failure.
631
632 2016-03-06  Paul Eggert  <eggert@cs.ucla.edu>
633
634         doc: minor --rsyncable doc fixes
635         * doc/gzip.texi (Sample): Mention --rsyncable.
636         * gzip.c (help): Sort and do not capitalize the new --rsyncable
637         help string.
638
639         gzip: minor zgrep cleanup
640         * zgrep.in: Simplify previous change.
641
642         gzip: port zgrep to Solaris 11.2
643         Problem reported by Assaf Gordon in: http://bugs.gnu.org/22900#11
644         * zgrep.in: Port to Solaris 11.2 /bin/sh (ksh 93u 2011-02-08),
645         where $? is 256+SIG when a process was killed with signal SIG, and
646         where 'exit 257' is equivalent to 'exit 1'.  Apparently some other
647         sh implementations use 256+128+SIG.  So, instead of using plain
648         'exit $?', use the equivalent of 'exit ((128 * (128 <= $?)) + $? %
649         128)' within the script, and use the equivalent of 'kill -$($? %
650         128)' at the top level if the exit status is 128 or more.
651
652         gzip: remove --__bindir
653         * NEWS: Document this.
654         * gzexe.in, gunzip.in, zcat.in, zcmp.in, zdiff.in, zegrep.in:
655         * zfgrep.in, zforce.in, zgrep.in, zless.in, zmore.in, znew.in:
656         Remove support for undocumented --__bindir option.  Callers can
657         set PATH instead; that's less error-prone.  This fixes some
658         'make check' failures on my Solaris 11 box, which occurred
659         because the test scripts were mistakenly testing the installed
660         gzip rather than the gzip in the working directory.
661         * Makefile.am (.in): Don't replace bindir.
662         (check-local): Set PATH instead of using --__bindir.
663         * tests/help-version (gunzip_setuphelp, gzexe_setuphelp)
664         (zcat_setuphelp, zcmp_setuphelp, zdiff_setuphelp)
665         (zegrep_setuphelp, zfgrep_setuphelp, zforce_setuphelp)
666         (zgrep_setuphelp, zless_setuphelp, zmore_setuphelp)
667         (znew_setuphelp): Remove.  All uses removed.
668         (lbracket_setup): Default args to empty.
669
670 2016-03-04  Jim Meyering  <meyering@fb.com>
671
672         tests: fix "make check" failure on AIX 7.1
673         * tests/Makefile.am (TESTS_ENVIRONMENT): Modernize:
674         remove unused shell_or_perl_ function, and use an
675         export_with_values function as grep does, to remove
676         a lot of duplication.
677         Reported by Assaf Gordon in http://debbugs.gnu.org/22900
678
679 2016-03-02  Rusty Russell  <rusty@rustcorp.com.au>
680
681         gzip: support the --rsyncable option
682         * deflate.c: Include verify.h.
683         (RSYNC_WIN, RSYNC_SUM_MATCH): Define.
684         (rsync_sum, rsync_chunk_end): Declare file-scoped globals.
685         (lm_init): Initialize globals.
686         (fill_window): Update rsync_chunk_end.
687         (rsync_roll): New function.
688         (RSYNC_ROLL): New macro.
689         (FLUSH_BLOCK): Update for new "pad" parameter.
690         (deflate_fast): Use RSYNC_ROLL and flush/pad.
691         (deflate): Likewise.
692         * trees.c (flush_block): Add "pad" parameter.
693         * gzip.c (rsync): New global.
694         (RSYNCABLE_OPTION, longopts, help): Add the option.
695         (main): Set the new global.
696         * gzip.h (rsync): Declare new global.
697         (flush_block): Update prototype.
698         * doc/gzip.texi: Document it.
699         * gzip.1: Likewise.
700         * bootstrap.conf: Use verify module.
701         * NEWS (New feature): Mention it.
702         * Makefile.am (check-local): Add tests and use AM_V__* command-
703         hiding opions. Reported against Debian here:
704         https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=118118
705
706 2016-02-28  Jim Meyering  <meyering@fb.com>
707
708         maint: dist-check.mk: remove .deps dirs before comparing
709         "make distcheck" with automake-from-trunk would fail like this:
710           ...
711           Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old: .deps
712           Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old/lib: .deps
713           Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old/lib/glthread: .deps
714         * dist-check.mk (my-distcheck): Remove all .deps directories before
715         comparing the two hierarchies.
716
717 2016-02-28  Paul Eggert  <eggert@cs.ucla.edu>
718
719         misc: update --version copyright
720         * gunzip.in, gzexe.in, zcat.in, zdiff.in, zforce.in, zgrep.in:
721         * zless.in, zmore.in, znew.in: Update copyright year in --version
722         output to 2016.
723
724         gzip: new option --synchronous
725         This follows up on the earlier patch to avoid data loss near the
726         system crashes.  It makes the new behavior optional, with the
727         default off.  See: http://bugs.gnu.org/22768
728         * NEWS, doc/gzip.texi (Sample, Invoking gzip), gunzip.in (usage):
729         * gzip.1, zcat.in (usage):
730         Document this.
731         * gzip.c (synchronous): New static var.
732         (SYNCHRONOUS_OPTION): New constant.
733         (longopts, help, main, treat_file): Add support for --synchronous.
734
735         gzip: use constants, not fileno
736         * gzip.c (main, treat_stdin, treat_file, get_method)
737         (check_ofname): Prefer STDIN_FILENO to fileno (stdin),
738         and similarly for STDOUT_FILENO.
739
740         gzip: fdatasync output dir before unlinking
741         This follows up on the earlier patch to avoid data loss near
742         the system crashes.  See: http://bugs.gnu.org/22768
743         * bootstrap.conf (gnulib_modules): Add dirname-lgpl, fdatasync,
744         openat-safer, unistd-safer, unlinkat.
745         * gzip.c: Include stddef.h, dirname.h.
746         Include fcntl--.h instead of fcntl-safer.h.
747         (RW_USER): Remove; no longer needed.
748         (dfname, dfd): New static vars.
749         (dot): New static const.
750         (atdir_eq, atdir_set): New functions.
751         (treat_file): Also fdatasync the output directory, if !keep.
752         (treat_file, create_outfile, open_and_stat):
753         Use dir fd for unlinkat and openat, if possible.
754         (open_and_stat): Omit mode argument, since it was always the
755         same.  All callers changed.
756         * lib/.gitignore, m4/.gitignore: Add new gnulib files.
757         * tailor.h (PROTO, NO_STDIN_FSTAT, OPEN): Remove.  Remove MACOS
758         section, as this stuff would not work anyway now, and circa 2001
759         Apple stopped supporting Mac OS 9 and earlier.
760         * zip.c: Do not include unistd.h and fcntl.h, as this file does
761         not directly use any symbols defined by those headers.
762
763 2016-02-22  Paul Eggert  <eggert@cs.ucla.edu>
764
765         fsync output file before closing
766         Problem reported by Yanyan Jiang 蒋炎岩 in: http://bugs.gnu.org/22768
767         * NEWS: Document this.
768         * bootstrap.conf (gnulib_modules): Add fsync.
769         * gzip.c (treat_file): Call fsync just before closing the output.
770         * lib/.gitignore, m4/.gitignore: Add fsync-related gnulib files.
771
772 2016-01-22  Jason Leschnik  <jason@leschnik.me>
773
774         doc: correct a diagnostic in man page to match actual
775         * gzip.1: s/no change/unchanged/
776         This addresses http://debbugs.gnu.org/22413
777
778 2016-01-01  Jim Meyering  <meyering@fb.com>
779
780         maint: update copyright year, bootstrap, init.sh
781         Run "make update-copyright" and then...
782
783         * gzip.c: Transform the copyright notice via s/2015/2016/.
784         * gnulib: Update to latest.
785         * tests/init.sh: Update from gnulib.
786         * bootstrap: Likewise.
787
788 2015-11-01  Jim Meyering  <meyering@fb.com>
789
790         maint: avoid three warnings from the very latest gcc-built-from-git
791         * unzip.c (unzip): Correct two format strings to match the types of the corresponding arguments.
792         * unlzw.c (unlzw): Cast an "int" to unsigned to match expected type of %x.
793
794 2015-08-24  Jim Meyering  <meyering@fb.com>
795
796         maint: adjust copyright notices in *.in files to be consistent
797         The copyright year ranges in *.in files were not being updated,
798         because of a missing ", Inc." suffix.  Add that, run
799         run "make udpate-copyright", and ensure 2010..2015 year
800         ranges are covered.
801         * gunzip.in: Update copyright notice and year ranges.
802         * gzexe.in: Likewise.
803         * zcat.in: Likewise.
804         * zdiff.in: Likewise.
805         * zforce.in: Likewise.
806         * zgrep.in: Likewise.
807         * zless.in: Likewise.
808         * zmore.in: Likewise.
809         * znew.in: Likewise.
810
811 2015-08-24  Jim Meyering  <meyering@fb.com>
812
813         build: avoid -Wshift-negative-value warning
814         Configured with --enable-gcc-warnings, a gcc-6.x build would fail with this:
815
816           gzip.c:118:32: error: left shift of negative value
817            #define OFF_T_MIN (~ (off_t) 0 << (sizeof (off_t) * CHAR_BIT - 1))
818
819         * gzip.c [OFF_T_MAX]: Define in terms of TYPE_MAXIMUM, not OFF_T_MIN.
820         [OFF_T_MIN]: Remove now-unused definition.
821         Include "intprops.h" for definiton of TYPE_MAXIMUM.
822         * bootstrap.conf (gnulib_modules): Add intprops.
823
824 2015-07-30  Jim Meyering  <meyering@fb.com>
825
826         maint: remove dead code
827         This package has not been compilable with -DCRYPT
828         since commit v1.4-82-g9d1b943.  Remove final vestiges.
829         * bits.c (copy_block) [CRYPT]: Remove #ifdef'd code.
830         * inflate.c (NEXTBYTE) [CRYPT]: Likewise.
831         Prompted by a report from Flávio Medeiros
832         that HEADER and T might be used uninitialized.
833
834 2015-03-17  Paul Eggert  <eggert@cs.ucla.edu>
835
836         gzip: make the GZIP env var obsolescent
837         * NEWS, gzip.1:
838         * doc/gzip.texi (Environment, Tapes): Document this.
839         * gzip.c (args): Remove static var; no longer needed now that
840         'main' frees it.  All uses removed.
841         (ENV_OPTION, shortopts): New constants.
842         (main): Warn about nontrivial uses of GZIP.  Reject dangerous uses.
843         * tests/gzip-env: New test case.
844         * tests/Makefile.am (TESTS): Add it.
845         * util.c (add_envopt): Create new vector instead of adding to old
846         one.  Only use changed.
847
848 2015-03-13  Paul Eggert  <eggert@cs.ucla.edu>
849
850         maint: adjust to recent gnulib
851         * doc/.gitignore: Add gendocs_template_min.
852         * lib/.gitignore: Add assure.h.
853
854 2015-02-08  Jim Meyering  <meyering@fb.com>
855
856         maint: ensure that --version's copyright date is current
857         * cfg.mk (sc_gzip_copyright_check): Ensure we keep this copyright
858         year number up to date.  Reported by Paul Eggert.
859         * gzip.c (license_msg): Include only the current year number,
860         as is done in nearly every other program.
861
862         gnulib: update to latest
863
864 2015-01-01  Jim Meyering  <meyering@fb.com>
865
866         maint: update copyright year ranges to include 2015; update gnulib
867
868 2014-11-10  Jim Meyering  <meyering@fb.com>
869
870         maint: move new NEWS entry into block for upcoming release
871         * NEWS: Move the latest NEWS entry from the block for gzip-1.6
872         into the block for the upcoming release.
873
874 2014-11-10  Paul Eggert  <eggert@cs.ucla.edu>
875
876         gzip: adjust -v output when -k is also specified
877         Problem reported by Eric Benoit in: http://bugs.gnu.org/16401
878         * gzip.c (treat_file): When keeping a file, don't say it's replaced.
879         * NEWS: Document this.
880         * tests/keep: Test this.
881
882 2014-11-10  Jim Meyering  <meyering@fb.com>
883
884         maint: enable more syntax checks
885         * cfg.mk (local-checks-to-skip): Remove several rule names from this
886         list, thus enabling the corresponding checks.  To fix some, I made
887         syntactic changes to source files.  In other cases, I exempted certain
888         files from the checks.
889         Add exemptions for these:
890           sc_prohibit_atoi_atof = ^(gzip|sample/sub)\.c$$
891           sc_space_tab = ^lib/match\.c$$
892           sc_useless_cpp_parens = ^(lib/match\.c|tailor\.h)$$
893         * configure.ac: Add quotes to fix under-quoting.
894         * deflate.c: Remove unnecessary cpp parentheses.
895         * tests/Makefile.am (TEST_ENVIRONMENT): Remove space-before-TAB.
896         * unlzw.c: Change some TABs to spaces.
897
898         maint: avoid false positive match in check for double semicolon
899         * cfg.mk (exclude_file_name_regexp--sc_prohibit_double_semicolon):
900         Exempt the file, lib/match.c, from gnulib's new double-semicolon
901         check.
902
903         gnulib+bootstrap: update to latest
904         * gnulib: Update the submodule.
905         * bootstrap: Update from gnulib.
906
907 2014-10-10  Paul Eggert  <eggert@cs.ucla.edu>
908
909         tests: use local dir for output
910         Reported by Kiyoshi KANAZAWA in: http://bugs.gnu.org/18679
911         * tests/unpack-invalid: Use local directory, not /tmp, for output.
912
913 2014-08-10  Paul Eggert  <eggert@cs.ucla.edu>
914
915         gzip: fix --suffix=z bug (Bug#18239)
916         * gzip.c (get_suffix): Put --suffix string at the end
917         of the list of suffixes if it is a suffix of one one them.
918         * tests/z-suffix: New file.
919         * tests/Makefile.am (TESTS): Add it.
920
921 2014-06-12  Paul Eggert  <eggert@cs.ucla.edu>
922
923         zgrep: exit with status 0 if a file matches and there's no trouble
924         Reported by Pavel Raiskup in: http://bugs.gnu.org/17760
925         * zgrep.in (res): Treat exit status 0 to be greater than 1.
926         Also, exit immediately on software configuration error.
927
928 2014-06-07  Paul Eggert  <eggert@cs.ucla.edu>
929
930         doc: use UTF-8 in the manual
931         * doc/gzip.texi: Switch to UTF-8 encoding.  Fix ASCIIisms.
932         Don't use @sc; plain caps are fine for GNU manuals.
933
934         maint: update .gitignore files
935         * lib/.gitignore, m4/.gitignore: Adjust to match current sources.
936         Also, sort.
937
938 2014-06-07  Jim Meyering  <meyering@fb.com>
939
940         maint: udpate all copyright notices via "make update-copyright"
941
942         maint: update copyright year range in gzip.texi
943         * doc/gzip.texi: Update copyright date.
944
945         maint: update gnulib to latest and adapt streamsavedir usage
946         * gnulib: Update module to latest.
947         * gzip.c (treat_dir): Gnulib's streamsavedir API has changed:
948         call it with a new argument, SAVEDIR_SORT_NONE, to retain the
949         preceding behavior.
950
951 2014-03-06  Paul Eggert  <eggert@cs.ucla.edu>
952
953         zless: improve gzip failure checking, and port to new -V format
954         Problem reported by Jaroslaw Weglinski, and LESSOPEN change
955         suggested by Mark Nudelman, in: http://bugs.gnu.org/16951
956         This doesn't fix bug 16951 entirely, as 'less' needs to be changed
957         too, but it's a start.
958         * zless.in (check_exit_status): New var.
959         (LESSOPEN): Use it.
960         (use_input_pipe_on_stdin): Adjust to output format on Fedora 20,
961         where 'less -V' outputs "less 458 (POSIX regular expressions)"
962         on the first line.
963
964 2013-10-24  Paul Eggert  <eggert@cs.ucla.edu>
965
966         gzip: fix permissions issue on Solaris-like systems
967         I.e., on systems that let users give files away.
968         * gzip.c (do_chown): New function.
969         (copy_stat): Use it, to change the group, then the permissions,
970         then the owner.  Idea suggested by Vladimir Marek in
971         <http://bugs.gnu.org/15672#11>
972
973 2013-10-03  Paul Eggert  <eggert@cs.ucla.edu>
974
975         znew: avoid denial-of-service issue
976         Reported by Rich Burridge in <http://bugs.gnu.org/15522>.
977         * znew.in: Rewrite to avoid the need for a temporary file in /tmp.
978         That way, we avoid the need for set -C
979         and worrying about denial of service.
980         Use touch -r and chmod --reference rather than cpmod.
981         Assume cp -p works, as it's now universal.
982         Quote 'echo' args better, while we're at it.
983         (warn, tmp, cpmod, cpmodarg): Remove.
984         (GZIP): Unset, so that we needn't test for gzip extension.
985         (ext): Now always '.gz'.
986         * znew.1: Document the change of implementation assumptions.
987
988 2013-06-19  Paul Eggert  <eggert@cs.ucla.edu>
989
990         Fix spelling typo in newly-added comment.
991
992         tests: zgrep-signal race condition fix
993         * tests/zgrep-signal: Check that Perl supports dup2.
994         (exec_with_SIGPIPE_SIGDFL): Remove.
995         (write_to_dangling_pipe): Simplify by moving more of it into Perl.
996         Fix race condition, where subcommand writes to a pipe before the ":"
997         command exits.  Problem reported by Thorsten Glaser in
998         <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00028.html>.
999
1000 2013-06-12  Paul Eggert  <eggert@cs.ucla.edu>
1001
1002         zgrep: usage should say which grep options are not supported
1003         * zgrep.in (usage): Document which grep options are not supported.
1004         Problem reported by Liron Paryente in
1005         <http://lists.gnu.org/archive/html/bug-grep/2013-06/msg00005.html>.
1006
1007 2013-06-11  Paul Eggert  <eggert@cs.ucla.edu>
1008
1009         gzip: port util.c to Compaq C V6.5-303
1010         * util.c (crc_32_tab): Move definition to front, since this
1011         compiler doesn't allow declarations of static arrays with
1012         incomplete types.  Problem reported by Steven M. Schweda in
1013         <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00010.html>.
1014
1015         tests: zgrep-context assumes grep knows context
1016         * tests/Makefile.am (TESTS_ENVIRONMENT): Pass GREP too.
1017         * tests/zgrep-context: Check that the underlying grep supports
1018         context options.  Problem reported by Steven M. Schweda in
1019         <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00010.html>.
1020
1021         doc: zgrep exit status, unsupported options
1022         * zgrep.1 (EXIT STATUS, BUGS): New sections.
1023         Problem reported by Bdale Garbee in
1024         <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00007.html>.
1025
1026         maint: port to platforms lacking SIGPIPE
1027         * tailor.h (SIGPIPE): Define to 0 if not defined.  This fixes a
1028         porting bug introduced as part of 2012-11-16 syntax-check cleanup.
1029         Problem reported by Bdale Garbee in
1030         <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00006.html>.
1031
1032 2013-06-09  Jim Meyering  <meyering@fb.com>
1033
1034         maint: post-release administrivia
1035         * NEWS: Add header line for next release.
1036         * .prev-version: Record previous version.
1037         * cfg.mk (old_NEWS_hash): Auto-update.
1038
1039         version 1.6
1040         * NEWS: Record release date.
1041
1042         build: avoid automake warning that suggests use of subdir-objects
1043         * configure.ac (AM_INIT_AUTOMAKE): Use the subdir-objects option.
1044
1045         build: avoid warning about deprecated use of automake's ACLOCAL_AMFLAGS
1046         * Makefile.am (ACLOCAL_AMFLAGS): Don't use this deprecated variable.
1047         * configure.ac: Do this instead: AC_CONFIG_MACRO_DIR([m4]).
1048
1049         build: use more portable shell syntax in search of working shell
1050         * m4/shell.m4: Adjust sh/case syntax not to evoke a syntax
1051         error from Solaris 10's /bin/sh.
1052
1053         build: update gnulib to latest, and bootstrap
1054
1055 2013-05-28  Jim Meyering  <meyering@fb.com>
1056
1057         tests: exercise the new --keep option
1058         * tests/keep: New file.
1059         * tests/Makefile.am (TESTS): Add it.
1060
1061 2013-05-28  Rodrigo Campos  <rodrigo@sdfg.com.ar>
1062
1063         gzip: add "--keep" option to retain (don't delete) input files
1064         gzip now accepts the --keep (-k) option, for consistency with tools
1065         like xz, lzip and bzip2.  With this option, gzip no longer removes
1066         named input files when compressing and decompressing.
1067         * doc/gzip.texi: Document it.
1068         * gzip.1: Likewise.
1069         * gunzip.in: Likewise.
1070         * NEWS: Likewise.
1071         * gzip.c: Add support for "--keep".
1072
1073 2013-04-15  Paul Eggert  <eggert@cs.ucla.edu>
1074
1075         tests: redo patch for non-GNU gzip installed in /usr/local/bin
1076         Problem with previous patch reported by Antonio Diaz Diaz in
1077         <http://lists.gnu.org/archive/html/bug-gzip/2013-04/msg00011.html>.
1078         * tests/help-version (gunzip_setuphelp, gzexe_setuphelp)
1079         (zcat_setuphelp, zcmp_setuphelp, zdiff_setuphelp)
1080         (zegrep_setuphelp, zfgrep_setuphelp, zforce_setuphelp)
1081         (zgrep_setuphelp, zless_setuphelp, zmore_setuphelp)
1082         (znew_setuphelp): New functions, used when testing even --help.
1083         (zdiff_setup, zcat_setup, znew_setup, zgrep_setup, gzexe_setup):
1084         Use gzip_setuphelp to set --__bindir.
1085
1086 2013-04-10  Paul Eggert  <eggert@cs.ucla.edu>
1087
1088         tests: work even if non-GNU gzip is installed in /usr/local/bin
1089         Problem reported by Antonio Diaz Diaz in
1090         <http://lists.gnu.org/archive/html/bug-gzip/2013-04/msg00004.html>.
1091         * tests/help-version (zdiff_setup, zcat_setup, znew_setup, zgrep_setup)
1092         (gzexe_setup): Pass --__bindir so that subsidiary programs are our
1093         own's, not /usr/local/bin's.  This requires using 'eval' on the result.
1094         (zcmp_setup, gunzip_setup, zmore_setup, zless_setup, zforce_setup)
1095         (zegrep_setup, zfgrep_setup): Invoke one of the other setup functions,
1096         to make the patterns more obvious and simplify future maintenance.
1097         * zcmp.in, zegrep.in, zfgrep.in: Pass __bindir to subsidiary program.
1098
1099         maint: adjust to Gnulib, Automake changes
1100         * .gitignore: Add *.trs.
1101         * lib/.gitignore: Add unused-parameter.h.
1102
1103         tests: port to Solaris 10 /bin/sh
1104         * tests/Makefile.am (TESTS_ENVIRONMENT):
1105         Use "FOO=val; export FOO" rather than "export FOO=val",
1106         as the latter form doesn't work with Solaris /bin/sh.
1107
1108 2013-02-25  Paul Eggert  <eggert@cs.ucla.edu>
1109
1110         gzip: port to DMF file systems
1111         * util.c (read_buffer): When reading a file with O_NONBLOCK, if
1112         the read fails with errno==EAGAIN, clear O_NONBLOCK and try again.
1113         Problem reported by Vitezslav Cizek in
1114         <http://lists.gnu.org/archive/html/bug-gzip/2013-02/msg00030.html>.
1115
1116 2013-02-05  Paul Eggert  <eggert@cs.ucla.edu>
1117
1118         gzip: fix bug where you say "n" and gzip acts as if you said "y"
1119         Problem reported for GCC 4.7 x86-64 -O2 by Allan McRae in
1120         <http://lists.gnu.org/archive/html/bug-gzip/2013-02/msg00000.html>.
1121         * NEWS: Document this.  Use consistent format in earlier note.
1122         * gzip.c: Include yesno.h.
1123         * gzip.h (yesno): Remove decl; that's yesno.h's job.
1124
1125 2013-01-06  Paul Eggert  <eggert@cs.ucla.edu>
1126
1127         maint: adjust to Gnulib changes
1128         * lib/.gitignore: Add glthread, math.c, unistd.c, wctype-h.c.
1129         * m4/.gitignore: Remove inline.m4.
1130
1131 2013-01-04  Jim Meyering  <jim@meyering.net>
1132
1133         maint: update all copyright year number ranges
1134         Run "make update-copyright".
1135
1136         build: update gnulib submodule to latest
1137
1138 2012-12-10  Paul Eggert  <eggert@cs.ucla.edu>
1139
1140         diagnose unexpected EOF and zero lengths in packed data
1141         Problem reported by Aki Helin.
1142         * NEWS: Mention Aki's reports.
1143         * tests/unpack-invalid: New file,
1144         with test data suggested by Aki.
1145         * tests/Makefile.am (TESTS): Add it.
1146         * unpack.c (read_byte): New function.
1147         (look_bits, read_tree): Use it.
1148         (read_tree): Check against zero bit length Huffman code.
1149
1150         gzip: diagnose invalid code in packed data
1151         * unpack.c (unpack): When encountering a code out of range, report
1152         it and fail rather than charging ahead with randomish output.
1153         Problem reported by Aki Helin.
1154
1155 2012-11-16  Jim Meyering  <jim@meyering.net>
1156
1157         maint: avoid new syntax-check failures
1158         * cfg.mk (_gl_TS_unmarked_extern_vars): Append nice_match, to avoid
1159         false-positive syntax-check failure on i686.
1160         * gzip.c (SIGPIPE): Remove definition.  Now always provided via gnulib.
1161         * lib/.gitignore: xsize.c, added by gnulib-tool.
1162
1163 2012-11-16  Paul Eggert  <eggert@cs.ucla.edu>
1164
1165         gzip: fix debugging/porting typo
1166         * unlzw.c (unlzw) [DEBUG]: Don't assume 'long' can be printed with %d.
1167
1168         maint: merge build improvements from coreutils
1169         * configure.ac: Invoke gl_ASSERT_NO_GNULIB_POSIXCHECK.
1170         (--enable-gcc-warnings): Change help message.
1171         (gl_GCC_VERSION_IFELSE): New macro.
1172         Do not omit -Wunused-macros for main code.
1173         Adjust other -W options as per coreutils.
1174         * lib/Makefile.am (AM_CFLAGS): Use GNULIB_WARN_CFLAGS, not WARN_CFLAGS.
1175         * unlzw.c (REGISTERS, REG1, REG2, ..., REG16): Remove.
1176         All uses removed.  These provoked -Wunused-macros warnings.
1177         This sort of fiddling with registers hasn't been needed for years.
1178
1179         build: update gnulib submodule to latest
1180
1181         maint: port to platforms lacking SIGPIPE
1182         * gzip.c (SIGPIPE): Define to 0 if not already defined.
1183
1184         doc: bring up to date and fix troff typos
1185         * doc/gzip.texi (Overview): Update RFC URLs.
1186         * gzip.1: Likewise.  Don't say "SEE ALSO" to programs that almost
1187         nobody has installed anymore.
1188         * gzip.1, zmore.1: Fix some troff typos.
1189         * zdiff.1: Clarify what happens with input files.  Don't talk
1190         about temporary file names, as they're rarely used these days.
1191
1192 2012-10-24  Paul Eggert  <eggert@cs.ucla.edu>
1193
1194         tests: exercise the grep -e portability fix
1195         Remove workaround for Solaris, since the bug should be fixed now.
1196         Suggested by Petr Sumbera in
1197         <http://lists.gnu.org/archive/html/bug-gzip/2012-10/msg00005.html>.
1198         * tests/zgrep-context, tests/zgrep-f: All uses removed.
1199         * tests/init.cfg (require_POSIX_grep_): Remove.
1200
1201 2012-10-23  Eric Blake  <eblake@redhat.com>
1202
1203         build: default to --enable-gcc-warnings in a git tree
1204         Anyone building from cloned sources can be assumed to have a new
1205         enough environment, such that enabling gcc warnings by default will
1206         be useful.  Tarballs still default to no warnings, and the default
1207         can still be overridden with --disable-gcc-warnings.
1208         * configure.ac (gl_gcc_warnings): Set default based on environment.
1209
1210 2012-10-20  Paul Eggert  <eggert@cs.ucla.edu>
1211
1212         zgrep: do not assume standard 'grep' has -e
1213         On Solaris 11, /usr/bin/grep -e does not work.
1214         Problem reported by Petr Sumbera in
1215         <http://lists.gnu.org/archive/html/bug-gzip/2012-10/msg00003.html>.
1216         * Makefile.am (.in): Substitute @GREP@.
1217         * configure.ac (AC_PROG_GREP): Invoke.
1218         * zgrep.in (grep): Use @GREP@.
1219
1220 2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>
1221
1222         zgrep: do not assume GNU expr
1223         * zgrep.in: Do not assume '\+' has the GNU behavior in the BRE
1224         given to 'expr', as POSIX does not guarantee that.  Come to think
1225         of it, use a shell pattern rather than 'expr', as this is more
1226         efficient.
1227
1228 2012-08-08  Jim Meyering  <meyering@redhat.com>
1229
1230         tests: exercise the just-fixed part of zgrep
1231         * tests/zgrep-context: New file.
1232         * tests/Makefile.am (TESTS): Add it.
1233
1234 2012-08-08  Jim Meyering  <meyering@redhat.com>
1235
1236         zgrep: handle a multi-digit context option like -15
1237         * zgrep.in: Do not malfunction when given an option like -15.
1238         Before, it could end up treating the pattern as a file name:
1239
1240           $ echo x | gzip | zgrep -15 x
1241           gzip: x.gz: No such file or directory
1242
1243         * NEWS (Bug fixes): Mention it.
1244         Reported by Dan Bloch via Thomas Bushnell in
1245         https://bugs.launchpad.net/bugs/1032831
1246
1247 2012-08-07  Jim Meyering  <meyering@redhat.com>
1248
1249         build: update gnulib, bootstrap and init.sh
1250
1251         maint: fix misspellings in old ChangeLog and NEWS
1252         * ChangeLog-2007: s/Supress/Suppress/
1253         * NEWS: Likewise.
1254         * cfg.mk (old_NEWS_hash): Update to match typo fix.
1255
1256 2012-06-19  Paul Eggert  <eggert@cs.ucla.edu>
1257
1258         zmore: rewrite to fix bugs and assume POSIX
1259         Problem reported for Solaris 9 by Daniel in
1260         <http://lists.gnu.org/archive/html/bug-gzip/2012-06/msg00007.html>.
1261         Rather than figure out what exactly went wrong in Solaris 9
1262         it was easier to rip out all the buggy compatibility and stty cruft.
1263         * zmore.in: Don't use stty or trap; simply pipe the output to 'more'
1264         and let it deal with signals and terminal control.
1265         Use printf, not 'echo', to avoid problems with backslashes.
1266         Don't assume ANS is not 's' in the environment.
1267         Use a 'more'-style header instead of rolling our own style.
1268         Paginate the header, too; the old behavior lost the header.
1269         * NEWS, zmore.1: Document this.
1270
1271 2012-06-17  Jim Meyering  <meyering@redhat.com>
1272
1273         maint: add .mailmap
1274         * .mailmap: New file.  Unify two spellings of Paul's name,
1275         to make git log output slightly cleaner.
1276
1277         maint: post-release administrivia
1278         * NEWS: Add header line for next release.
1279         * .prev-version: Record previous version.
1280         * cfg.mk (old_NEWS_hash): Auto-update.
1281
1282         version 1.5
1283         * NEWS: Record release date.
1284
1285         build: update gnulib for fixed maint.mk
1286
1287         build: update gnulib submodule; bootstrap and init.sh, too
1288         * cfg.mk: Exempt crufty tailor.h from its use of "#define off_t...".
1289         * .gitignore, m4/.gitignore: Update semi-automatically (via bootstrap).
1290
1291 2012-04-24  Paul Eggert  <eggert@cs.ucla.edu>
1292
1293         doc: document -rf change
1294         * NEWS: Document the ZFS fix.
1295
1296         gzip: remove CLOSEDIR
1297         * gzip.c (CLOSEDIR): Remove; no longer used.
1298
1299         gzip: port gzip -rf to ZFS
1300         Problem reported privately by Rich Burridge.
1301         * bootstrap.conf: Add savedir.
1302         * gzip.c: Include <savedir.h>.
1303         (_D_EXACT_NAMELEN): Remove.
1304         (treat_dir): Use savedir rather than reading directory entries one
1305         at a time, to avoid revisiting an already-compressed file when using
1306         ZFS and the -rf flags are specified.
1307         * lib/.gitignore, m4/.gitignore: Ignore savedir-related files.
1308
1309 2012-03-18  Paul Eggert  <eggert@cs.ucla.edu>
1310
1311         gzip: fix nondeterministic compression results
1312         Reported by Jakub Wilk in <http://bugs.debian.org/647522>.
1313         * deflate.c (fill_window): Don't let garbage pollute the dictionary.
1314
1315 2012-01-11  Jim Meyering  <meyering@redhat.com>
1316
1317         tests: make all test scripts executable; work with automake-1.12
1318         * tests/Makefile.am (TESTS_ENVIRONMENT): Adapt to work with upcoming
1319         automake-1.12.
1320         * tests/mixed: Make executable.
1321         * tests/zgrep-f: Likewise.
1322         * tests/zgrep-signal: Likewise.
1323         * tests/znew-k: Likewise.
1324
1325         build: accommodate newer bootstrap from gnulib
1326         * bootstrap.conf (gnulib_tool_option_extras): Add both --symlink
1327         and --makefile-name=gnulib.mk.
1328         * bootstrap: Update from gnulib.
1329         * tests/init.sh: Update from gnulib.
1330         * lib/Makefile.am: Initialize all of the following so that
1331         generated code in gnulib.mk may use += to append to those variables:
1332         AM_CFLAGS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST, MOSTLYCLEANDIRS,
1333         MOSTLYCLEANFILES, SUFFIXES, noinst_LTLIBRARIES.
1334
1335 2012-01-01  Jim Meyering  <meyering@redhat.com>
1336
1337         maint: update all copyright year number ranges
1338         Run "make update-copyright".
1339
1340 2011-12-21  Paul Eggert  <eggert@cs.ucla.edu>
1341
1342         zless: decompress stdin too, if less 429 or later
1343         * zless.in: Use LESSOPEN |- feature of less 429 or later.
1344         Problem reported by Jeroen Roovers via Mike Frysinger in
1345         <http://lists.gnu.org/archive/html/bug-gzip/2011-12/msg00006.html>.
1346
1347 2011-11-29  Jim Meyering  <meyering@redhat.com>
1348
1349         build: update gnulib submodule to latest
1350
1351         build: accommodate gnulib's new warnings with --enable-gcc-warnings
1352         * configure.ac (WERROR_CFLAGS): Disable two new warnings:
1353         -Wno-format-nonliteral, -Wno-unsuffixed-float-constants.
1354         * gzip.h (bi_reverse): Declare with _GL_ATTRIBUTE_CONST.
1355         (gzip_base_name): Declare with _GL_ATTRIBUTE_PURE.
1356
1357 2011-11-29  Jim Meyering  <meyering@redhat.com>
1358
1359         tests: use "compare exp out", not "compare out exp"
1360         Likewise, when an empty file is expected, use "compare /dev/null out",
1361         not "compare out /dev/null". I.e., specify the expected/desired contents
1362         via the first file name.  Prompted by a suggestion from Bruno Haible
1363         in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020/focus=29154
1364
1365         Run these commands:
1366
1367             git grep -l -E 'compare [^ ]+ exp' \
1368               |xargs perl -pi -e 's/\b(compare) (\S+) (exp\S*)/$1 $3 $2/'
1369             git grep -l -E 'compare [^ ]+ /dev/null' \
1370               |xargs perl -pi -e 's,\b(compare) (\S+) (/dev/null),$1 $3 $2,'
1371
1372 2011-11-05  Jim Meyering  <meyering@redhat.com>
1373
1374         build: update gnulib submodule to latest
1375
1376 2011-11-02  Paul Eggert  <eggert@cs.ucla.edu>
1377
1378         * tests/zgrep-signal: Don't assume exit status 141 on PIPE signal.
1379         Problem reported by Eric Blake in
1380         <http://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00007.html>.
1381
1382         * tests/zgrep-signal: Use perl instead of a nonportable shell trap.
1383         Problem reported by Eric Blake in
1384         <http://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00005.html>.
1385
1386         * tests/zgrep-signal: Test for Fedora 15 signal bug.
1387         Also, don't assume that SIGPIPE is SIG_DFL on entry.
1388
1389 2011-11-02  Jim Meyering  <meyering@redhat.com>
1390
1391         build: update gnulib submodule to latest
1392
1393         tests: mixed: correct size-enumeration logic
1394         * tests/mixed (sizes): Fix misplaced "&& break" that made us test
1395         only with a size of 0, rather than all sizes in 0..64.
1396
1397         maint: avoid "make syntax-check" failure
1398         * gzip.c (treat_stdin): Indent with spaces, not TABs.
1399
1400 2011-11-02  Paul Eggert  <eggert@cs.ucla.edu>
1401
1402         * gzip.c (treat_stdin): If quiet, be quiet with plain gzip -q.
1403         Problem reported by Michaël Guitton in
1404         <http://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00000.html>.
1405
1406 2011-08-10  Jim Meyering  <meyering@redhat.com>
1407
1408         maint: remove amiga, atari, msdos, nt, os2, vms sub-directories,
1409         and all files therein.  This was proposed months prior, and no
1410         one objected.
1411         * amiga/Makefile.gcc: Remove file.
1412         * amiga/Makefile.sasc: Likewise.
1413         * amiga/match.a: Likewise.
1414         * amiga/tailor.c: Likewise.
1415         * amiga/utime.h: Likewise.
1416         * atari/Makefile.st: Likewise.
1417         * msdos/Makefile.bor: Likewise.
1418         * msdos/Makefile.djg: Likewise.
1419         * msdos/Makefile.msc: Likewise.
1420         * msdos/doturboc.bat: Likewise.
1421         * msdos/gzip.prj: Likewise.
1422         * msdos/match.asm: Likewise.
1423         * msdos/tailor.c: Likewise.
1424         * nt/Makefile.nt: Likewise.
1425         * os2/Makefile.os2: Likewise.
1426         * os2/gzip.def: Likewise.
1427         * os2/gzip16.def: Likewise.
1428         * vms/Makefile.gcc: Likewise.
1429         * vms/Makefile.mms: Likewise.
1430         * vms/Makefile.vms: Likewise.
1431         * vms/Readme.vms: Likewise.
1432         * vms/gzip.hlp: Likewise.
1433         * vms/makegzip.com: Likewise.
1434         * vms/vms.c: Likewise.
1435         * Makefile.am (EXTRA_DIST): Remove those file names.
1436
1437         build: use largefile module and update to latest gnulib
1438         * configure.ac: Remove AC_SYS_LARGEFILE, subsumed by ...
1439         * bootstrap.conf (gnulib_modules): ...this.  Use largefile module.
1440         * gnulib: Update to latest.
1441
1442 2011-07-12  Jim Meyering  <meyering@redhat.com>
1443
1444         maint: update init.sh and bootstrap from gnulib
1445         * bootstrap: Update from gnulib.
1446         * tests/init.sh: Update from gnulib.
1447
1448         maint: use gnulib's realloc-gnu and malloc-gnu modules
1449         * bootstrap.conf (gnulib_modules): Use realloc-gnu and malloc-gnu,
1450         rather than the now-deprecated realloc and malloc modules.
1451
1452         build: update gnulib submodule to latest
1453
1454 2011-06-21  Paul Eggert  <eggert@cs.ucla.edu>
1455
1456         * deflate.c: Export nice_match to assembler.
1457         (static_unless_ASMV): New macro.
1458         (nice_match): Use it.
1459
1460 2011-06-08  Jim Meyering  <meyering@redhat.com>
1461
1462         build: fix "make syntax-check"
1463         * cfg.mk (_gl_TS_unmarked_extern_vars): Add good_match.
1464
1465         build: avoid link failure: this time on i686 linux
1466         * deflate.c (good_match): Must not be static, since it may
1467         be used from lib/match.c.
1468
1469 2011-05-14  Jim Meyering  <meyering@redhat.com>
1470
1471         build: avoid link failure on at least i386-FreeBSD7.2
1472         * deflate.c (match_start, prev_length, max_chain_length): Do not
1473         declare these as static.  On some types of system/arch, they are
1474         used via match_.s.
1475         * cfg.mk (_gl_TS_unmarked_extern_vars): Mark those three variables
1476         as known-extern: match_start, prev_length, max_chain_length.
1477
1478 2011-05-13  Jim Meyering  <meyering@redhat.com>
1479
1480         avoid new build failure on a system without <crypt.h>
1481         * bits.c: Don't include "crypt.h", now that it's deleted.
1482
1483         maint: use gnulib's new readme-release module
1484         * bootstrap.conf (gnulib_modules): Add readme-release.
1485         (bootstrap_epilogue): Add the recommended perl one-liner.
1486         * README-release: Remove file; it is now generated from gnulib.
1487         * .gitignore: Add it.
1488
1489 2011-05-09  Jim Meyering  <meyering@redhat.com>
1490
1491         build: update gnulib submodule to latest
1492
1493         maint: prepare for gnulib's new tight-scope syntax-check rule
1494         * cfg.mk (_gl_TS_dir): Define.
1495         (_gl_TS_unmarked_extern_vars): Define.
1496
1497         maint: declare many variables to be static
1498         * deflate.c: Likewise.
1499         * gzip.c: Likewise.
1500         * gzip.h: Likewise.
1501         * inflate.c: Likewise.
1502         * trees.c: Likewise.
1503         * unzip.c: Likewise.
1504         * util.c: Likewise.
1505
1506         maint: remove crypt.[ch] stubs
1507         * Makefile.am (gzip_SOURCES): Remove crypt.c
1508         (EXTRA_DIST): Remove crypt.h
1509         * crypt.c, crypt.h: Remove files.
1510         * unpack.c: Don't #include "crypt.h"
1511         * zip.c: Likewise
1512         * util.c: Likewise.
1513         * unzip.c: Likewise.
1514
1515         maint: limit scope of several functions
1516         * deflate.c (longest_match): Move extern declaration into #if-ASMV block.
1517         [!ASMV]: Define as static.
1518         * inflate.c: Remove unnecessary prototypes.
1519         ANSI-declify functions and declare them to be static.
1520
1521         maint: remove all uses of OF((...)) prototype-hiding macro
1522         * bits.c: Remove all uses of OF.
1523         * deflate.c: Likewise.
1524         * gzip.c: Likewise.
1525         * inflate.c: Likewise.
1526         * lzw.h: Likewise.
1527         * trees.c: Likewise.
1528         * unlzh.c: Likewise.
1529         * unpack.c: Likewise.
1530         * util.c: Likewise.
1531         * gzip.h: Likewise.
1532         (OF): Remove its definition, too.
1533
1534         maint: prepare for tight-scope rule: use noinst_HEADERS
1535         * Makefile.am (EXTRA_DIST): Move lzw.h and gzip.h from here to ...
1536         (noinst_HEADERS): ...here.
1537         For convenience, since the tight-scope rule uses $(noinst_HEADERS).
1538
1539 2011-04-14  Jim Meyering  <meyering@redhat.com>
1540
1541         maint: update bootstrap and init.sh from gnulib
1542         * bootstrap: Likewise.
1543         * tests/init.sh: Update from gnulib.
1544
1545         maint: note that we'll remove amiga, atari, msdos, nt, os2, vms soon
1546         If someone can show that any of these are being used, let us know.
1547         * TODO: Note the plan to remove those directories this year.
1548
1549         build: update gnulib submodule to latest
1550
1551         maint: fix typos in vms manual: s/it\nit/\nit/
1552         * vms/gzip.hlp: Remove doubled "it".
1553
1554 2011-04-10  Jim Meyering  <meyering@redhat.com>
1555
1556         maint: fix typos in comment: s/to to/to/
1557         * deflate.c: Remove doubled 'to's.
1558
1559 2011-03-20  Jim Meyering  <meyering@redhat.com>
1560
1561         maint: stop using .x-sc_* files to list syntax-check exemptions
1562         Instead, use the new mechanism with which you merely use a
1563         variable (derived from the rule name) defined in cfg.mk to an ERE
1564         matching the exempted file names.
1565         * gnulib: Update to latest, to get maint.mk that implements this.
1566         * .x-sc_file_system: Remove file.
1567         * .x-sc_prohibit_tab_based_indentation: Likewise.
1568         * .x-sc_require_config_h: Likewise.
1569         * .x-sc_require_config_h_first: Likewise.
1570         * cfg.mk: Define variables to exempt the same files.
1571
1572 2011-03-18  Jim Meyering  <meyering@redhat.com>
1573
1574         doc: correct README-release
1575         * README-release: Remove mention of -announce mailing list.
1576         Unlike coreutils, gzip does not have its own.
1577
1578         doc: update release procedure
1579         * README-release: Resync from coreutils' file by the same name.
1580
1581 2011-01-03  Jim Meyering  <meyering@redhat.com>
1582
1583         maint: update copyright year ranges to include 2011
1584         Run "make update-copyright", so "make syntax-check" works in 2011.
1585
1586         build: update gnulib submodule to latest
1587
1588         maint: avoid failure of new test for bindtextdomain
1589         * cfg.mk (local-checks-to-skip): Add sc_bindtextdomain.
1590
1591 2010-12-02  Jim Meyering  <meyering@redhat.com>
1592
1593         maint: avoid "make syntax-check" failure due to old-NEWS modification
1594         * cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction.
1595
1596 2010-12-01  Paul Eggert  <eggert@cs.ucla.edu>
1597
1598         * NEWS: The "gzip -f foo.gz" change occurred in 1.3.13, not 1.3.12
1599
1600 2010-11-10  Paul Eggert  <eggert@cs.ucla.edu>
1601
1602         zgrep: don't assume traditional behavior with signal numbers
1603         * zgrep.in: Don't assume the exit status is the signal number plus
1604         128, as POSIX doesn't require this.  No need to kill self; exiting
1605         with large status is enough.  Propagate all exit statuses greater
1606         than 1, not merely those in the range 129..143, as there's no need
1607         to treat that range specially (and it's not portable anyway).
1608
1609 2010-11-09  Paul Eggert  <eggert@cs.ucla.edu>
1610
1611         zgrep: fix shell portability bug with -f; fix mishandling of "-e -"
1612         * tests/zgrep-f: Check for "zgrep -e -" bug, too.
1613         * zgrep.in: Don't assume that if the shell redirects fd 6, then
1614         this redirection is visible to the subsidiary grep.  POSIX doesn't
1615         guarantee this visibility except for file descriptors 0, 1, and 2,
1616         and ksh does not support it.  Problem reported by Thomas Schulz in
1617         <http://lists.gnu.org/archive/html/bug-gzip/2010-11/msg00000.html>.
1618         Also, fix a related bug: "-e -" was mishandled.  These two bugs
1619         were introduced by commit 5b54db4546b84ec97ff57a62f8ddb98faacf77f2
1620         dated 2009-10-09.
1621         (escape): Change the convention: do not assume that a stray X
1622         is present at the end of the last line.  All uses changed.
1623         There was no longer any need for this convention, and fixing this
1624         made it a bit easier to use 'sed' in a later part of the fix.
1625
1626 2010-11-08  Paul Eggert  <eggert@cs.ucla.edu>
1627
1628         maint: fix copyright dates that were munged by a maintenance script
1629         * gunzip.in, gzexe.in, zcat.in, zcmp.in, zdiff.in, zforce.in:
1630         * zgrep.in, zless.in, zmore.in, znew.in:
1631         A script went awry when updating copyright dates in gzip's shell
1632         scripts.  It should update comments to look like "# Copyright (C)
1633         2007, 2010 Free Software Foundation, Inc." (with a set of years)
1634         and version messages to look like "Copyright (C) 2010 Free
1635         Software Foundation, Inc." (with just the most-recent year).
1636         Instead, it sometimes ignored one, sometimes the other, and
1637         typically put ranges into version messages.  Fix all this stuff by
1638         hand, using dates that I divined from the change logs (so they're
1639         a bit more accurate than script-generated dates).  We need to fix
1640         the script before it runs in 2011.
1641
1642 2010-10-23  Jim Meyering  <meyering@redhat.com>
1643
1644         maint: anchor patterns in .gitignore files
1645         * doc/.gitignore: Anchor patterns.
1646         * lib/.gitignore: Likewise.
1647         * m4/.gitignore: Likewise.
1648
1649         maint: update bootstrap and init.sh from gnulib
1650         * bootstrap: Update.
1651         * tests/init.sh: Update.
1652
1653 2010-10-23  Rob Vermaas  <rob.vermaas@gmail.com>
1654
1655         maint: update to latest gnulib; use fdutimens, not gl_futimens
1656         * gzip.c (copy_stat): Use fdutimens, not gl_futimens.
1657         * gnulib: Update to latest.
1658
1659 2010-10-23  Jim Meyering  <meyering@redhat.com>
1660
1661         maint: accommodate stricter syntax-check
1662         Avoid #if, #define and #undef of always-defined symbols.
1663         * gzip.c (ELOOP, SIGPIPE): Remove unneeded cpp directives.
1664         * tailor.h (HAVE_DIRENT_H, HAVE_FCNTL_H, HAVE_UNISTD_H, MSDOS):
1665         (O_BINARY): Likewise.
1666
1667         maint: make our use of gnulib's init.sh conform
1668         * tests/help-version: Make use of init.sh conform.
1669         * tests/helin-segv: Likewise.
1670         * tests/help-version: Likewise.
1671         * tests/hufts: Likewise.
1672         * tests/memcpy-abuse: Likewise.
1673         * tests/mixed: Likewise.
1674         * tests/null-suffix-clobber: Likewise.
1675         * tests/stdin: Likewise.
1676         * tests/trailing-nul: Likewise.
1677         * tests/zdiff: Likewise.
1678         * tests/zgrep-f: Likewise.
1679         * tests/zgrep-signal: Likewise.
1680         * tests/znew-k: Likewise.
1681
1682 2010-10-10  Jim Meyering  <meyering@redhat.com>
1683
1684         maint: describe policy on copyright year number ranges
1685         * README: Mention coreutils' long-standing policy on use of M-N
1686         ranges in copyright year lists.  Requested by Richard Stallman.
1687
1688 2010-09-15  Paul Eggert  <eggert@cs.ucla.edu>
1689
1690         zgrep: fix parsing of -Eh options
1691         * zgrep.in: Update list of single-letter options to match what's
1692         in GNU grep.  Add -h as an alias for --no-filename.  Bug reported
1693         by Vladimir Sidorenko in
1694         <http://lists.gnu.org/archive/html/bug-gzip/2010-09/msg00007.html>.
1695
1696 2010-08-17  Paul Eggert  <eggert@cs.ucla.edu>
1697
1698         gzip: fix NO_SIZE_CHECK for VMS
1699         * gzip.c (do_list): Use if, not #if.
1700         * tailor.h (NO_SIZE_CHECK) [defined(VAXC) || defined(VMS)]: Define.
1701         * zip.c (zip): Simplify conditional, which was incorrect at any rate
1702         for VMS.
1703
1704 2010-08-15  Paul Eggert  <eggert@cs.ucla.edu>
1705
1706         algorithm.doc: mention Internet RFC 1952 and modernize a bit
1707         * algorithm.doc: Update to mention header-CRC and Internet RFC 1952.
1708         Also, remove the crypto stuff, which never worked.
1709         Inspired by that same suggestion of Greg Roelofs.
1710
1711         gzip: Use 0x%04x instead of %x when printing 16-bit checksums
1712         * gzip.c (get_method): Use 0x%04x, not %x, to print 16-bit checksums.
1713         Inspired by a suggestion of Greg Roelofs in
1714         http://lists.gnu.org/archive/html/bug-gzip/2010-08/msg00004.html
1715
1716 2010-08-03  Paul Eggert  <eggert@cs.ucla.edu>
1717
1718         maint: update bootstrap
1719         * bootstrap, bootstrap.conf, tests/init.sh: Merge from gnulib.
1720
1721 2010-07-19  Paul R. Eggert  <eggert@cs.ucla.edu>
1722
1723         gzip: don't assume C99, and don't assume overlapping memcpy should work
1724         * tailor.h (NOMEMCPY): Remove.  memcpy is entitled to not work
1725         on overlapping blocks.
1726         * inflate.c (inflate_codes): Don't put decl after statement.
1727         Omit NOMEMCPY.
1728
1729         * gzip.c (get_method): don't assume size_t can be printed with %u
1730
1731 2010-07-02  Paul Eggert  <eggert@cs.ucla.edu>
1732
1733         Mention that gzip -d now handles FHCRC.
1734
1735 2010-07-02  Paul Eggert  <eggert@cs.ucla.edu>
1736
1737         Decode FHCRC flag properly, as per Internet RFC 1952.
1738         Problem reported by Greg Roelofs in:
1739         http://lists.gnu.org/archive/html/bug-gzip/2010-06/msg00003.html
1740
1741         * gzip.c (discard_input_bytes): New function.
1742         (get_method): Check header checksum, if given.  We never generate it,
1743         but other programs may.
1744         * gzip.h (HEADER_CRC): Renamed from CONTINUATION.  All uses changed.
1745         * tailor.h [defined __50SERIES]: Remove PRIMOS stuff that was obsolete
1746         anyway and would have made this patch harder to maintain.
1747         (get_char, put_char): Remove.
1748         * zip.c (zip): Use put_byte instead of the now-removed put_char.
1749
1750 2010-07-01  Paul Eggert  <eggert@cs.ucla.edu>
1751
1752         Don't assume that sizeof (long) == 4 when computing statistics.
1753         * gzip.c (get_method): Don't assume sizeof (long) == 4.
1754         * zip.c (zip): Likewise.
1755
1756         Update Info-ZIP name and coordinates (thanks to Greg Roelofs).
1757
1758 2010-05-11  Paul Eggert  <eggert@cs.ucla.edu>
1759
1760         * doc/gzip.texi (Sample): Fix backslash quoting problem.
1761         Problem reported by Ole Tange in
1762         <http://lists.gnu.org/archive/html/bug-gzip/2010-05/msg00000.html>.
1763
1764 2010-04-26  Jim Meyering  <meyering@redhat.com>
1765
1766         build: update gnulib submodule to latest
1767
1768         maint: remove primos support
1769         * Makefile.am (EXTRA_DIST): Remove all primos/ files.
1770         * primos/build.cpl: Remove file.
1771         * primos/ci.opts: Likewise.
1772         * primos/include/errno.h: Likewise.
1773         * primos/include/fcntl.h: Likewise.
1774         * primos/include/stdlib.h: Likewise.
1775         * primos/include/sysStat.h: Likewise.
1776         * primos/include/sysTypes.h: Likewise.
1777         * primos/primos.c: Likewise.
1778         * primos/readme: Likewise.
1779
1780 2010-04-08  Jim Meyering  <meyering@redhat.com>
1781
1782         build: include cfg.mk in the distribution tarball
1783         * Makefile.am (EXTRA_DIST): Add cfg.mk.
1784
1785 2010-04-07  Eric Blake  <eblake@redhat.com>
1786
1787         maint: ignore more built files
1788         * .gitignore: Add version files.
1789
1790 2010-04-07  Jim Meyering  <meyering@redhat.com>
1791
1792         tests: help-version: cross-check PATH in tests
1793         * tests/help-version: Cross-check $VERSION and --version output.
1794         * tests/Makefile.am (TESTS_ENVIRONMENT): Export VERSION=$(VERSION).
1795
1796         tests: improve help-version
1797         * tests/help-version: Use fail_, rather than echo+Exit.
1798
1799         tests: pull help-version from grep
1800
1801         build: keep --version strictly up to date
1802         Before this change, in development, gzip's --version output could lag
1803         behind reality by a couple deltas or by a "-dirty" suffix.  That would
1804         lead to spurious failure of the new --version-$VERSION PATH cross-check.
1805         * Makefile.am (version.c, version.h): New rules.
1806         (BUILT_SOURCES): Set/append.
1807         (noinst_LIBRARIES, noinst_libver_a_SOURCES): Define.
1808         (gzip_LDADD): Add libver.a.
1809         (DISTCLEANFILES): Define.
1810         * gzip.c (license): Use Version, not VERSION.
1811
1812 2010-04-06  Jim Meyering  <meyering@redhat.com>
1813
1814         tests: (portability) use st, not "status" as variable name
1815         * tests/zgrep-signal: Do not use status as a variable name,
1816         per autoconf's documentation that it is not portable to
1817         some shells.
1818
1819         tests: s/framework_failure/framework_failure_/
1820
1821         tests: update init.sh from gnulib
1822         * tests/init.sh: Update from gnulib.
1823
1824         tests: run most tests via tests/Makefile.am
1825         * Makefile.am (SUBDIRS): List tests after ".".
1826         Move most test-related things from here to ...
1827         * tests/Makefile.am: ... here.
1828         * configure.ac (AC_CONFIG_FILES): Add tests/Makefile.
1829         * tests/helin-segv: Adjust.
1830         * tests/help-version: Likewise.
1831         * tests/hufts: Likewise.
1832         * tests/memcpy-abuse: Likewise.
1833         * tests/mixed: Likewise.
1834         * tests/null-suffix-clobber: Likewise.
1835         * tests/stdin: Likewise.
1836         * tests/trailing-nul: Likewise.
1837         * tests/zdiff: Likewise.
1838         * tests/zgrep-f: Likewise.
1839         * tests/zgrep-signal: Likewise.
1840         * tests/znew-k: Likewise.
1841
1842         tests: skip tests that use grep's -f and -E options, if they don't work
1843         * tests/init.cfg (require_grep_minus_f): New function.
1844         * tests/zgrep-f: Use require_grep_minus_f.  Use path_prepend_.
1845
1846         tests: arrange for skip and failure notices to go to stderr, not .log
1847         * tests/init.cfg: New file.  Make init.sh's stderr_fileno_ match
1848         what the "exec 9>&2" we use in TESTS_ENVIRONMENT.
1849         * Makefile.am (EXTRA_DIST): Add it.
1850
1851 2010-04-06  Eric Blake  <eblake@redhat.com>
1852
1853         maint: ignore generated files
1854         * .gitignore: Ignore recent gnulib additions.
1855
1856         maint: update bootstrap
1857         * bootstrap: Use latest copy from gnulib/build-aux.
1858
1859 2010-04-05  Jim Meyering  <meyering@redhat.com>
1860
1861         build: use gnulib's lib-ignore module
1862         * bootstrap.conf (gnulib_modules): Add lib-ignore, in case it helps.
1863         * Makefile.am (AM_LDFLAGS): Define it.
1864
1865         maint: let configure-invoked cpp emit diagnostics to config.log
1866         * configure.ac: Do not discard CPP's stderr.
1867
1868         build: update gnulib submodule to latest, and adapt
1869         * cfg.mk: Update to use new _sc_search_regexp interface.  Run this:
1870         perl -pi -e 's/\b_prohibit_regexp\b/_sc_search_regexp/;'
1871         -e 's/\bmsg=/halt=/; s/\bre=/prohibit=/;' cfg.mk
1872         and then adjust backslashes so they still line up.
1873         * cfg.mk (local-checks-to-skip): Add new sc_texinfo_acronym, to skip it.
1874         * msdos/tailor.c (fcalloc): Mark a diagnostic for translation, to
1875         placate stricter syntax-check, even though no one uses this file.
1876
1877         use assembly code matcher when possible
1878         * configure.ac (ASCPPPOST): Backslash-escape "#" in AC_SUBST'd
1879         variable, to keep make from seeing it as a comment-introducer.
1880         Based on a patch by Petr Pisar.
1881         * lib/Makefile.am (match.$(OBJEXT)): Use AM_V_GEN and AM_V_at.
1882         * lib/match.c: Don't include <config.h>.
1883         It would impede configure-time assembler test.
1884         * .x-sc_require_config_h: Exempt lib/match.c from syntax-check.
1885         * .x-sc_require_config_h_first: Likewise.
1886
1887 2010-03-20  Jim Meyering  <meyering@redhat.com>
1888
1889         do not use stat.st_mtime of a non-regular file
1890         * gzip.c: Include "timespec.h".
1891         (treat_stdin): Use st_mtime only from a regular file.
1892         This matters at least on Cygwin 1.7.1-1, for which a stdin-pipe has
1893         the mtime of /dev/null, rather than the gzip-documented-for-pipes
1894         "current time".  Reported by Denis Excoffier.
1895
1896 2010-02-22  Jim Meyering  <meyering@redhat.com>
1897
1898         tests: exercise the fix for the decompression data-loss bug
1899         * tests/null-suffix-clobber: New file.
1900         * Makefile.am (TESTS): Add it.
1901
1902         gzip: fix a data-loss bug when decompressing with --suffix=''
1903         * gzip.c (main): Disallow an empty --suffix=S also with -d.
1904         Otherwise, "gzip -d -S '' F.gz" would ask if it's ok to remove the
1905         existing file, "F.gz";  if you reply "yes", you'd lose all of that data.
1906         Use of an empty suffix was already rejected in compression mode.
1907         * gzip.1 (--suffix (-S)): Do not recommend to use "gunzip -S '' *".
1908         Describe how the suffix is used when decompressing, too.
1909         * NEWS (Bug fixes): mention the fix.
1910         Reported by Ripduman Sohan.
1911
1912         tests: add ---presume-input-tty option, solely for testing
1913         * gzip.c: Include <stdbool.h>.
1914         (presume_input_tty): New global.
1915         (main): Set it.
1916         (treat_stdin, check_ofname): Use it.
1917
1918 2010-02-07  Jim Meyering  <meyering@redhat.com>
1919
1920         doc: minor adjustment to README-release
1921         * README-release: Tweak description, to sync from coreutils.
1922
1923         tests: add the help-version sanity tests from coreutils
1924         * tests/help-version: New file, from coreutils.
1925         * Makefile.am (TESTS): Add it.
1926
1927         tests: make distcheck invoke "make syntax-check" and other tests
1928         * dist-check.mk: New file, from coreutils.
1929         * cfg.mk: Include it.
1930         * Makefile.am (distcheck-hook): New rule, to make us use it.
1931
1932         zcmp: consistently indicate failure with exit status of 2
1933         * zcmp.in: Exit with status of 2 (not 1), when writing
1934         --help or --version output fails, to be more like cmp.
1935
1936 2010-02-03  Jim Meyering  <meyering@redhat.com>
1937
1938         tests: add more tests of gzip -cdf
1939         * tests/mixed: Test "gzip -cdf" for a range of small uncompressed files.
1940
1941         tests: flip and adjust mixed test, now that the bug is fixed
1942         * NEWS (Bug fixes): Mention the fix.
1943         * Makefile.am (XFAIL_TESTS): Move tests/mixed from here...
1944         (TESTS): ...to here.
1945         * tests/mixed: Comment out the currently (always?) failing part.
1946
1947 2010-02-03  Mark Adler  <madler@alumni.caltech.edu>
1948
1949         gzip -cdf now handles concatenation of gzip'd and uncompressed data
1950         * util.c (copy): Change semantics so as to honor a decremented inptr.
1951         * gzip.c (get_method): When needed (-cdf), decrement inptr rather
1952         than clearing it -- and output the first magic byte.
1953
1954 2010-02-03  Dmitry V. Levin  <ldv@altlinux.org>
1955
1956         zgrep: terminate gracefully when a pipeline is interrupted by a signal
1957         zgrep is not terminated gracefully when its grep/sed pipeline
1958         is terminated by a signal.  For example, a command like
1959         zgrep -F .TH /usr/share/man/man1/*.gz | head
1960         continues working long after the "head" process completes.
1961         Another example, a command like
1962         zgrep unmatched-pattern /usr/share/man/man1/*.gz
1963         cannot be interrupted by sending a SIGQUIT with Ctrl-\ key, it outputs
1964         zgrep: line 221: test: : integer expression expected
1965         and goes on.
1966         * zgrep.in: Terminate gracefully when the grep/sed pipeline is
1967         terminated by a signal.
1968         * tests/zgrep-signal: New test.
1969         * Makefile.am (TESTS): Add it.
1970
1971 2010-02-03  Jim Meyering  <meyering@redhat.com>
1972
1973         maint: teach "make syntax-check" the space-only indentation rule
1974         * cfg.mk (sc_prohibit_tab_based_indentation): New rule, from coreutils.
1975         (sc_prohibit_emacs__indent_tabs_mode__setting): Likewise.
1976         * bootstrap: Remove "indent-tabs-mode: nil" directive.
1977         * .x-sc_prohibit_tab_based_indentation: New file.
1978
1979 2010-02-02  Jim Meyering  <meyering@redhat.com>
1980
1981         global: convert indentation-TABs to spaces
1982         Transformed via this shell code:
1983         t=$'\t'
1984         git ls-files \
1985           | grep -vE '(^|/)((GNU)?[Mm]akefile|ChangeLog)|\.(am|mk)$' \
1986           | grep -vE 'tests/pr/|help2man' \
1987           | xargs grep -lE "^ *$t" \
1988           | xargs perl -MText::Tabs -ni -le \
1989             '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
1990
1991 2010-02-02  Dmitry V. Levin  <ldv@altlinux.org>
1992
1993         wrapper scripts: write diagnostics to stderr, not to stdout
1994         * zforce.in: In case of usage error, output short error diagnostics to
1995         stderr instead of printing help text to stdout.
1996         * zmore.in: Likewise.
1997         * znew.in: Likewise.
1998
1999 2010-02-02  Jim Meyering  <meyering@redhat.com>
2000
2001         gzip -cdf mishandles some concatenated input streams: test it
2002         * tests/mixed: Exercise "gzip -cdf" bug.
2003         * Makefile.am (XFAIL_TESTS): Add it.
2004         Mark Adler reported the bug.
2005
2006         tests: move the hufts-segv test to its own file
2007         * tests/hufts: New test.
2008         * Makefile.am (TESTS): Add tests/
2009         (check-local): Remove the hufts-segv test from this rule.
2010
2011         tests: begin moving tests into their own files
2012         * Makefile.am (TESTS): Add tests/stdin.
2013         (check-local): Move the stdin check to its own file:
2014         * tests/stdin: New script.
2015
2016         tests: remove unnecessary use of "path_prepend_ ."
2017         It is unnecessary, since Makefile.am's TESTS_ENVIRONMENT setting
2018         already adds the top build directory, and besides, is only
2019         marginally useful when running stand-alone, since it presumes
2020         that the script is being run from the top build directory.
2021         * tests/helin-segv: Remove unnecessary use of path_prepend_.
2022         * tests/memcpy-abuse: Likewise.
2023         * tests/trailing-nul: Likewise.
2024         * tests/zdiff: Likewise.
2025         * tests/zgrep-f: Likewise.
2026
2027         tests: note that znew-k test depends on length of temp file name
2028         * tests/znew-k: Tweak diagnostic, factor and add a surprising comment.
2029
2030 2010-02-01  Jim Meyering  <meyering@redhat.com>
2031
2032         build: update gnulib submodule to latest
2033
2034 2010-02-01  Dmitry V. Levin  <ldv@altlinux.org>
2035
2036         fix "znew -K" to work without use of compress utility
2037         * znew.in: Change -K option to imply -t, do not use compress(1).
2038         * znew.1: Document it.
2039         * tests/znew-k: New test.
2040         * Makefile.am (TESTS): Add it.
2041
2042 2010-01-20  Jim Meyering  <meyering@redhat.com>
2043
2044         maint: update README-release procedure
2045         * README-release: sync from coreutils.
2046
2047         post-release administrivia
2048         * NEWS: Add header line for next release.
2049         * .prev-version: Record previous version.
2050         * cfg.mk (old_NEWS_hash): Auto-update.
2051
2052         version 1.4
2053         * NEWS: Record release date.
2054
2055         tests: exercise the segfault fix
2056         * tests/helin-segv: New test.
2057         * Makefile.am (TESTS): Add it.
2058
2059         gzip -d: do not clobber stack for valid input on x86_64
2060         * unlzw.c (unlzw): Avoid integer overflow.
2061         Aki Helin reported the segfault along with an input to trigger the bug.
2062         * NEWS (Bug fixes): Mention it.
2063
2064         maint: avoid a minor "make syntax-check" failure
2065         * .x-sc_file_system: Exempt NEWS, since it includes a literal
2066         from an old diagnostic.
2067
2068         maint: remove unused file: README-alpha
2069         * README-alpha: Remove unused file.
2070
2071         build: update gnulib submodule to latest
2072
2073 2010-01-11  Yuxi Zhang  <YZhang@qnx.com>
2074
2075         gzip -d: use memcpy more often
2076         * inflate.c (inflate_codes): Use memcpy (rather than slower
2077         memcopy-like code) in more cases.
2078
2079 2010-01-11  Jim Meyering  <meyering@redhat.com>
2080
2081         build: do not override gnulib-provided AM_CFLAGS options
2082         Avoid a warning from automake:
2083         lib/Makefile.am:24: AM_CFLAGS multiply defined in condition TRUE ...
2084         lib/gnulib.mk:30: ... `AM_CFLAGS' previously defined here
2085         lib/Makefile.am:20:   `lib/gnulib.mk' included from here
2086
2087         * lib/Makefile.am (AM_CFLAGS): Append $(WARN_CFLAGS) and
2088         $(WERROR_CFLAGS), i.e., use "+=", not "=".
2089         This was introduced via 2009-12-17 commit 0341fc22,
2090         "build: with --enable-gcc-warnings, use -Werror",
2091         but fortunately is not a bug, because the definition
2092         it would have overridden was always empty.
2093
2094 2010-01-10  Jim Meyering  <meyering@redhat.com>
2095
2096         gzip -d would fail with a CRC error...
2097         ...for some inputs, and some memcpy implementations.  It is possible
2098         that an offending input has to be compressed "from FAT filesystem
2099         (MS-DOS, OS/2, NT)", since the sole reproducer no longer evokes a
2100         CRC error when uncompressed and recompressed on a GNU/Linux system.
2101         Also, using an unpatched reverse-memcpy-gzip on over 100,000 inputs
2102         on a GNU/Linux system did not turn up another reproducer.
2103         * inflate.c (inflate_codes): Don't call memcpy with overlapping regions.
2104         Properly detect when source and destination overlap.
2105         * tests/memcpy-abuse: New test, to trigger misbehavior.
2106         * Makefile.am (TESTS): Add it.
2107         * NEWS (Bug fixes): Mention it.
2108         Reported by Alain Magloire in
2109         http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/307
2110
2111 2010-01-08  Jim Meyering  <meyering@redhat.com>
2112
2113         tests: switch to gnulib's init.sh test infrastructure
2114         * tests/test-lib.sh: Remove file.
2115         * tests/init.sh: New file, from gnulib.
2116         * tests/trailing-nul: Use the new file.
2117         * tests/zdiff: Likewise.
2118         * tests/zgrep-f: Likewise.
2119         * Makefile.am (EXTRA_DIST): List tests/init.sh, not test-lib.sh.
2120
2121         build: update gnulib submodule to latest
2122
2123 2010-01-03  Jim Meyering  <meyering@redhat.com>
2124
2125         maint: record update-copyright options for this package
2126         * cfg.mk: Next time, just run "make update-copyright".
2127
2128 2010-01-01  Jim Meyering  <meyering@redhat.com>
2129
2130         maint: update all FSF copyright year lists to include 2010
2131         Use this command:
2132         git ls-files |grep -vE '^(\..*|COPYING|gnulib)$' |xargs \
2133         env UPDATE_COPYRIGHT_USE_INTERVALS=1 build-aux/update-copyright
2134
2135 2009-12-31  Jim Meyering  <meyering@redhat.com>
2136
2137         maint: newer gnulib; don't hard-code my GPG key ID
2138         * cfg.mk (gpg_key_ID): Remove definition, now that maint.mk automates it.
2139         * gnulib: Update to lastest.
2140
2141 2009-12-30  Jim Meyering  <meyering@redhat.com>
2142
2143         build: update gnulib submodule to latest
2144
2145         maint: remove lots of obsolete #if...HAVE_* checks
2146         Remove many always-true cpp tests like #ifdef HAVE_UNISTD_H,
2147          #ifdef HAVE_FCNTL_H and #ifdef SSIZE_MAX.
2148         * gzip.c: As above.
2149         * gzip.h: Likewise.
2150         * inflate.c: Likewise.
2151         * tailor.h: Likewise.
2152         * unlzw.c: Likewise.
2153         * util.c: Likewise.
2154         * zip.c: Likewise.
2155
2156         build: add a syntax-check
2157         * cfg.mk (sc_prohibit_obsolete_HAVE_HEADER_H): New rule.
2158
2159         build: with --enable-gcc-warnings, use -Werror
2160         * Makefile.am (AM_CFLAGS): Enable $(WERROR_CFLAGS).
2161         * lib/Makefile.am (AM_CFLAGS): Enable both $(WARN_CFLAGS) and
2162         $(WERROR_CFLAGS).
2163
2164         build: quiet warnings from util.c
2165         * configure.ac (warnings): Add -Wno-overflow and -Wno-type-limits.
2166
2167         build: avoid warning about possibly-no-return functions
2168         * gzip.h (read_error, write_error): Mark these functions as "no-return".
2169
2170         build: avoid warning about ignored chown/fchown return value
2171         * bootstrap.conf (gnulib_modules): Add ignore-value.
2172         * gzip.c: Include "ignore-value.h".
2173         (copy_stat): Explicitly ignore chown and fchown failure
2174
2175         build: update gnulib submodule to latest
2176
2177 2009-11-20  Jim Meyering  <meyering@redhat.com>
2178
2179         build: unlzw.c: avoid warnings about unused macros
2180         * configure.ac: Turn off -Wunused-macros.
2181
2182         build: avoid warnings about unused macros
2183         * unzip.c (LOCTIM): Comment out unused macro.
2184         * deflate.c (EQUAL): Remove definition.  Use "0" at sole point of use.
2185
2186         build: util.c: avoid warnings about add_envopt
2187         * util.c (add_envopt): The parameter "env" was used for two conflicting
2188         purposes.  One use required a const char* parameter, while the other
2189         was used as an argument to free, which must not be "const".
2190         Rename the parameter and use a new local variable for the second role.
2191
2192         build: avoid many const-related warnings
2193         * gzip.c: Add "const" to many variables, to avoid compiler warnings.
2194         * util.c (add_envopt): Make 3rd parameter const
2195         (gzip_error): Make sole parameter const.
2196         * gzip.h: Update prototypes.
2197
2198         build: avoid warnings from -Wstrict-prototypes
2199         * gzip.c (main): Declare using a prototype.
2200         (progerror): Likewise.  And make parameter const.
2201
2202         build: use gnulib's fdopendir module
2203         * bootstrap.conf (gnulib_modules): Add fdopendir.
2204         * gzip.c (treat_dir): Don't depend on HAVE_FDOPENDIR.
2205         Gnulib now guarantees its availability.
2206         * configure.ac: Don't check for fdopendir here.
2207
2208         build: enable many warnings
2209         * configure.ac: Add support for --enable-gcc-warnings.
2210         * bootstrap.conf (gnulib_modules): Add manywarnings.
2211         * Makefile.am (AM_CFLAGS): Add (WARN_CFLAGS) # $(WERROR_CFLAGS)
2212
2213         maint: tweak formatting of bootstrap.conf
2214         * bootstrap.conf (gnulib_modules): Unindent list.
2215
2216         maint: cfg.mk: remove factored-out ftp host/dir definitions
2217         * cfg.mk (gnu_ftp_host-alpha, gnu_ftp_host-beta gnu_ftp_host-stable):
2218         (gnu_rel_host, url_dir_list): Remove definitions.  The defaults,
2219         now provided by maint.mk, are the same.
2220         * gnulib: Update for latest, including those maint.mk additions.
2221
2222         build: "make stable" emitted an invalid gnupload command
2223         * cfg.mk (gnu_ftp_host-stable): Rename from gnu_ftp_host-major.
2224         * README-release: Change another s/major/stable/.
2225
2226 2009-10-30  Jim Meyering  <meyering@redhat.com>
2227
2228         post-release administrivia
2229         * NEWS: Add header line for next release.
2230         * .prev-version: Record previous version.
2231         * cfg.mk (old_NEWS_hash): Auto-update.
2232
2233         version 1.3.14
2234         * NEWS: Record release date.
2235
2236         build: accommodate new syntax-check test
2237         * amiga/tailor.c (_expand_args): Change each of three uses of
2238         "exit(20)" to "exit(EXIT_FAILURE)".
2239         * sample/add.c: Include <stdlib.h>.
2240         (main): Use EXIT_FAILURE and EXIT_SUCCESS, not 1 and 0.
2241         * sample/sub.c (main): Likewise.
2242         * sample/zread.c (main): Likewise.
2243
2244         build: update gnulib submodule to latest
2245
2246         build: link with $(LIB_CLOCK_GETTIME)
2247         * Makefile.am (gzip_LDADD): Add $(LIB_CLOCK_GETTIME), now that
2248         utimens pulls in gettime.
2249         (FILES_TO_CHECK): Remove $(gzip_LDADD), now that it may contain -lrt.
2250
2251 2009-10-28  Jim Meyering  <meyering@redhat.com>
2252
2253         msdos: fix syntax in Makefile.djg
2254         * msdos/Makefile.djg (gzip): Change each of two leading 8-space
2255         sequences to a TAB.  Reported by Allan Mui.
2256
2257 2009-10-20  Jim Meyering  <meyering@redhat.com>
2258
2259         build: do not use AC_PREFIX_PROGRAM
2260         * configure.ac: Do not use "AC_PREFIX_PROGRAM(gzip)".
2261         It would induce behavior that is so surprising that it is probably
2262         universally considered to be buggy, these days.  Reported by Zube
2263         in http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/273
2264
2265 2009-10-10  Jim Meyering  <meyering@redhat.com>
2266
2267         gzip: add tests for today's bug fix
2268         * tests/trailing-nul: New file.  Test for today's fix.
2269         * Makefile.am (TESTS): Add new script.
2270         * NEWS (Bug fixes): Mention it.
2271
2272 2009-10-10  Daniel Barkalow  <barkalow@iabervon.org>
2273
2274         gzip: don't fail when there is exactly one trailing NUL byte
2275         * gzip.c (get_method): Require the second byte of magic only if
2276         the first byte was nonzero.
2277
2278 2009-10-09  Jim Meyering  <meyering@redhat.com>
2279
2280         build: enable automake color- and parallel-test options
2281         * configure.ac (AM_INIT_AUTOMAKE): Enable color-tests and parallel-tests.
2282
2283         zgrep: portability improvements; exercise "-f -"
2284         * zgrep.in: Adjust loop not to use seq; it's not portable enough.
2285         Fail if we don't find a free file descriptor.
2286         (exists): New function; Use it in place of less portable "test -e".
2287         Testing for existence of /dev/fd/$fd doesn't work on Solaris 10,
2288         since all 256 always exist (as char devices), but testing for
2289         /proc/$$/fd/$fd does work, so do that instead.
2290         * Makefile.am (TESTS): Add tests/zgrep-f.
2291         * tests/zgrep-f: New test; exercise this bug.
2292         * NEWS (Bug fixes): Mention it.
2293
2294 2009-10-09  Carl Worth  <cworth@cworth.org>
2295
2296         zgrep: handle "-f -" the same way that it works with grep
2297         Before this change, echo needle|zgrep -f - haystack.gz would not work.
2298         * zgrep.in: When the pattern comes from stdin, redirect it to a
2299         different file descriptor, since we're about to use stdin.
2300
2301 2009-10-09  Jim Meyering  <meyering@redhat.com>
2302
2303         zdiff would exit 2 (error) rather than 1 for differences
2304         * zdiff.in: Save and restore cmp's exit status around a case
2305         statement that would otherwise clobber its value.
2306         * NEWS (Bug fixes): Mention it.
2307         * tests/zdiff: New test; exercise both bugs.
2308         * tests/test-lib.sh: New file.  From coreutils.
2309         * Makefile.am (EXTRA_DIST): Add tests/test-lib.sh.
2310         (TESTS): Add tests/zdiff.
2311         (TESTS_ENVIRONMENT): Define.  From coreutils.
2312         (EXTRA_DIST): Append all $(TESTS).
2313
2314         zdiff: fix malfunction when operating on two gzip'd inputs
2315         zdiff would fail to print differences in two compressed inputs
2316         * zdiff.in: Don't let cmp output mix with echo'd gzip exit
2317         status values.  Report and fix from Jörg-Volker Peetz via
2318         <http://bugs.debian.org/434275>
2319         * NEWS (Bug fixes): Mention it.
2320
2321         build: update gnulib submodule to latest
2322
2323 2009-10-07  Jim Meyering  <meyering@redhat.com>
2324
2325         build: update gnulib submodule to latest
2326
2327 2009-10-06  Jim Meyering  <meyering@redhat.com>
2328
2329         maint: clarify web-doc-update instructions
2330         * README-release: sync a tiny change from coreutils.
2331
2332 2009-10-03  Jim Meyering  <meyering@redhat.com>
2333
2334         build: update gnulib submodule to latest
2335
2336         doc: use gnu-web-doc-update module
2337         * bootstrap.conf (gnulib_modules): Add it.
2338
2339 2009-10-02  Jim Meyering  <meyering@redhat.com>
2340
2341         doc: describe release procedure
2342         * README-release: New file.
2343
2344 2009-10-01  Jim Meyering  <meyering@redhat.com>
2345
2346         maint: make cfg.mk slightly more generic
2347         * cfg.mk (url_dir_list): Don't hard-code "coreutils".  Use $(PACKAGE).
2348
2349 2009-09-30  Jim Meyering  <meyering@redhat.com>
2350
2351         post-release administrivia
2352         * NEWS: Add header line for next release.
2353         * .prev-version: Record previous version.
2354         * cfg.mk (old_NEWS_hash): Auto-update.
2355
2356         version 1.3.13
2357         * NEWS: Record release date.
2358
2359         build: update gnulib submodule to latest
2360
2361         maint: update bootstrap script
2362         * bootstrap (with_gettext): Update from coreutils.
2363
2364         maint: pull in two release-related modules from gnulib
2365         * bootstrap.conf (gnulib_modules): Add announce-gen and gnupload.
2366
2367         build: use more gnulib modules for better POSIX compliance
2368         * bootstrap.conf (gnulib_modules): Add modules exposed via
2369         make CFLAGS=-DGNULIB_POSIXCHECK 2>&1 \
2370         |perl -lne '/.* use gnulib module (\S+).*/ and print $1' \
2371         |sort |uniq -c|sort -nr
2372         Add these: calloc close fclose fprintf-posix lstat malloc
2373         perror printf-posix realloc
2374
2375 2009-09-30  Karl Berry  <karl@freefriends.org>
2376
2377         doc: update to FDL 1.3, minor clean-up
2378         * NEWS, README, TODO: Update FDL s/1.2/1.3/.
2379
2380 2009-09-28  Karl Berry  <karl@freefriends.org>
2381
2382         doc: update gzip.texi
2383         * doc/gzip.texi: FDL 1.3+
2384         Consistently (de)capitalize section names.
2385         "User's" is not correct; seems best to simplify the title.
2386         Throw in some "GNU"'s.
2387         Make direntries be what we actually want.
2388         Detabify.
2389
2390 2009-09-26  Jim Meyering  <meyering@redhat.com>
2391
2392         maint: temporarily exempt failing syntax-check tests
2393         * cfg.mk (local-checks-to-skip): Add the list of currently-failing
2394         tests, to exempt them from "make syntax-check".
2395
2396         gzip: don't use an uninitialized file descriptor
2397         gzip interprets an argument of "-" as indicating stdin, but when
2398         "-" is not the first name on the command line, it doesn't work.
2399         * gzip.c (treat_stdin): Initialize "ifd".
2400         Patch and fine description by Lasse Collin in
2401         http://www.mail-archive.com/bug-gzip@gnu.org/msg00213.html
2402         * Makefile.am (check-local): Exercise the fix.  Based on the above.
2403         * NEWS (Bug fixes): Mention this.
2404
2405         maint: use a git submodule for gnulib
2406         * .gitmodules: New file, to track gnulib.
2407         * gnulib: New file, created by running this:
2408         git submodule add git://git.sv.gnu.org/gnulib.git gnulib
2409
2410         maint: update existing copyright year lists to include 2009
2411         * bootstrap.conf (gnulib_modules): Add update-copyright.
2412
2413         maint: include <config.h> first in many files
2414
2415         maint: avoid another "make syntax-check" failure
2416         * lib/Makefile.am (match.$(OBJEXT)): Use $(ASCPPPOST), not @ASCPPPOST@.
2417
2418         maint: remove RCS $Id$ variables and comments
2419
2420         maint: change spelling in comments: s/filesystem/file system/
2421
2422         maint: don't use "the the"
2423         * msdos/doturboc.bat: s/the the/the/.
2424
2425         maint: remove trailing blanks
2426
2427         maint: remove useless if-before-free tests
2428         * gzip.c (do_exit): Remove useless if-before-free tests.
2429
2430         maint: remove useless casts to avoid "make syntax-check" failures
2431         * gzip.c (do_exit): Remove anachronistic cast.
2432         * inflate.c (huft_free): Likewise.
2433         * util.c (add_envopt): Likewise.
2434         * vms/vms.c (vms_expand_args): Likewise.
2435
2436         maint: new file: .prev-version
2437         * .prev-version: New file, to record previous version number.
2438
2439 2009-09-06  Jim Meyering  <meyering@redhat.com>
2440
2441         build: avoid spurious warnings from clang
2442         * gzip.h (gzip_error): Declare with ATTRIBUTE_NORETURN.
2443
2444         maint: update build-from-scratch infrastructure
2445         * bootstrap: Modernize.
2446         * bootstrap.conf: Modernize.
2447         * cfg.mk: New file.
2448
2449 2009-08-18  Jim Meyering  <meyering@redhat.com>
2450
2451         inflate: avoid a leak on a error path
2452         * inflate.c (inflate_dynamic): Don't leak
2453
2454         maint: ignore a few generated files
2455         * lib/.gitignore: ignore more generated files.
2456
2457         tests: add a test for just-fixed bug
2458         * tests/hufts-segv.gz: New file, from bug report.
2459         * Makefile.am (EXTRA_DIST): Add tests/hufts-segv.gz.
2460         (check-local): Exercise the bug.
2461
2462         tests: don't misinterpret a failing test as successful
2463         * Makefile.am (check-local): Exit "1" upon failure, not 0.
2464
2465 2009-08-18  Thiemo Nagel  <thiemo.nagel@ph.tum.de>
2466
2467         avoid creating an undersized buffer for the hufts table
2468         A malformed input file can cause gzip to crash with a segmentation
2469         violation or hang in an endless loop.
2470         Reported in <http://bugs.debian.org/507263>.
2471         * NEWS (Bug fixes): Mention it.
2472
2473 2009-08-18  Jim Meyering  <meyering@redhat.com>
2474
2475         avoid silent data loss e.g., on NFS, due to unchecked close of stdout
2476         * gzip.c: Include "closein.h".
2477         (main): Use atexit (close_stdin);
2478         * bootstrap.conf (gnulib_modules): Add closein.
2479         Prompted by Mark Kidwell's report and patch in
2480         http://bugs.debian.org/538187
2481         * NEWS (Bug fixes): Mention it.
2482         * */.gitignore: Update.
2483
2484         build: require automake-1.11 and produce xz-compressed tarballs, too
2485         * configure.ac: Require automake-1.11.  Use the dist-xz option.
2486
2487         build: avoid non-srcdir build failure
2488         * Makefile.am (gzip.doc.gz): Use $(srcdir)/gzip.doc, not gzip.doc.
2489         Don't redirect directly to $@.  Use $(AM_V_GEN).
2490         (gzip.doc, .in): Don't redirect directly to $@.  Use $(AM_V_GEN).
2491         * NEWS: Add template header for upcoming release.
2492
2493         build: enable git-version-gen, automake silent rules, generate ChangeLog
2494         * configure.ac (AC_INIT): Use git-version-gen.
2495         Use AM_SILENT_RULES([yes]).
2496         (AM_INIT_AUTOMAKE): Drop gnits; conflicts with git-version-gen versions.
2497         * bootstrap.conf (gnulib_modules): Use getopt-gnu
2498         Ensure ChangeLog exists, for automake.
2499         rather than obsolete "getopt" module.
2500         Add gitlog-to-changelog.
2501         Add git-version-gen.
2502         Add gnu-make, gnumakefile and maintainer-makefile.
2503         * Makefile.am (dist-hook, gen-ChangeLog): New rules, to generate
2504         ChangeLog and insert it into the distribution tarball.
2505         (EXTRA_DIST): Add ChangeLog-2007.
2506
2507         maint: retire the last VC'd ChangeLog file
2508         * ChangeLog-2007: Rename from ChangeLog.
2509         From now on, the ChangeLog file will be generated automatically
2510         from commit logs.
2511
2512         maint: rename .cvsignore files to .gitignore
2513         * .gitignore: Renamed from .cvsignore.
2514         * doc/.gitignore: Likewise.
2515         * lib/.gitignore: Likewise.
2516         * m4/.gitignore: Likewise.