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