]> git.cworth.org Git - gzip/blob - ChangeLog
Avoid creating an undersized buffer for the hufts table.
[gzip] / ChangeLog
1 2007-04-13  Paul Eggert  <eggert@cs.ucla.edu>
2
3         * NEWS: Version 1.3.12 released.
4         * configure.ac (AC_INIT): Likewise.
5
6         * README: Update year in copyright notice.
7         * m4/shell.m4: Add copyright notice.
8
9         * bootstrap (gnulib_tool_option_extras): Put this back; it was
10         inadvertently omitted from gnulib.
11         (gnulib_tool_option): Use it.
12         * .cvsignore: Add *._bootmp*.
13         * lib/.cvsignore: Add stdlib.h, stdlib_.h, time.h, time_.h, unistd.h.
14         Remove alloca.c, alloca.h, alloca_.h, exit.h, getdelim.c, getdelim.h,
15         getline.c, getline.h, malloc.c, mbchar.c, mbchar.h, mbuiter.h, memchr.c,
16         regcomp.c, regex.c, regex.h, regex_internal.c, regex_internal.h,
17         regexec.c, rpmatch.c, stdint.h, stdint_.h, strcase.h, strcasecmp.c,
18         strncasecmp.c, strnlen1.c, strnlen1.h, timespec.h, wcwidth.h.
19         * m4/.cvsignore: Add stdlib_h.m4, time_h.m4.
20         Remove alloca.m4, codeset.m4, getdelim.m4, getline.m4,
21         longlong.m4, mbchar.m4, mbiter.m4, mbrtowc.m4, memchr.m4, regex.m4,
22         rpmatch.m4, ssize_t.m4, stdint.m4 strcase.m4, timespec.m4, ulonglong.m4,
23         wchar_t.m4, wcwidth.m4, wint_t.m4.
24
25 2007-03-29  Paul Eggert  <eggert@cs.ucla.edu>  (tiny change)
26
27         * znew.in (tmp): Use $TMPDIR as temp directory, if given.
28         Suggested by Juan Manuel Guerrero.
29
30 2007-03-19  Paul Eggert  <eggert@cs.ucla.edu>
31
32         * README-hacking: New file, renamed from README-cvs.
33         * README-cvs: Remove.
34         * bootstrap: Sync from today's gnulib.
35         * bootstrap.conf (gnulib_modules): Add 'time'.
36         * gzip.c: Don't include timespec.h; 'time' fixes time.h for that.
37         * zip.c: Likewise.
38         * gzip.c: Don't include time.h or sys/time.h; gzip.h now includes
39         time.h, which is now enough.
40         * gzip.h: Include <time.h>.
41
42 2007-03-14  Paul Eggert  <eggert@cs.ucla.edu>
43
44         * README (WARNING): Reword to avoid mention of no-longer-existing
45         section in INSTALL file.  Problem reported by Paul Townsend in
46         <http://lists.gnu.org/archive/html/bug-gzip/2007-03/msg00000.html>.
47
48 2007-02-11  Paul Eggert  <eggert@cs.ucla.edu>
49
50         * gzip.c (foreground): Initialize to zero.  This doesn't fix a bug
51         since C guarantees it's zero, but it's more consistent with the
52         rest of the code.  Problem reported by Mark Adler.
53
54 2007-02-08  Paul Eggert  <eggert@cs.ucla.edu>
55
56         * zdiff.in: Don't use '((' in a shell script, as it's not portable
57         to some ksh implementations, e.g., Solaris 10 ksh M-11/16/88i.
58         Problem reported by Nelson H. F. Beebe in
59         <http://lists.gnu.org/archive/html/bug-gzip/2007-02/msg00005.html>.
60
61 2007-02-05  Paul Eggert  <eggert@cs.ucla.edu>
62
63         * NEWS: Version 1.3.11 released.
64         * configure.ac (AC_INIT): Likewise.
65
66         * doc/gzip.texi: Convert Texinfo format into a more modern style.
67         Put in current output samples.
68
69         * .cvsignore: Add *.gz, gunzip, zcat, zcmp, zegrep, zfgrep.
70         * lib/.cvsignore: Add sys_time_.h, unistd_.h.
71         * m4/.cvsignore: Add gnulib-common.m4, sys_time_h.m4.
72
73         * gunzip.in, zcat.in, zcmp.in, zegrep.in, zfgrep.in: New files.
74         * Makefile.am (EXTRA_DIST): Add them.
75         (bin_SCRIPTS, MOSTLYCLEANFILES): Add gunzip, zcat, zcmp, zdgrep, zfgrep.
76         (.in): Use GZIP_BINDIR as the location of gzip binaries, if it is set.
77         (check-local): Use GZIP_BINDIR.
78         (install-exec-hook, remove-installed-links): Make 'uncompress' an
79         alias for gunzip.
80         * gzexe.1: At least one arg is required.  Don't give cat as an
81         example, since gzexe refuses to compress cat due to a bootstrapping
82         issue.  List more utilities in this category.
83         * gzexe.in, zdiff.in, zforce.in, zgrep.in, zless.in, zmore.in, znew.in:
84         Report our name in usage.
85         * gzexe.in: Don't compress bash.  Don't use rmdir, so it's
86         OK to compress rmdir.
87         * gzip.c: Now requires that you compile with -DGNU_STANDARD=0 to
88         get non GNU-standard behavior.  We now build with GNU-standard
89         behavior by default, so that programs do not depend on the names
90         of their executables.
91         * zdiff.in: Don't depend on the name of the executable, as per
92         GNU standard.  Instead, rely on an internal --__cmp option.
93         Support ' in options.  Check for failures in subsidiary gzip
94         invocations.
95         * zgrep.1: Clarify compression issues.
96         * zgrep.in: Don't assume POSIX-style case syntax.  Remove unused var
97         have_optarg.
98         * zless.1: zless sets LESSMETACHARS now.
99
100 2007-01-10  Paul Eggert  <eggert@cs.ucla.edu>
101
102         * m4/shell.m4 (AC_PROG_SHELL): Test that $(...) works.
103         Problem reported for SGI IRIX 6 by Nelson H. F. Beebe in
104         <http://lists.gnu.org/archive/html/bug-gzip/2007-01/msg00007.html>.
105
106 2007-01-04  Paul Eggert  <eggert@cs.ucla.edu>
107
108         * zdiff.in (cmp0): New var.
109         Rewrite test for /dev/fd/3 to detect bugs in Solaris 8
110         /bin/bash 2.03.  Problem reported by Nelson H. F. Beebe in
111         <http://lists.gnu.org/archive/html/bug-gzip/2007-01/msg00001.html>.
112         Avoid "for file; do", which doesn't work with Solaris 8 /bin/sh.
113
114 2007-01-03  Paul Eggert  <eggert@cs.ucla.edu>
115
116         * zdiff.in: Test /dev//fd/3, not /dev/fd/3, to work around a problem
117         with Tru64 4.0F ksh M-11/16/88f reported by Thomas Koutcher in
118         <http://lists.gnu.org/archive/html/bug-gzip/2007-01/msg00000.html>.
119
120 2006-12-30  Paul Eggert  <eggert@cs.ucla.edu>
121
122         * NEWS: Version 1.3.10 released.
123         * configure.ac (AC_INIT): Likewise.
124
125         * Makefile.am (check-local): Don't assume $(srcdir) is '.'.
126         (MAINTAINERCLEANFILES): Move gzip.doc.gz from here ...
127         (MOSTLYCLEANFILES): ... to here.
128
129 2006-12-29  Paul Eggert  <eggert@cs.ucla.edu>
130
131         * zless.in: Work around a bug in less 394 and earlier; it
132         mishandles $%=~ in file names.  Problem reported by
133         Sami Liedes in <http://bugs.debian.org/383358>.
134
135         * doc/gzip.texi: Swap order of dircategory entries, to pacify
136         Debian install-info 1.10.28.  This should fix
137         <http://bugs.debian.org/404048>.
138
139         * zgrep.in (version): Fix bug: $grep wasn't evaluated.
140
141         * zgrep.in: Rewrite to make the option processing more
142         compatible with GNU and POSIX grep.  Assume POSIX shell
143         for more stuff, since we're already assuming that.
144         * Makefile.am (check-local): Check zgrep -iV.
145
146 2006-12-26  Paul Eggert  <eggert@cs.ucla.edu>
147
148         Fix Debian bug 367673 <http://bugs.debian.org/367673> plus several
149         other bugs discovered in the neighborhood.
150         * NEWS: gzip -q now exits with status 2 (not 1) on SIGPIPE.
151         zgrep has many bugs fixed with argument handling, special characters,
152         and exit status.
153         * gzip.c (abort_gzip_signal): Implement gzip -q change.
154         * zgrep.in: Implement zgrep change.
155
156 2006-12-23  Paul Eggert  <eggert@cs.ucla.edu>
157
158         * NEWS: Fix bug reported by Martin Mares in
159         <http://bugs.debian.org/177942>.
160         * gzip.c (treat_stdin): Remove NO_STDIN_FSTAT and NO_PIPE_TIMESTAMP
161         stuff.  It didn't work (led to syntax errors) and was confusing.
162         Report an error if stdin cannot be statted even if !list && no_time.
163         Get stdin's size if it is regular.
164         (treat_file): Do not report an error with setuid, setgid,
165         sticky, or non-regular, non-directory files if to_stdout.
166         Allow 'force' to override the caution about sticky files.
167         Use the same form for time stamps that treat_stdin uses.
168
169         * zdiff.in: Fix typo that broke most usages.  Problem reported by
170         Jari Aalto in <http://bugs.debian.org/404114>.  While we're at it,
171         fix a bunch of other problems.  Handle "-" better.  Send
172         diagnostics to stderr, not stdout.  Use expr rather than echo |
173         sed, to handle special characters better.  Report a diagnostic in
174         the 1-arg case, if the argument doesn't end in .gz or the like,
175         rather than having incomprehensible behavior.  Do not require that
176         the inputs be regular files.  Avoid creating a temporary entirely,
177         if /dev/fd works.  If not, then resist denial-of-service attacks
178         better, by using mktemp.
179         * NEWS: Document this.
180         * Makefile.am (gzip.doc.gz): New rule.
181         (check-local): Depend on it, and test zdiff for Debian bug 404114.
182
183 2006-12-22  Paul Eggert  <eggert@cs.ucla.edu>
184
185         * zdiff.1: Mention that these programs currently understand only
186         formats that gzip does.  Problem reported by Jari Aalto in
187         <http://bugs.debian.org/404099>.
188
189 2006-12-20  Paul Eggert  <eggert@cs.ucla.edu>
190
191         * inflate.c (huft_build): Fix regression that caused gzip to
192         refuse to uncompress null input (all zero length codes).  Problem
193         reported by Yiorgos Adamopoulos.  This regression was caused by
194         the security patch installed 2006-11-20, which in turn came from
195         Debian, which in turn apparently came from Thomas Biege of SuSe.
196
197 2006-12-15  Paul Eggert  <eggert@cs.ucla.edu>
198
199         * NEWS, configure.ac (AC_INIT):
200         Version 1.3.9 released.
201
202         * Makefile.am (MOSTLYCLEANFILES): Add _match.i.
203         * configure.ac (for an assembler syntax supported by this package):
204         Remove _match.i.
205
206         * bootstrap (gnulib_tool_options_extras): New var.
207         (gnulib_tool_options): Use it.
208         * bootstrap.conf (gnulib_tool_options_extras): Avoid getline and
209         rpmatch.  gzip doesn't need them, since it doesn't ENABLE_NLS.
210
211 2006-12-13  Bruno Haible  <bruno@clisp.org>
212
213         * configure.ac: Use $CPPFLAGS everywhere $CPP is used, and use
214         $CPPFLAGS $CFLAGS everywhere $CC is used.
215         * lib/Makefile.am (match.$(OBJEXT)): Likewise.
216         * configure.ac: Test the exit code of the $CPP and $ASCPPPOST commands
217         separately.
218
219 2006-12-11  Paul Eggert  <eggert@cs.ucla.edu>
220
221         * configure.ac (ASCPPPOST): Simplify to use just 'sed'.
222         * lib/Makefile.am (match.$(OBJEXT)): Check for CPP failure.
223
224 2006-12-11  Bruno Haible  <bruno@clisp.org>
225
226         Cross-compilation support.
227         * configure.ac (ASCPP): Remove substituted variable.
228         (ASCPPPOST, ASCPPFLAGS): New substituted variables.
229         * lib/Makefile.am (ASCPP, LN_S): Remove unnecessary macro definitions.
230         (match.$(OBJEXT)): Use CPP, ASCPPFLAGS, ASCPPPOST instead of ASCPP.
231         * configure.ac: Add test for chown function.
232         * gzip.c (treat_file) [!HAVE_CHOWN]: Don't call chown.
233         * gzip.c: Include "timespec.h".  This doesn't fix any bugs, but
234         it is clearer.
235
236 2006-12-11  Paul Eggert  <eggert@cs.ucla.edu>
237
238         The SSIZE_MAX fix didn't work on NSK, so fix it in a more-reliable
239         (albeit more-complicated) way.  Problem reported by Matthew Woehlke.
240         * gzip.h (read_buffer): New decl.
241         * unlzw.c (unlzw): Use read_buffer rather than read.
242         * zip.c (file_read): Likewise.
243         * util.c (copy, fill_inbuf): Likewise.
244         (read_buffer, write_buffer): New functions.
245         (write_buf): Use write_buffer rather than write.
246
247         Undo the previous SSIZE_MAX-related change; it didn't work.
248         * gzip.c: Include <limits.h>.
249         * util.c: Likewise.
250         * gzip.h: Don't include <limits.h>.
251         (INBUFSIZ): Don't worry about SSIZE_MAX here.
252
253 2006-12-08  Paul Eggert  <eggert@cs.ucla.edu>
254
255         * NEWS, configure.ac (AC_INIT):
256         Version 1.3.8 released.
257
258         * gzexe.in (mktemp_status): New var, used to see whether
259         mktemp is a known command.  Use this instead of confounding
260         mktemp's existence with its success.
261
262         * zdiff.in: Remove first line containing ":".  This follows
263         up on the SEDCMD fix of 2006-12-01.
264         * zforce.in: Likewise.
265         * zgrep.in: Likewise.
266         * zless.in: Likewise.
267         * zmore.in: Likewise.
268         * znew.in: Likewise.
269
270         Fix problems in porting to NSK reported by Matthew Woehlke in
271         <http://lists.gnu.org/archive/html/bug-gzip/2006-12/msg00025.html> and
272         <http://lists.gnu.org/archive/html/bug-gzip/2006-12/msg00027.html>.
273         * gzip.h: Include <limits.h>, for SSIZE_MAX.
274         (INBUFSIZE): Don't make it any larger than SSIZE_MAX.
275         Problem reported by Matthew Woehlke in
276         <http://lists.gnu.org/archive/html/bug-gzip/2006-11/msg00013.html>.
277         * gzip.c: Don't include <limits.h>, as gzip.h now does this.
278         * util.c: Likewise.
279         * gzip.c (main): Set exiting_signal before installing signal handlers.
280         (install_signal_handlers): Don't set exiting_signal here.  This
281         fixes a C99ism.
282         * zip.c: Include timespec.h, for time_stamp type.
283
284 2006-12-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>  (tiny change)
285
286         * gzexe.in: Work around FreeBSD shell trap bug.
287         * gzip.1: Fix typo.
288         * doc/gzip.texi: Likewise.
289
290 2006-12-08  Paul Eggert  <eggert@cs.ucla.edu>
291
292         * .cvsignore: Add .deps, gzexe, gzip, zdiff, zforce, zgrep,
293         zless, zmore, znew.
294         * doc/.cvsignore: Add Makefile.
295         * lib/.cvsignore: Add .deps, Makefile, alloca.h, config.h, fcntl.h,
296         stamp-h1, stdint.h, sys.
297
298         * configure.ac (for assembler): Set ASFLAGS_config to
299         -Wa,--noexecstack if this seems advisable on this platform.
300         Problem reported by Mike Frysinger in
301         <http://lists.gnu.org/archive/html/bug-gzip/2006-12/msg00018.html>.
302         * lib/Makefile.am (match.$(OBJEXT)): Use ASFLAGS_config.
303
304 2006-12-07  Paul Eggert  <eggert@cs.ucla.edu>
305
306         * Makefile.am (install-exec-hook): Fix bug when installing
307         symbolic links as aliases.  Problem reported by Mike Frysinger.
308
309         * deflate.c (deflate_fast, deflate): Avoid core dump.  Problem
310         originally reported by Jochen Friedrich and trivial patch supplied
311         by Anthony Towns; see <http://bugs.debian.org/184057>.
312
313 2006-12-06  Paul Eggert  <eggert@cs.ucla.edu>
314
315         * NEWS, configure.ac (AC_INIT):
316         Version 1.3.7 released.
317
318 2006-12-06  Bruno Haible  <bruno@clisp.org>  (tiny change)
319         and Paul Eggert  <eggert@cs.ucla.edu>
320
321         Fix build failure on case-insensitive file systems.
322         * configure.ac: Use match_.s instead of _match.s.
323         * Makefile.am (MOSTLYCLEANFILES): Likewise.
324         * lib/Makefile.am (match.$(OBJEXT)): Likewise.
325         (MOSTLYCLEANFILES): Likewise.
326
327 2006-12-06  Paul Eggert  <eggert@cs.ucla.edu>
328
329         * NEWS: Document the fixes below.
330         * configure.ac (AC_CHECK_FUNCS_ONCE): Add siginterrupt.
331         * gzip.c (lstat) [!defined(HAVE_LSTAT) && !defined(lstat)]: Remove.
332         (SA_NOCLDSTOP, sigprocmask, sigset_t) [!defined SA_NOCLDSTOP]:
333         New macros.
334         (siginterrupt) [!defined SA_NOCLDSTOP && ! HAVE_SIGINTERRUPT]:
335         New macro.
336         (HAVE_WORKING_O_NOFOLLOW): Define to 0 if not defined.
337         (caught_signals, exiting_signal, remove_ofname_fd): New vars.
338         (remove_ofname): Remove; all uses changed to remove_ofname_fd.
339         (same_file, name_too_long): Remove.
340         (install_signal_handlers): New function.  It prefers sigaction,
341         which is more reliable in the presence of race conditions.
342         Catch SIGXCPU and SIGXFSZ, too.
343         (main): Use it instead of installing them by hand.
344         (treat_file): Check for read error when closing ifd.
345         (treat_file, create_outfile, remove_output_file):
346         Avoid race conditions with signals.
347         (create_outfile, check_ofname): Remove most of the gorp about
348         working around ENAMETOOLONG deficiencies.  It's obsolete now, and
349         anyway it had race conditions.  Just rely on O_EXCL and
350         ENAMETOOLONG.  The worst that can happen is that a file name will
351         be silently truncated on an obsolete machine, but no data will be lost.
352         (open_and_stat): Use HAVE_WORKING_O_NOFOLLOW rather than O_NOFOLLOW
353         to work around some O_NOFOLLOW bugs.  Otherwise, fall back on
354         lstat only if lstat is available, as symlinks don't exist otherwise.
355         (open_input_file): Use O_NONBLOCK and O_NOCTTY too, to avoid
356         hanging gzip on special files.
357         (abort_gzip_signal): If sigaction is not available, ignore
358         signals.  If we get the exiting signal, exit with ERROR status
359         rather than raising a signal.
360         * tailor.h (NO_ST_INO): Remove; no longer used now that same_file
361         is gone.
362
363 2006-12-05  Paul Eggert  <eggert@cs.ucla.edu>
364
365         Port to Tandem NSK/OSS, which lacks fchdir.  Problem reported by
366         Matthew Woehlke in
367         <http://lists.gnu.org/archive/html/bug-gzip/2006-11/msg00013.html>.
368         * bootstrap.conf (gnulib_modules): Remove openat, as it pulls in
369         fchdir.
370         * configure.ac: Check for fdopendir.
371         * gzip.c: Don't include openat.h; no longer needed.
372         (treat_dir) [!HAVE_FDOPENDIR]: Fall back on the old opendir method
373         since fdopendir is not available.
374
375 2006-12-04  Paul Eggert  <eggert@cs.ucla.edu>
376
377         * NEWS: Describe the following change briefly.
378         * bootstrap.conf (gnulib_modules): Remove stat-macros; no longer
379         needed.
380         * gzip.c: Don't include stat-macros.h; no longer needed.
381         (treat_file): Refuse to compress files that are setuid, or setgid,
382         as this can in theory lead to security holes.  Also, refuse to
383         compress files with the sticky bit set, on general principle.
384         (copy_stat): Don't copy the setuid, setgid, or sticky bits,
385         as (given the above change) they'll always be zero here.
386         Invoke chmod before chown, to close a race condition.
387
388         * .cvsignore: Add *.doc, build-aux.
389         * doc/.cvignore: New file.
390         * lib/.cvsignore: New file.
391         * m4/.cvsignore: New file.
392
393 2006-12-01  Paul Eggert  <eggert@cs.ucla.edu>
394
395         * doc/gzip.texi (Overview): Mention limits of gzip format's
396         time stamps.  Also, gzip doesn't always preserve time stamps.
397
398         * gzip.c (abort_gzip_signal): Don't call abort () as a "safeguard",
399         since it actually causes a core dump.  Problem reported by
400         Jakub Bogusz.
401
402         * NEWS: Describe gzexe changes noted below.
403         * Makefile.am (.in): Don't bother with SEDCMD.  This stuff isn't needed
404         any more (the hosts it caters to are long extinct), and was
405         questionable anyway since the code assumes the skip= line was line 2.
406         * configure.ac (AC_SYS_INTERPRETER, SEDCMD): Remove; no longer needed.
407
408         * gzexe.in: Sweep the code and fix some bugs.
409         My, what sharp teeth you have, gzexe!
410         The straw that broke this camel's back was Matthew Burgess's bug report
411         <http://lists.gnu.org/archive/html/bug-gzip/2006-11/msg00012.html>.
412
413         (IFS): Set it to the standard value, both here and in the
414         script gzexe generates.
415         Check for missing operand after parsing options, not before.
416         This fixes the case for "cpexe --".
417         Check for tail -n problem separately in gzexe and in the executable
418         it generates, in case it's a different 'tail'.
419         (trap): Remove $tmp only if $tmp is not the empty string.
420         Preserve exit status.
421         Don't use the nonstandard (and rarely available) "cpmod" utility.
422         Don't use "set -C"; it's no longer useful and it breaks things
423         in some cases.
424         (main loop): Handle file names beginning with "-".
425         Exit with status of failing program, not with 1.
426         Fix some bugs in printing diagnostics, and in quoting.
427         Require the skip= line to have at least one digit.
428         Use test -u and test -g rather than using the (less-reliable) ls.
429         Refuse to compress more programs, e.g., sh.
430         Use mktemp rather than tempfile.  Build a copy of
431         the compressed or uncompressed executable in the same
432         directory as the executable, as that's less likely to go wrong
433         if disk space is low.  Have the executable exit with status 127,
434         not 1, if the decompression process fails; this is more compatible
435         with meta-programs like nohup.  Have the executable
436         uncompress to a temp file with the same basename as the executable;
437         this is more likely to go right.  Fix a race condition where the
438         executable temporarily did not exist (in either old or new forms).
439         Check for race conditions better when mv fails.  Do not attempt
440         to use cp to do the real work, only to copy permissions to a temp
441         file, since we don't want to trash running executables.
442
443 2006-11-26  Paul Eggert  <eggert@cs.ucla.edu>
444
445         * inflate.c (inflate_dynamic, inflate): Don't send output to
446         stderr unless DEBUG is defined and 'verbose'.  Problem reported by
447         Santiago Vila.
448
449         * zgrep.in: If the file name contains newline, &, \, or |, escape
450         the character so that 'sed' doesn't mishandle it as a replacement.
451         Problem reported by Bdale Garbee.
452
453 2006-11-25  Paul Eggert  <eggert@cs.ucla.edu>
454
455         * gzip.1 (OPTIONS): ouput -> output.  Problem reported by Matt
456         Taggart.
457         * vms/gzip.hlp: Likewise.
458
459         * Makefile.am (FILES_TO_CHECK): New macro.
460         (check-local): Check only the files in FILES_TO_CHECK, since some
461         files under the working directory might be mutating as the test is
462         run, e.g., with "make check >log".  Problem reported by Jim
463         Meyering.
464
465 2006-11-20  Paul Eggert  <eggert@cs.ucla.edu>
466
467         * NEWS, configure.ac (AC_INIT):
468         Version 1.3.6 released.
469
470         * NEWS: Describe 1.3.6's changes.
471         * NEWS, README, README-alpha, TODO: Change from GPL to FDL.
472         * .cvsignore, README-cvs, bootstrap, bootstrap.conf: New files.
473         * doc/Makefile.am, lib/Makefile.am: New files.
474         * THANKS: Change own email address to cs.ucla.edu.  Add Sverre Jarp.
475         * TODO: Add new tasks to remove porting cruft and
476         all those buggy scripts.
477
478         * configure.ac: Renamed from configure.in.
479         (AC_PREREQ): Bump to 2.60.
480         (AC_INIT): Bump version to 1.3.6.
481         (AC_CONFIG_AUX_DIR): New.
482         (AC_CONFIG_HEADERS): Move config.h to lib.
483         Input is now lib/config.hin.
484         (AM_INIT_AUTOMAKE): Add gnits, dist-shar.
485         (AC_PROG_CC_STDC): New, replacing AC_PROG_CC.
486         (AM_PROG_CC_C_O, AC_PROG_RANLIB): New.
487         (AC_AIX, AC_GNU_SOURCE, AC_MINIX): Remove; gnulib does them now.
488         (gl_EARLY, gl_INIT): New.
489         match.c was moved to lib/match.c.
490         (AC_CHECK_HEADERS_ONCE): Replace AC_CHECK_HEADERS.  Don't check
491         for sys/utime.h or utime.h.
492         (AC_CHECK_FUNCS_ONCE): Replace AC_CHECK_FUNCS.  Check for fchmod
493         and fchown, not utime.
494         (AC_REPLACE_FUNCS): Remove; rpmatch is now done by gnulib.
495         (AC_CONFIG_FILES): Add doc/Makefile, lib/Makefile.
496
497         * bits.c: Use the more-usual form for copyright notices in source code.
498         * deflate.c: Likewise.
499         * gzip.c: Likewise.
500         * gzip.h: Likewise.
501         * inflate.c: Likewise.
502         * lzw.h: Likewise.
503         * revision.h: Likewise.
504         * tailor.h: Likewise.
505         * trees.c: Likewise.
506         * unpack.c: Likewise.
507         * unzip.c: Likewise.
508         * util.c: Likewise.
509         * crypt.c (dummy): Add decl so that pedantic compilers won't
510         complain about an empty file.
511         * gzip.c (license_msg): Use more-modern wording.
512         Include fcntl-safer.h, openat.h, stat-macros.h, stat-time.h.
513         Simply include <dirent.h> if !NO_DIR, removing a rats-nest of
514         #ifdefs.
515         Simply include <utimens.h> if !defined NO_UTIME, removing a
516         another rats-nest of #ifdefs.
517         (DIR_OPT, TIME_OPT): Remove.
518         (_D_EXACT_NAMLEN): Renamed from NAMLEN.  All uses changed.
519         (S_ISDIR, S_ISREG, O_BINARY, O_CREAT, O_EXCL, S_IRUSR, S_IWUSR):
520         Remove; gnulib now does this.
521         (RETSIGTYPE): Remove; Autoconf does this.
522         (program_name): Renamed from progname, for compatibility with gnulib.
523         All uses changed.
524         (time_stamp): Now struct timespec, not time_t.  All uses changd.
525         (remove_oftime): Now volatile.
526         (reset_times): Remove; now done by futimens.
527         (usage): Remove.
528         (try_help): New function.
529         (help, license): Don't output date as part of version.
530         A version number suffices.
531         (help): Redo help message to match style of coreutils etc.
532         (version): Don't bother printing compile-time configuration info
533         like STDC_HEADERS.
534         (main): Don't assume strlen (argv[0]) < INT_MAX (!).
535         On usage errors, suggest --help without outputting all the help.
536         (main, do_list): Remove unnecessary casts.
537         (treat_stdin, treat_file, get_method, copy_stat):
538         Support sub-second time stamp resolution.
539         (treat_file, copy_istat): Close some race conditions if files are
540         renamed as we read or write them.
541         (treat_file): Do not attempt to reset the access times of
542         directories that we read.
543         (open_and_stat, open_input_file): New functions.
544         (do_stat, get_istat): Remove; most of the contents went to these new
545         functions.
546         (make_ofname): Don't use WARN, as it affects exit status.
547         (get_method): When the original file name was truncated,
548         restore from its base name, not from its full name.
549         (do_list): Avoid undefined behavior with out-of-range time stamps.
550         ctime, for example, cannot be invoked on arbitrary time stamps safely,
551         since it might overrun an internal buffer.  Do not assume that
552         localtime succeeds.
553         (copy_stat): Do not remove input file; that's now the caller's
554         responsibility.  This avoids a problem if there is a write error
555         when the caller closes the output file.
556         (treat_dir): New arg FD, to avoid a race condition.  All uses changed.
557         (remove_output_file): New function.
558         (abort_gzip): Use it.
559         (abort_gzip_signal): New function, which is async-signal-safe.
560         Exit with the signal that we got.
561         * gzip.h (program_name, time_stamp, abort_gzip): Adjust decls to
562         match gzip.c changes.
563         * inflate.c (huft_build): Return 2 if null input.
564         * tailor.h (HAVE_UTIME): Do not define; gnulib does this now.
565         (OPEN): Use open_safer, not plain open.
566         * unlzh.c (NPT): Set to 1<<TBIT, not to the maximum of NT and NP.
567         (make_table): Report an error if 1<<tablebits < nextcode.
568         (read_pt_len): Report an error if 16 < c.
569         * unpack.c (read_tree): Report an error if the tree has too many
570         leaves while reading it.  Fix off-by-one error in final check.
571         * util.c: Include <xalloc.h>, for xalloc_die decl.
572         (gzip_base_name): Renamed from base_name, so we don't collide
573         with gnulib.  All uses changed.
574         (add_envopt): Use xstrdup instead of xmalloc+strcpy.
575         Use xcalloc rather than calloc + check.
576         (gzip_error): Renamed from error, so we don't collide with gnulib.
577         All uses changed.
578         (xalloc_die): New function.
579         (xmalloc): Remove; no longer needed.
580         * zip.c (zip): Watch for time stamp overflow; the old code
581         mishandled negative time stamps.
582
583         * gzexe.in: Add support for --help, --version, --.
584         Don't call basename or sed if we can avoid it.
585         * zdiff.in: Likewise.
586         * zforce.in: Likewise.
587         * zgrep.in: Likewise.
588         * zless.in: Likewise.
589         * zmore.in: Likewise.
590         * znew.in: Likewise.
591         * zdiff.in: Protect against file names beginning with "-".
592         * zmore.in: Likewise.
593         * zgrep.in: Use printf rather than echo, to avoid problems with
594         leading "-" and backslash.  Return status of subsidiary grep.
595         * zless.in: Add copyright notice.
596
597         * zless.1: We now pass "--" to LESSOPEN.
598         (BUGS): Mention that input file arguments are required.
599         Add copyright notice.
600
601         * COPYING: Update to current version.
602
603         * Makefile.am (SUBDIRS): New macro.
604         (AUTOMAKE_OPTIONS): Remove; now done in configure.ac.
605         (M4DIR, ACINCLUDE_INPUTS): Remove.
606         (EXTRA_DIST): Remove getopt.h.
607         (gzip_SOURCES): Remove getopt.c, getopt1.c, yesno.c.
608         (gzip_LDADD): Change from @LIBOBJS@ to lib/libgzip.a.
609         (AM_MAKEINFOFLAGS, info_TEXINFOS, gzip_TEXINFOS, ASCPP, LN_S):
610         (match.$(OBJEXT)): Move to subdirectory makefiles.
611         (.in): Substitute @VERSION@, too.
612         (check-local): New rule.
613         (MOSTLYCLEANFILES): Add _match.S.
614
615         * doc/gzip.texi: Renamed from gzip.texi.  Change to GNU FDL
616         without invariant sections or cover texts.  Don't put
617         version number or date into sample gzip -h output.
618         * lib/match.c: Renamed from match.c.  Add ia64 version
619         written by Sverre Jarp (HP Labs).
620
621         * INSTALL: Remove from CVS; now created automatically by
622         the bootstrap script.
623         * Makefile.in: Likewise.
624         * aclocal.m4: Likewise.
625         * config.h.in: Likewise.
626         * configure: Likewise.
627         * depcomp: Likewise.
628         * fdl.texi: Likewise.
629         * getopt.c: Likewise.
630         * getopt.h: Likewise.
631         * getopt1.c: Likewise.
632         * gzip.doc: Likewise.
633         * gzip.info: Likewise.
634         * install-sh: Likewise.
635         * mdate-sh: Likewise.
636         * missing: Likewise.
637         * mkinstalldirs: Likewise.
638         * rpmatch.c: Likewise.
639         * stamp-vti: Likewise.
640         * texinfo.tex: Likewise.
641         * version.texi: Likewise.
642         * yesno.c: Likewise.
643
644 2002-09-30  Paul Eggert  <eggert@twinsun.com>
645
646         * NEWS, README, revision.h, configure.in (AM_INIT_AUTOMAKE):
647         Revision 1.3.5, dated today.
648
649         * util.c (fprint_off): Fix bug in printing values greater than
650         10 * 2**32 bytes.  Bug reported by Bryan Andersen.
651
652         * Makefile.am (match.$(OBJEXT)): Use .S as extension for $(ASCPP),
653         to keep gcc happy.
654         * configure.in: Likewise.
655         Upgrade assembly-language checking for Autoconf 2.54, using cache vars.
656         (AC_PROG_CPP, AC_OBJEXT): Add.
657
658         * match.c: Accept __i386 and __i386__ as synonyms for i386.
659         Bug reported by "fork __" <bouloumag@hotmail.com>.
660
661 2002-09-29  Paul Eggert  <eggert@twinsun.com>
662
663         * gzip.texi (Overview): Suggest how to use gunzip on zip files.
664
665         * zless.1, zless.in: Use LESSOPEN, not PAGER.
666         Suggested by <antos@MAST.queensu.ca>.
667
668 2002-09-28  Paul Eggert  <eggert@twinsun.com>
669
670         * zforce.in: Use shell pattern matching instead of 'expr', which
671         mishandles names like "+".  Remove old check for 14-byte file
672         names on hosts with broken "mv" implementations, as such systems
673         aren't in use any more and it's better nowadays to support file
674         names longer than 14 bytes.  Rely on "mv"'s error-reporting.
675         This fixes a portability bug reported by Ralf Neubauer, along
676         with some other bugs.
677
678         Remove dangling output symlinks properly.
679         Bug reported by Kalle Olavi Niemitalo.
680         * gzip.c (lstat): New macro, for platforms lacking lstat.
681         (do_stat): Use it.
682         (name_too_long, check_ofname): Use lstat instead of stat.
683
684 2002-09-27  Paul Eggert  <eggert@twinsun.com>
685
686         * zforce.in: Use "gzip -lv", not "gzip -v".  Patch by Ralf
687         Neubauer.
688
689         * configure.in (ASCPP): Don't use test -a, as POSIX says it's
690         not portable.
691         * znew.in: Likewise.
692         * zmore.in: Likewise.  Similarly, don't use test -o, or test -t
693         with no operand.
694
695         * gzexe.in (PATH): Set to same as other programs.
696         Don't assume "tail +22" works; POSIX removed this.
697         Check against compressing "tail".
698         Check against "skip=" line with no integer.
699         * zgrep.in: Exit with status 2 if trouble, for consistency with grep.
700
701         * gzip.c (main): Avoid core dump in diagnostic message if
702         incorrect suffix is given.
703
704 2002-09-26  Paul Eggert  <eggert@twinsun.com>
705
706         * zdiff.in: Use "trap -" instead of "trap".  Patch by Nicolas Boullis.
707         Use names, not numbers, for signals.  Patch by Andrew Stribblehill.
708
709         * NEWS, README, revision.h, configure.in (AM_INIT_AUTOMAKE):
710         Revision 1.3.4, dated today.
711
712         * README-alpha: Upgrade to Autoconf 2.54 and Automake 1.7.
713         * configure.in (AC_PREREQ): Move to start, and increase to 2.54.
714         (AC_INIT, AM_INIT_AUTOMAKE, AC_CONFIG_SRCDIR, AC_CONFIG_FILES,
715         AC_OUTPUT): Use modern style.
716         (AC_OBJEXT, AC_EXEEXT): Remove; obsolete.
717         (AC_GNU_SOURCE): Add.
718         (AC_HEADER_STDC): Renamed from AC_STDC_HEADERS.
719         (AC_CHECK_HEADERS): Remove stdlib.h, string.h, unistd.h; now done
720         by Autoconf.
721         (AC_SUBST): Remove CFLAGS; now done by Autoconf.
722
723         * gzip.texi: Use the GNU FDL for distribution terms, following the
724         recipe in the Texinfo manual.  Use Automake-generated variables
725         for date and version.
726         * fdl.texi, mdate-sh: New files.
727         * Makefile.am (AM_MAKEINFOFLAGS): Add --no-split.
728         (gzip_TEXINFOS): New macro.
729
730         * tailor.h (NO_DIR): Define to 1, not the empty string.
731         * gzip.c (NO_DIR): Define to 0 if not defined.  All uses changed.
732         (usage): Don't put '#if' inside printf, as the C standard says
733         that it is not portable if printf is a macro.
734
735         Don't lose output when decompressing truncated input.
736         Bug reported by Nadav Har'El.
737         * inflate.c (GETBYTE): New macro.
738         (NEXTBYTE): Use it.
739         (inflate_dynamic, inflate_block): Add a local variable w, needed
740         by GETBYTE.
741
742 2002-03-08  Paul Eggert  <eggert@twinsun.com>
743
744         * NEWS, README, revision.h, gzip.texi,
745         configure.in (AM_INIT_AUTOMAKE): Revision 1.3.3, dated today.
746
747         * README-alpha: Now using latest stable GNU tools.
748         Using the latest tools allows gzip to build correctly on hosts
749         conforming to POSIX 1003.1-2001.
750
751         * configure.in (match): Use AC_LIBOBJ; Autoconf 2.53 requires it.
752         (LIBOBJS): No longer need to subst, since AC_LIBOBJ does it.
753         (AC_PREREQ): Bump to 2.53.
754
755         * Makefile.am (install-exec-hook, remove-installed-links):
756         Work even when configured with --program-transform-name.
757
758         * gzip.c (license_msg): Update copyright.
759         (z_len): Now of type size_t.
760
761 2001-11-03  Paul Eggert  <eggert@twinsun.com>
762
763         * NEWS, README, revision.h, gzip.texi, configure.in (AM_INIT_AUTOMAKE):
764         Revision 1.3.2, dated today.
765
766         * Makefile.am (LN_S): New macro.
767         (install-exec-hook): Depend on remove-installed-links.
768         Affect $(DESTDIR)$(bindir), not just $(bindir).
769         (uninstall-local, remove-installed-links): New rules.
770         * README-alpha: This release built with autoconf 2.52f.
771         * TODO: Add rsync patch.
772         * configure.in: Add AC_PREREQ(2.52) and AC_PROG_LN_S.
773         * gzip.1, zmore.1: Fix troff glitches, using Eric S. Raymond's
774         suggestions for inspiration.
775         * m4/shell.m4(AC_PROG_SHELL): Add commentary and cleanup.
776
777         * gzip.texi, gzip.1: Add pointers to RFCs 1951 and 1952.
778         Mention that gzip --list reports file sizes modulo 2^32.
779         * gzip.1: Remove incorrect report of 2 GB bug.  Add copyright notice.
780
781 2001-09-30  Paul Eggert  <eggert@twinsun.com>
782
783         * NEWS, README, revision.h, gzip.texi, configure.in (AM_INIT_AUTOMAKE):
784         Revision 1.3.1, dated today.
785
786         * INSTALL, getopt.c, getopt.h, getopt1.c, install-sh, missing,
787           mkinstalldirs, texinfo.tex:
788         Sync with latest version in other packages.
789
790         * acinclude.m4, config.guess, config.sub: Remove.
791         * depcomp, rpmatch.c, yesno.c: New files.
792
793         * ChangeLog, README, NEWS, TODO, configure.in, zgrep.in, zmore.in:
794         Add copyright notice.
795
796         * Makefile.am (ACLOCAL_AMFLAGS): New macro.
797         (ACINCLUDE_INPUTS): Remove all but shell.m4.
798         ($(srcdir)/acinclude.m4): Remove.
799         (gzip_sources): Add yesno.c.
800
801         * TODO: Add i18n.
802
803         * configure.in (AC_CANONICAL_HOST): Remove.
804         (AC_AIX, AC_MINIX): Move earlier.
805         (AC_REPLACE_FUNCS): Add rpmatch.
806
807         * gzip.c (main):
808         Report error if -b operand is not a nonnegative integer.
809         (treat_file): Don't assume tab width is 8, or that characters are
810         one column wide.
811         (make_ofname): Use WARN to warn about unchanged files.
812         (get_method): "get newer version of gzip" -> "not supported"
813         (check_ofname): Use yesno instead of checking for 'y' ourselves.
814         (treat_file): Do not assume link count fits in int.
815
816         * gzip.h (yesno): New decl.
817
818         * util.c (display_ratio): Use floating point to compute ratio:
819         this avoids problems with integer overflow.
820
821         * zgrep.in: Add support for --, -H, -h, -L, -l, -C, -d, -m and
822         their long equivalents.  Warn that -r and -d are not supported.
823
824         * zmore.in:
825         Check that file is readable before attempting to decompress it.
826
827 2000-10-09  Paul Eggert  <eggert@twinsun.com>
828
829         * configure.in (AC_CHECK_FUNCS): Add lstat.
830
831 2000-07-20  Paul Eggert  <eggert@twinsun.com>
832
833         Use a POSIX-compliant shell instead of /bin/sh.
834         Idea suggested by Albert Chin-A-Young <china@thewrittenword.com>.
835
836         * m4/shell.m4: New file.
837         * configure.in (AC_PROG_SHELL): Add it.
838         * Makefile.am (ACINCLUDE_INPUTS): Add $(M4DIR)/shell.m4.
839         (.in): Replace /bin/sh with $(SHELL).
840
841 2000-04-17  Bruno Haible  <haible@clisp.cons.org>
842
843         * Makefile.am (install-exec-hook): If hard links fail, try symlinks.
844
845 2000-04-02  Jim Meyering  <meyering@ascend.com>
846
847         * Makefile.am (install-exec-hook): Remove link targets before
848         installing.
849
850 2000-01-02  Albert Chin-A-Young  <china@thewrittenword.com>
851
852         * gzip.texi: Add direntry.
853
854 1999-12-21  Paul Eggert  <eggert@twinsun.com>
855
856         * NEWS, README, revision.h, gzip.texi: Revision 1.3, dated today.
857         * gzip.c (license_msg, usage, version, help, license):
858         Adjust to current GNU coding standards.
859         (total_in, total_out): Remove unnecessary initialization.
860         * zip.c (file_read): Report read errors.
861         * util.c (fill_inbuf): Likewise.
862         * gzip.c (main): Don't assume EOF == -1.
863         * unlzw.c (unlzw): Likewise.
864         * util.c (copy, fill_inbuf): Likewise.
865
866 1999-11-18  Paul Eggert  <eggert@twinsun.com>
867
868         * m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS):
869         Work around a bug in the QNX shell, which doesn't
870         propagate exit status of failed commands inside shell assignments.
871
872 1999-10-07  Paul Eggert  <eggert@twinsun.com>
873
874         * NEWS, README, revision.h, gzip.texi:
875         Revision 1.2.4294967306 dated today.  This is the successor to
876         revision 1.2.4.4294967305; automake requires the new (shorter) number.
877
878         Convert to automake.
879
880         * Makefile.am, gunzip.1, zcat.1, zcmp.1, AUTHORS: New files.
881
882         * revision.h (VERSION): Remove; moved to config.h.
883
884         * configure.in (AM_INIT_AUTOMAKE, AM_CONFIG_HEADER,
885         AC_CANONICAL_HOST, AC_OBJEXT): Add.
886         (AC_PROG_CPP): Remove.
887         (AC_SYS_LARGEFILE): Add, replacing older inline code.
888         (ASCPP): Use $OBJEXT.
889         (LIBOBJS): Add match.o if needed.
890         (AC_PROG_INSTALL): Remove.
891         (AC_EXT, AC_C_CONST): Add.
892         (AC_CHECK_HEADERS): Add, replacing lots of AC_HEADER_CHECKs.
893         All instances of defined(NO_TIME_H) changed to !defined(HAVE_TIME_H),
894         etc.
895         (AC_CHECK_FUNCS): Add utime.
896         (SEDCMD): Use $interpval, not $ac_cv_sys_interpreter.
897         (AC_PREFIX_PROGRAM): Add, replacing AC_PREFIX.
898         (ZCAT, G): Remove.
899         (LIBOBJS): Add.
900         (OBJA): Remove; LIBOBJS now does this.
901
902         * bits.c, gzip.c, deflate.c, inflate.c, lzw.c, trees.c, unlzh.c,
903         unlzw.c, unpack.c, unzip.c, util.c, zip.c: Include <config.h>
904         first; this is needed for proper large-file support, given the new
905         way of configuring large files.
906
907         * gzip.c: Include <sys/types.h>; Ultrix needs this.
908         (TIME_OPT): Use STRUCT_UTIMBUF instead of empty string.
909         (help): Add bug-report address.
910         (do_stat): Depend on HAVE_LSTAT, not S_IFLNK, S_ISLNK, and NO_SYMLINK.
911
912 1999-06-25  Paul Eggert  <eggert@twinsun.com>
913
914         * inflate.c (huft_build):
915         Set n to length of v, to detect improper tables.
916         Don't accidentally grow j past z.
917
918 1999-06-24  Paul Eggert  <eggert@twinsun.com>
919
920         * Makefile.in (check): Update texinfo.tex size.
921
922         * configure.in (ASMV):
923         Define with AC_DEFINE; do not manipulate DEFS directly,
924         as this doesn't work with recent autoconf versions.
925
926 1999-02-06  Paul Eggert  <eggert@twinsun.com>
927
928         * NEWS, README, revision.h, gzip.texi: Revision 1.2.4.4294967305,
929         dated today.  This merges the changes from gzip 1.2.4a, which fix
930         some typographical errors in the documentation and update the
931         bug-reporting address.
932
933 1999-01-27  Paul Eggert  <eggert@twinsun.com>
934
935         * NEWS, README, revision.h (VERSION, REVDATE):
936         Revision 1.2.4.4294967304, dated today.
937
938         Port to autoconf 2.13.
939
940         * Makefile.in (next, next-fat, coherent):
941         Update dirent headers to match Autoconf 2.13.
942         * configure.in (AC_RETSIGTYP): Remove; superseded by AC_TYPE_SIGNAL.
943         (AC_DYNIX_SEQ, AC_XENIX_DIR, AC_DIR_HEADER): Remove; superseded by
944         AC_HEADER_DIRENT.
945         * tailor.h (HAVE_DIRENT_H, HAVE_SYS_DIR_H):
946         Define instad of DIRENT, SYSDIR.
947         * gzip.c (NAMLEN): Renamed from NLENGTH. Depend on Autoconf 2.13 names
948         HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H
949         instead of the oldfashioned names DIRENT, SYSDIR, SYSNDIR, NDIR.
950         (CLOSEDIR): New macro.
951         (progerror): New function.
952         (treat_stdin, treat_file, creat_outfile, get_istat, check_ofname,
953         treat_dir): Use it, for brevity.
954         (treat_dir): Report any I/O errors when reading directories.
955
956         * COPYING, INSTALL, doc/texinfo.tex, install-sh:
957         Update to latest public versions.
958
959 1998-11-18  Paul Eggert  <eggert@twinsun.com>
960
961         * NEWS, README, revision.h (VERSION, REVDATE):
962         Revision 1.2.4.4294967303, dated today.
963
964         * gzip.c (get_method): Don't complain about trailing zeros at
965         the end of a gzipped file, as they're commonly appended to fill
966         out a block (e.g. by GNU tar).
967
968         * configure.in (CPPFLAGS, LDFLAGS, LIBS): Add large-file support
969         for HP-UX 10.20 and later.
970
971         * getopt.c, getopt.h, texinfo.tex: Sync with latest version at gnu.org.
972         * getopt1.c: New file.
973         * Makefile.in (SRCS): Add getopt1.c.
974         (OBJS): Add getopt1$O.
975         (getopt1$O): New dependency.
976         (check): Adjust desired size of compressed texinfo.tex to 55637,
977         to reflect the 1998-11-13 edition of texinfo.tex.
978
979         * gpl.texinfo: Remove; its addresses were out of date and
980         these days the GPL isn't reprinted in manuals anyway.
981         * gzip.texi: Remove reference to gpl.texinfo.
982         * Makefile.in (GENFILES): Remove gpl.texinfo.
983
984 1998-11-13  Paul Eggert  <eggert@twinsun.com>
985
986         * NEWS, README, revision.h (VERSION, REVDATE):
987         Revision 1.2.4.4294967302, dated today.
988
989         * gzip.c (input_eof): New function.
990         (treat_stdin, treat_file): Use it to fix premature detection of EOF
991         bug when a gzipped file concatenation boundary is at a multiple of
992         INBUFSIZ.
993
994         * Makefile.in (installman): Fix bug when installing from subdirectory.
995         ($(srcdir)/gzip.info): Renamed from gzip.info.
996         ($(srcdir)/gzip.info, realclean): Do not split gzip.info.
997
998 1998-10-26  Paul Eggert  <eggert@twinsun.com>
999
1000         * NEWS, README, revision.h (VERSION, REVDATE):
1001         Revision 1.2.4.4294967301, dated today.
1002
1003         * TODO: Update bug reporting address.
1004
1005         * Makefile.in (datadir, libdir): Remove unused macros.
1006         (mandir): Let configure set it.
1007         (manextdir): New macro.
1008         (alldirs): Remove datadir, libdir; add manextdir.
1009         (TEXI2HTML): New macro.
1010         (installman, uninstall): Install into manextdir, not mandir.
1011         (install-strip): New rule.
1012         (installdirs): No need to build $(prefix)/man separately,
1013         as it's now in alldirs.
1014         (match$O): Compile with $(CFLAGS).
1015         (gzip_1.html): New rule.
1016
1017         * gzip.c (get_istat): Remove lint by initializing z_suffix_errno.
1018         (check_ofname): Do not assume unsigned char.
1019
1020         * util.c (strlwr): Don't assume char is unsigned.
1021         (warning): Renamed from `warn'.
1022
1023         * gzip.h (tolow): Use tolower instead of relying on 'A'-'a'.
1024         (warning): Renamed from warn.
1025
1026         * trees.c (warning): Renamed from warn.
1027
1028 1998-10-14  Paul Eggert  <eggert@twinsun.com>
1029
1030         Merge patches from Debian.
1031
1032         * NEWS, README, revision.h (VERSION, REVDATE):
1033         Revision 1.2.4.4294967300, dated today.
1034
1035         * README, algorithm.doc, gzip.texi: Update maintainer address.
1036
1037         * gzexe.in, zdiff.in, znew.in:
1038         Close security hole portably, using `set -C'.
1039
1040         * zgrep.in: Add -A, -B.
1041
1042         * gzexe.in: Use `gzip', not full path, to run gzip.
1043
1044         * zdiff.in: Report proper exit status.
1045
1046         * gzip.h (base_name): Renamed from basename.  All uses changed.
1047
1048         * gzip.c (z_suffix): Now char *, so that there's no limit to length.
1049         All uses change.
1050         (main): If --quiet, abort gzip when SIGPIPE received.
1051         (get_suffix): Don't assume z_suffix's address is a constant.
1052         (get_istat): Likewise.
1053         Check for buffer overflow.
1054         Preserve errno correctly.
1055         (make_ofname): Check for buffer overflow.
1056
1057         * util.c (fill_inbuf): Flush window before reporting read error.
1058
1059         * inflate.c (inflate_dynamic): Don't dump core if tl == NULL.
1060
1061         * Makefile.in (GENFILES): Add zless.in.
1062         (SCRIPTS): Add zless.
1063         (default): Build all programs, not just gzip.
1064         (all): Add zless.
1065         (installbin): Install zegrep, zfgrep.
1066         (installman): Install zless man page.
1067         (install_compress): Don't install compress.
1068         (zless): New rule.
1069
1070 1998-09-16  Paul Eggert  <eggert@twinsun.com>
1071
1072         * NEWS, README, revision.h: Bump version number to 1.2.4.4294967299.
1073
1074         * tailor.h (UNLINK_READONLY_BUG): New macro.
1075         * gzip.h (unlink): New decl.
1076         * util.c (xunlink): New function.
1077         * gzip.c
1078         (treat_file, create_outfile, check_ofname, copy_stat, abort_gzip):
1079         Use xunlink rather than unlink.
1080         Do not chmod the file; xunlink will do that if need be.
1081
1082 1998-05-21  Paul Eggert  <eggert@twinsun.com>
1083
1084         * NEWS, README, revision.h: Bump version number to 1.2.4.4294967298.
1085         * Makefile.in (prefix): Set from @prefix@.
1086         (distclean): Remove config.cache.
1087
1088 1998-01-15  Paul Eggert  <eggert@twinsun.com>
1089
1090         * NEWS, README, revision.h:
1091         Bump version number to indicate large-file support.
1092
1093 1997-10-08  Paul Eggert  <eggert@twinsun.com>
1094
1095         * gzip.c (CHAR_BIT): Define if <limits.h> doesn't.
1096         (OFF_T_MIN, OFF_T_MAX): New macros.
1097         (do_list): Revert to fixed format, but this time don't assume
1098         that 9 digits suffice; use a width taken from the maximum value
1099         that off_t can represent.
1100         (off_t): Do not typedef; autoconf handles this now.
1101         * gzip.c, util.c (<limits.h>): Include if HAVE_LIMITS_H.
1102         * gzip.h, util.c (fprint_off): Now takes int width argument.
1103         * configure.in (AC_HAVE_HEADERS): Check for limits.h.
1104         (AC_TYPE_OFF_T): Use this instead of grepping sys/types.h for off_t.
1105         (AC_TYPE_SIZE_T): Use this instead of obsolescent AC_SIZE_T.
1106         * tailor.h (NO_OFF_T): Remove.
1107         (off_t): Define this instead.
1108
1109 1997-10-03  Paul Eggert  <eggert@twinsun.com>
1110
1111         * Makefile.in, bits.c, configure.in, deflate.c, gzip.c, gzip.h,
1112         inflate.c, trees.c, unlzw.c, unpack.c, unzip.c, util.c, zip.c:
1113         Adjust to Solaris 2.6, which has large files but small off_t by default.
1114         * gzip.c: Output more reasonable message if input file is too large.
1115         * gzip.c, util.c: Propagate errno from point of error to `perror'.
1116         * unzip.c: Allow uncompressing files larger than 4 gigabytes.
1117         http://www.gzip.org/4g.patch (1996-07-21)
1118
1119 Wed Aug 18 09:34:23 1993  Jean-loup Gailly  (jloup@chorus.fr)
1120
1121         * version 1.2.4
1122         By default, do not restore file name and timestamp from those saved
1123           inside the .gz file (behave as 'compress'). Added the --name option
1124           to force name and timestamp restoration.
1125         Accept - as synonym for stdin.
1126         Use manlinks=so or ln to support either hard links or .so in man pages
1127         Accept foo.gz~ in zdiff.
1128         Added support for Windows NT
1129         Handle ENAMETOOLONG for strict Posix systems
1130         Use --recursive instead of --recurse to comply with Webster and
1131           the GNU stdandard.
1132         Allow installation of shell scripts with a g prefix: make G=g install
1133         Install by default zcat as gzcat if gzcat already exists in path.
1134         Let zmore behave as more when invoked without parameters (give help)
1135         Let gzip --list reject files not in gzip format even with --force.
1136         Don't complain about non gzip files for options -rt or -rl.
1137         Added advice in INSTALL for several systems.
1138         Added makefile entries for NeXTstep 3.1 (if configure fails)
1139         Avoid problem with memcpy on Pyramid (gave crc error on some files)
1140         Support the -r option when compiled with Borland C++ on msdos.
1141         Force lower case file names only for FAT file systems (not HPFS)
1142         Rewrite one expression in inflate.c to avoid cc bug on Solaris x86.
1143         In the msdos makefiles, get match.asm from the msdos subdirectory.
1144         Catch SIGTERM and SIGHUP only if they are not ignored.
1145         getopt.c: on Amiga, "#if !defined(const)" does not compile.
1146         Use register parameters on Amiga.
1147         Do not force names to lower case on Amiga.
1148         Fix support of Atari TOS (Makefile.st and tailor.h)
1149         In unlzw.c, do not suggest using zcat if zcat already used.
1150         In INSTALL, suggest using bsdinst for HPUX.
1151         Document Turbo C++ 1.0 bug in INSTALL.
1152         Improved the documentation relative to the --no-name option.
1153         Avoid signed/unsigned warnings in several files.
1154         Added pointer to jka-compr19.el in README.
1155         Added pointer to OS/2 executables in README.
1156         Added --block-compress in tar -z example (gzip.1 and gzip.texi).
1157         Don't keep rcsid in executable (avoid compilation warnings).
1158         Check also the correctness of the first byte of an .Z file.
1159         Return non zero status for an invalid option.
1160         Remove "NEWFILES" from os2/gzip.def for Borland C++ on OS/2.
1161         Remove "time stamp restored" message (just obey the -N request).
1162
1163 Thu Jun 24 10:27:57 1993  Jean-loup Gailly  (jloup@chorus.fr)
1164
1165         * version 1.2.3
1166         Don't display the output name when decompressing except with --verbose.
1167         Remove usage of alloca in getopt.c and all makefiles.
1168         Use ASCPP instead of CPP to avoid breaking AC_HEADER_CHECK on RiscOS.
1169         Added the zfile shell script in subdirectory sample.
1170         Moved the list of compiler bugs from README to INSTALL.
1171         Added vms/Readme.vms.
1172         Fix DIST_BUFSIZE check in unlzh.c for 16 bit machines.
1173         Fix REGSIGTYP macro in configure.in.
1174         Use 'define' instead of == in vms/gzip.hlp.
1175         Avoid warnings in unlzh.c
1176         Allow separate installation of binaries and man pages.
1177         Simplified handling of file names with spaces in zgrep and znew.
1178         Fix dependencies and remove rule for trees.c in amiga/Makefile.sasc
1179         Add missing quote in gzexe.
1180
1181 Thu Jun 17 13:47:05 1993  Jean-loup Gailly  (jloup@chorus.fr)
1182
1183         * version 1.2.2
1184         Fix a compilation error in gzip.c on Sun with cc (worked with gcc).
1185
1186 Wed Jun 16 11:20:27 1993  Jean-loup Gailly  (jloup@chorus.fr)
1187
1188         * version 1.2.1
1189          Let zmore act as more if the data is not gzipped.
1190          By default, display output name only when name was actually truncated.
1191          Use absolute path names in gzexe'd programs for better security.
1192          In gzexe, use chmod 700 instead of 755 and don't gzexe tail,rm,etc...
1193          Update vms/gzip.hlp.
1194          Added a note about the fast options (-1 to -3) in algorithm.doc.
1195          Improved man page for zgrep.
1196          Minor fixes to gzip.texi.
1197          Always set LC_ALL and LANG in configure (for tr on HPUX)
1198
1199 Mon Jun 14 10:03:24 1993  Jean-loup Gailly  (jloup@chorus.fr)
1200
1201         * version 1.2
1202          Added the --list option to display the file characteristics.
1203          Added the --no-name option: do not save or restore original filename
1204            Save the original name by default.
1205          Allow gunzip --suffix "" to attempt decompression on any file
1206            regardless of its extension if an original name is present.
1207          Add support for the SCO compress -H format.
1208          gzip --fast now compresses faster (speed close to that of compress)
1209            with degraded compression ratio (but still better than compress).
1210            Default level changed to -6 (acts exactly as previous level -5) to
1211            be a better indication of its placement in the speed/ratio range.
1212          Use smart name truncation: 123456789012.c -> 123456789.c.gz
1213            instead of 12345678901.gz
1214          With --force, let zcat pass non gzip'ed data unchanged (zcat == cat)
1215          Added the zgrep shell script.
1216          Made sub.c useful for 16 bit sound, 24 bit images, etc..
1217          Supress warnings about suffix for gunzip -r, except with --verbose.
1218          Moved the sample programs to a subdirectory sample.
1219          On MSDOS, use .gz extension when possible (files without extension)
1220          Added a "Special targets" section in INSTALL.
1221          Use stty -g correctly in zmore.in.
1222          Use cheaper test for gzipness in zforce.in.
1223          Remove space before $ in match.S (no longer accepted by gas 2.x)
1224          For the shell scripts, do not assume that gzip is in the path.
1225          Fix syntax error and define lnk$library in vms/Makefile.mms
1226          REGSIGTYPE is void on the Amiga.
1227          Do not write empty line when decompressing stdin with --verbose.
1228          Fix the 1.1.2 fix for VMS (bug in get_suffix)
1229          Added warning in README about compiler bug on Solaris 2.1 for x86.
1230          Added warning about 'rehash' in INSTALL.
1231          Removed default value of read_buf in bits.c (supermax doesn't like).
1232          In tailor.h, added support for Borland C and Zortech C on OS/2.
1233          Added warning in gzexe about Ultrix buggy sh (use /bin/sh5 instead).
1234          Added warning in zdiff about AIX buggy sh (use /bin/ksh instead).
1235          In configure.in, do not try the asm code if DEFS contains NO_ASM
1236
1237 Fri Jun  4 09:49:33 1993  Jean-loup Gailly  (jloup@chorus.fr)
1238
1239         * version 1.1.2
1240          Fix serious bug for VMS (-gz not removed when decompressing).
1241          Allow suffix other than .gz in znew.
1242          Do not display compression ratio when decompressing stdin.
1243          In zmore.in, work around brain damaged stty -g (Ultrix).
1244          Display a correct compression ratio for .Z files.
1245          Added .z to .gz renaming script in INTALL.
1246          Allow setting CFLAGS in configure.
1247          Add warning in README about bug in Concentrix cc compiler.
1248          Avoid || in Makefile.in (at least one make doesn't support this).
1249          Disable useless --ascii option for the Amiga.
1250          Add a pointer to the Primos executable in README.
1251          Added description of extra field in algorithm.doc.
1252          Do not redefine NULL in alloca.c.
1253          Added check for unsupported compression methods.
1254          Avoid getopt redeclaration on OSF/1.
1255
1256 Tue Jun  1 09:07:15 1993  Jean-loup Gailly  (jloup@chorus.fr)
1257
1258         * version 1.1.1
1259          Fix serious bug in vms.c (== instead of =).
1260          Added --ascii option.
1261          Add workaround in configure.in for Ultrix (quote eval argument)
1262          Do not use unset in znew (not supported on Ultrix)
1263          Use tar.gz instead of tar.z for the distribution of gzip.
1264          Add missing menu item in gzip.texi.
1265          Use size_t instead of unsigned, add AC_SIZE_T in configure.in.
1266
1267 Fri May 28 11:40:01 1993  Jean-loup Gailly  (jloup@chorus.fr)
1268
1269         * version 1.1
1270          Use .gz suffix by default, add --suffix option.
1271          Let gunzip accept a "_z" suffix (used by one 'compress' on Vax/VMS).
1272          Quit when reading garbage from stdin instead of reporting an error.
1273          Added sub.c and add.c for compression of 8 bit images.
1274          Added makefile for VAX/MMS and support for wildcards on VMS.
1275          Added support for MSC under OS/2.
1276          Added support for Prime/PRIMOS.
1277          Display compression ratio also when decompressing.
1278          Quit after --version (GNU standard)
1279          Use --force to bypass isatty() check.
1280          Accept --silent as synonym for --quiet (see longopts.table)
1281          Accept --to-stdout as synonym for --stdout (see longopts.table)
1282          Accept -H and -? in addition to -h and --help.
1283          Added comparison of zip and gzip in the readme file.
1284          Return an error code in all main compression/decompression functions.
1285          Continue processing other files in case of recoverable error.
1286          Add description of -f in znew.1.
1287          Do not keep uncompressed version for znew -t if .gz already exists.
1288          On Unix, use only st_ino and st_dev in same_file().
1289          Use S_IRUSR and S_IWUSR if they exist.
1290          "test $1 = -d" -> "test x$1 = x-d" in gzexe.
1291          In match.S, use symbol sysV68 to detect the Motorola Delta.
1292          Do not include memory.h with gcc (conflicting declarations on Sun).
1293          Fix more typos.
1294          On VMS, define unlink as delete also for gcc.
1295          In "make check", unset LANG because "wc -c" fails on Kanji.
1296          Renamed shdir as scriptdir.
1297          Use the 68020 code instead of 68000 code on the NeXT.
1298          Documented --uncompress as synonym for --decompress.
1299          Include the standard header files before gzip.h (needed on Bull).
1300          Do not assume that _POSIX_VERSION implies dirent.h present.
1301          Removed gzip-tar.patch since tar 1.11.2 handles gzip directly.
1302          Use less memory when compiled with -DSMALL_MEM (for MSDOS).
1303          Optimized updcrc().
1304          Don't complain if cc -E does not work correctly.
1305          Do not attempt reading 64K bytes on 16 bit Unix systems.
1306          Do not use the variable name 'overhead' which is reserved on Lynx!
1307          One BULL compiler does not like *p++ in inflate.c => *p, p++.
1308          Use casts on free and memcmp to avoid warnings.
1309          Remove the "off by more than one minute" time stamp kludge, but
1310            document how to avoid saving the time stamp on pipes if desired.
1311          Include crypt.h in inflate.c (one system predefines the CRYPT symbol).
1312          Add links to gunzip and (g)zcat in the default make rule.
1313          Create installation directories if they do not exist.
1314          Clarified --prefix option in INSTALL.
1315          Use symbol mc68k in match.S for the DIAB DS90.
1316          Guard against zero length _match.s in configure.in.
1317          In zmore, restore all tty options using stty -g.
1318          Added support for MacOS
1319          Simplified makecrc.c.
1320          Avoid warnings in getopt.c, util.c, unlzw.c.
1321          Use autoconf 1.4, in particular for INSTALL and AC_HAVE_POUNDBANG
1322          Use .so instead of hard links for zcat.1, gunzip.1 and zcmp.1.
1323          Fixed declration of sig_type.
1324          Make consistency check in fcfree.
1325          Added ztouch.
1326          Do not complain if utime fails on a directory (for OS/2).
1327
1328 Thu Mar 18 18:56:43 1993  Jean-loup Gailly  (jloup@chorus.fr)
1329
1330         * version 1.0.7
1331           Allow zmore to read from standard input (like more).
1332           Support the 68000 (Atari ST) in match.S.
1333           Retry partial writes (required on Linux when gzip is suspended in
1334             a pipe).
1335           Allow full pathnames and renamings in gzexe.
1336           Don't let gzexe compress setuid executables or gzip itself.
1337           Added vms/Makefile.gcc for gcc on the Vax.
1338           Give a pointer to Solaris and VMS executables of gzip in README.
1339           Allow installation of binaries and shell scripts in different dirs.
1340           Do not use alloca on the Cray.
1341           Provide strspn and strcspn if string.h does not exist.
1342           Define O_CREAT and O_EXCL from FCREAT and FEXCL if necessary.
1343           Remove gzip.doc in make realclean.
1344           Fixed many typos. (Corrections to my English are welcome.)
1345           Put "make manext=l install" at the correct place in INSTALL.
1346           Fix incorrect examples in INSTALL and give more examples.
1347           Include zdiff.1 for install and uninstall.
1348           Allows complex PAGER variable in zmore (e.g.: PAGER="col -x | more")
1349           Avoid warning on unused indfound in getopt.c.
1350           Cast memset arg to void* (required by some buggy compilers).
1351           Include sys/types.h before dirent.h in acgeneral.m4.
1352           Fix acgeneral.m4 AC_COMPILE_CHECK to avoid warnings.
1353           Don't use alloca.c with gcc. (One NeXT user did not have alloca.h).
1354           Change all error messages according to GNU standards.
1355           Restore time stamp only if off by more than one minute.
1356           Allow installation of zcat as gzcat.
1357           Suppress help message  and send compressed data to the terminal when
1358             gzip is invoked without parameters and without redirection.
1359            (Explicit request from Noah Friedman.)
1360           Add compile option GNU_STANDARD to respect the GNU coding standards:
1361             with -DGNU_STANDARD, behave as gzip even if invoked under the
1362             name gunzip. (Complaints to /dev/null or the FSF, not to me!)
1363
1364 Fri Mar 10 13:27:18 1993  Jean-loup Gailly  (jloup@chorus.fr)
1365
1366         * version 1.0.6
1367           Let gzexe detect executables that are already gzexe'd.
1368           Don't try restoring record format on VMS (the simple 1.0.5 code
1369             worked correctly only on fixed-512 files). Suppress text_mode.
1370           Added asm version for 68000 in amiga/match.a.
1371           Use asm version for Atari TT.
1372           Fix "make clean" in vms/Makefile.vms.
1373           For OS/2, assume HPFS by default, add flag OS2FAT if necessary.
1374           Fixed some bugs in zdiff and define zcmp as a link to zdiff.
1375           Added zdiff.1
1376           Remove configure hack for NeXT; add general fix to autoconf instead
1377           Do not strip a ".z" extension if this results in an empty name.
1378           Avoid array overflow in get_prefix() for extensions > 10 chars.
1379           Accept either q or e to quit zmore.
1380           In zmore, try restoring tty mode in all cases.
1381           Use Motorola style for match.S on the NeXT.
1382           configure.in: unsetenv *hangs* with the Siemens csh...
1383           Update vms/gzip.hlp.
1384
1385 Thu Mar 4 14:13:34 1993  Jean-loup Gailly  (jloup@chorus.fr)
1386
1387         * version 1.0.5
1388           For VMS, restore the file type for variable record format, otherwise
1389             extract in fixed length format (not perfect, but better than
1390             forcing all files to be in stream_LF format).
1391           Use "-z" suffix for VMS.
1392           Use only .z, .*-z, .tgz, .taz as valid gzip extensions; update
1393            zforce accordingly.
1394           Allow a version number in input file names for VMS.
1395           Added sample program zread.c.
1396           Fix "make check" for some implementations of /bin/sh.
1397           Don't rely on stat() for filenames with extension > 3 chars
1398             on MSDOS, OS2 and Atari.
1399           Garbage collect files in /tmp created by gzexe.
1400           Quote $opt in znew.
1401           Use TOUCH env variable in znew if it exists.
1402           Better error message for gunzip on empty or truncated file.
1403           Allow prototypes in getopt.h when __STDC__ defined but 0.
1404           Added "make clean" in vms/Makefile.vms.
1405           Removed -g from default CFLAGS (with Noah's permission!)
1406           Avoid too many HAVE_xxx_H for most systems; use common defaults.
1407           Moved default Atari flags into tailor.h for consistency.
1408           Use memzero() to clear the hash table.
1409           Update vms/gzip.hlp to reflect the VMS behavior.
1410           Fix OS_CODE (to fit in a byte).
1411           Add utime.h for the Amiga.
1412           Add gcc support for the Amiga.
1413           Work around incorrect dirent.h for NeXT 2.0.
1414           Added Makefile entry for Coherent.
1415
1416 Fri Feb 22 11:20:49 1993  Jean-loup Gailly  (jloup@chorus.fr)
1417
1418         * version 1.0.4
1419           Added optimized asm version for 68020.
1420           Add support for DJGPP.
1421           Add support for the Atari ST.
1422           Added zforce to rename gzip'ed files with truncated names.
1423           Do not install with name uncompress (some systems rely on the
1424             absence of any check in the old uncompress).
1425           Added missing function (fcfree) in msdos/tailor.c
1426           Let gunzip handle .tgz files, and let gzip skip them.
1427           Added 'stty min 1' in zmore for SysV and fixed trap code.
1428           Suppress .PHONY in Makefile.in, which breaks old makes.
1429           Added documentation about pcat and unpack in INSTALL.
1430           Add cast to getenv for systems without stdlib.h.
1431           Use VAXC instead of VMS to avoid confusion for gcc.
1432           Add -K to znew.1.
1433           Add gzexe.1.
1434           Try preserving file permissions in gzexe.
1435           Added -d option for gzexe.
1436           Guard against spaces in file names in gzexe.
1437           Use CMP env. variable in zcmp.
1438           Return a warning exit status for gzip of file with .z suffix.
1439           Suppress usage of d_ino which is not portable to all systems.
1440           Use #ifdef instead of #if for consistency.
1441           For VMS, use "cc util.c" instead of "cc util" (pb with logical names)
1442           Added utime() for Amiga.
1443           Renamed gzcat.1 as zcat.1.
1444           Include fcntl.h for Amiga (for read and write).
1445           For VMS, add definition of symbols and links in the makefiles.
1446           Give a VMS look to vms/gzip.hlp.
1447           Save the original name only when necessary.
1448           Add a mode parameter for open in read mode (required by VMS).
1449           For VMS, remove the version suffix from the original name.
1450           Accept both / and \ as path separator for MSDOS.
1451           Let gunzip extract stored .zip files correctly.
1452           Added warning about VFC format in vms/gzip.hlp.
1453           In znew, skip a bad file but process the others.
1454           Cleanup tailor.h.
1455           Use GZIP_OPT for VMS to avoid conflict with program name.
1456           Added description of GZIP variable in gzip.texi.
1457
1458 Thu Feb 11 17:21:32 1993  Jean-loup Gailly  (jloup@chorus.fr)
1459
1460         * version 1.0.3
1461           Add -K option for znew to keep old .Z files if smaller.
1462           Add -q option (quiet) to cancel -v in GZIP env variable.
1463           For Turbo C, normalize pointers before freeing them.
1464           Add more safety checks in add_envopt().
1465           Add do_exit() for uniform exit path (always free memory).
1466           Reduce MAX_PATH_LEN for MSDOS.
1467           Include sys/types.h before signal.h
1468           Avoid strdup, the NeXT does not have it.
1469           Made gzexe safer on systems with filename limitation to 14 chars.
1470
1471 Fri Feb  10 09:45:49 1993  Jean-loup Gailly  (jloup@chorus.fr)
1472
1473         * version 1.0.2
1474           Added env variable GZIP for default options.
1475           Added support for the Amiga.
1476           znew now keeps the old .Z if it is smaller than the .z file.
1477           Added gzexe to compress rarely used executables.
1478           Reduce memory usage when using static allocation (no DYN_ALLOC).
1479           Better separation of warning and error return codes.
1480           Fix unlzw.c to make DYN_ALLOC and MAXSEG_64K independent options.
1481           Allow INBUFSIZ to be >= 32K in unlzw (don't use sign of rsize)
1482           Generate tar file in old format to avoid problems with old systems.
1483           Preserve time stamp in znew -P if touch -r works.
1484           Use ${PAGER-more} instead of ${PAGER:-more} in zmore.
1485           Do not use unsigned instead of mode_t.
1486           Better error message for trailing garbage in .z file; ignore this
1487            garbage on VMS.
1488           In zmore, use icanon instead of -cbreak on SYSV.
1489           Add trap handler in zmore.
1490           Use char* instead of void* for non STDC compilers.
1491           Added makefile entry for Xenix on 286.
1492           Return an error code when existing file was not overwritten.
1493           Use prototype of lzw.h for lzw.c.
1494           Fix znew with -P option alone.
1495           Give warning for directories even without -v.
1496           Close output file before unlink() in case of error.
1497           Suppress all target dependent ifdef from the portable files.
1498           Free all dynamically allocated variables upon exit.
1499
1500 Thu Feb 4 18:23:56 1993  Jean-loup Gailly  (jloup@chorus.fr)
1501
1502         * version 1.0.1
1503           Fixed some trivial errors in msdos/Makefile.bor
1504
1505 Thu Feb 4 10:00:59 1993  Jean-loup Gailly  (jloup@chorus.fr)
1506
1507         * version 1.0
1508           gzip now runs on Vax/VMS (Amiga support will come in next version).
1509           Do not overwrite files without -f when using /bin/sh.
1510           Support the test option -t for compressed (.Z) files.
1511           Flush output for bad compressed files. Add warning in README.
1512           Added makefiles for MSDOS.
1513           Don't rely on presence of csh in configure
1514           Added gunzip.1 and gzcat.1.
1515           Updated znew.1.
1516           Check reserved flags in unlzw().
1517           Return dummy value in main to avoid lint warning.
1518           Define OF in lzw.h for lint.
1519           Allow both "znew -v -t" and "znew -vt".
1520           Don't overwrite the output file name for multiple parts.
1521           Echo just a warning if configure is out of date.
1522           Use ; instead of , in trees.c (confuses the SAS Amiga compiler).
1523           In INSTALL, document "DEFS='-DM_XENIX' ./configure".
1524           Use OTHER_PATH_SEP for more portability (DOS, OS2, VMS, AMIGA).
1525           Make all directories world writable for broken versions of tar.
1526           Use gzip -cd instead of zcat in zmore, zcmp, zdiff.
1527           Don't use GNU tar for distributions, some systems can't untar.
1528           Do not exit() for gzip --version.
1529
1530 Mon Jan 26 10:26:42 1993  Jean-loup Gailly  (jloup@chorus.fr)
1531
1532         * Beta version 0.8.2
1533           Avoid 'far' declarations for MSDOS.
1534           Use test -f instead of test -x in configure.in (for Ultrix)
1535           Add empty else part to if in Makefile.in for broken shells.
1536           Use NO_UNDERLINE instead of UNDERLINE (pb with Linux cpp)
1537           Accept continuation files with -ff (for damage recovery)
1538           Small patch to Makefile.os2
1539           Use memzero instead of bzero to avoid potential conflicts
1540           Document restriction on extraction of zip files.
1541           Fix quoting in ACL_HAVE_SHELL_HACK.
1542           Do not check file size on MSDOS because of bug in DIET.
1543           Allow zcat on a file with multiple links.
1544           Add fix in inflate.c for compatibility with pkzip 2.04c.
1545           Release gzip in tar.z and tar format. (No tar.Z).
1546
1547 Fri Jan 22 10:04:13 1993  Jean-loup Gailly  (jloup@chorus.fr)
1548
1549         * Beta version 0.8.1
1550           Fixed Makefile.os2
1551           Fixed #if directives that TurboC does not like.
1552           Don't rely on uncompress in znew, use gzip -d.
1553           Add the pipe option -P in znew.
1554           Add some more ideas in TODO.
1555           Support both NDIR and SYSNDIR.
1556
1557 Sat Jan  21 15:46:38 1993  Jean-loup Gailly  (jloup@chorus.fr)
1558
1559         * Beta version 0.8
1560           Support unpack.
1561           Check for _match.o in configure.in in addition to return status.
1562           Include <sys/types.h> in zip.c
1563           Define local variables and functions as local.
1564           Accept more alternative names for the program (pcat, gzcat, ...).
1565           Accept .exe as well as .EXE.
1566           Uncompress files with multiple links only with -f.
1567           Better error message for gunzip of non-existent file.z.
1568           Fix the entry for /etc/magic in INSTALL.
1569           Use AC_HAVE_HEADERS uniformly instead of special macros.
1570           Install the man pages as .1 by default instead of .l.
1571           Document crypt++.el in README.
1572           Fix for unlzw() on 16-bit machines (bitmask must be unsigned).
1573           Complain if input and output files are identical.
1574           Create a correct output name for files of exactly 13 chars.
1575           Do not overwrite CPP if set
1576           Check for i386 before trying to assemble match.s
1577           Check for underline in external name before assembling
1578           Add patch for tar 1.11.1.
1579
1580 Mon Jan  5 10:16:24 1993  Jean-loup Gailly  (jloup@chorus.fr)
1581
1582         * Beta version 0.7
1583           Use "make check" instead of "make test".
1584           Do not rely on dirname in znew.
1585           Keep time stamp and pass options to gzip in znew.
1586           Rename .l files back to .1 to avoid conflict with lex
1587           Do not create .z.z files with gzip -r.
1588           Use nice_match in match.asm
1589           Unroll loops in deflate.c
1590           Do not attempt matches beyond the window end
1591           Allow again gunzip .zip files (was working in 0.5)
1592           Allow again compilation with TurboC 2.0 (was working in 0.4)
1593
1594 Tue Dec 30 20:00:19 1992  Jean-loup Gailly  (jloup@chorus.fr)
1595
1596         * Beta version 0.6
1597           The .z extension is used by pack, not compact (README, gzip.1)
1598           Accept gzcat in addition to zcat.
1599           Use PAGER in zmore if defined.
1600           Man pages for /usr/local/man/manl should have extension .l.
1601           Don't redefine bzero on the NeXT
1602           Allow incomplete Huffman table if there is only one code.
1603           Don't lookahead more than 7 bits (caused premature EOF).
1604           Added "make test" to check for compiler bugs.
1605           Don't rely on `i386`; try to assemble directly
1606           Change magic header to avoid conflict with freeze 1.x.
1607           Added entry for /etc/magic in INSTALL.
1608           Do not destroy an input .zip file with more than one member.
1609           Display "untested" instead of "OK" for gzip -t foo.Z
1610           With -t, skip stdin in .Z format
1611           Allow multiple compressed members in an input file.
1612           Ignore a zero time stamp.
1613           Made znew safer.
1614
1615 Tue Dec 29 10:00:19 1992   Noah Friedman  (friedman@gnu.ai.mit.edu)
1616
1617           Added test for #!/bin/sh in configure.in.
1618           Fix some references to $srcdir in Makefile.in
1619
1620 Mon Dec 21 17:33:35 1992  Jean-Loup Gailly  (jloup@chorus.fr)
1621
1622         * Beta version 0.5
1623           Put RCS ids in all files.
1624           Added znew to recompress old .Z files with gzip.
1625           Avoid "already .z suffix" messages for -r and no -v.
1626           Put back check for d_ino in treat_dir().
1627           Use HAVE_STRING_H instead of USG.
1628           Added os2/Makefile.os2
1629           Use SYSUTIME on OS/2.
1630           Info dir is $(prefix)/info, not $(prefix)/lib/info.
1631           Support long options, added getopt and alloca
1632           Support -V and -t
1633           Reorder configure.in according to suggestions in autoconf.info
1634           Allow links when not removing original file
1635           Allow either .z or .Z in zdiff
1636
1637 Wed Nov 25 11:40:04 1992  Jean-loup Gailly  (jloup@chorus.fr)
1638
1639         * Beta version 0.4.1
1640           Save only the original base name, don't include any directory prefix.
1641           Don't use HAVE_LONG_FILE_NAMES (support multiple file system types).
1642           Fix declaration of abort_gzip in gzip.h.
1643           Include unistd.h when it exists to avoid warnings with gcc -Wall.
1644
1645 Mon Nov 23 12:39:01 1992    Jean-loup Gailly  (jloup@chorus.fr)
1646
1647         * Beta version 0.4
1648           Lots of cleanup
1649           Use autoconf generated 'configure'
1650           Fixed the NO_MULTIPLE_DOTS code
1651           Fixed the save_orig_name code
1652           Support for MSDOS (Turbo C)
1653
1654 Thu Nov 19 15:18:22 1992    Jean-loup Gailly  (jloup@chorus.fr)
1655
1656         * Beta version 0.3
1657           Added auto configuration. Just type "make" now.
1658           Don't overwrite compress by default in "make install". Use
1659             "make install_compress" to overwrite.
1660           Add match.s for 386 boxes.
1661           Added documentation in texinfo format.
1662           Provide help for "gunzip" invoked without redirected input.
1663           Save original file name when necessary.
1664           Support OS/2 (Kai-Uwe Rommel).
1665
1666 Tue Nov 17 14:32:53 1992  Jean-loup Gailly  (jloup@chorus.fr)
1667
1668         * Alpha version 0.2.4
1669           Return 0 in get_istat() when ok (caused error with zcat).
1670           Don't update crc on compressed data (caused crc errors on
1671             large files).
1672
1673 Fri Nov 13 15:04:12 1992  Jean-loup Gailly  (jloup@chorus.fr)
1674
1675         * Alpha version 0.2.3
1676           Initialize rsize in unlzw.c
1677           Initialize ofd for zcat.
1678           Do not use volatile ifname as argument of treat_dir.
1679           Add -1 to -9 in gzip.1.
1680
1681 Sat Oct 31 18:30:00 1992  Jean-loup Gailly  (jloup@chorus.fr)
1682
1683         * Alpha version 0.2.2.
1684           Fix error messages.
1685           Accept gunzip on zip files.
1686
1687 Sat Oct 31 17:15:00 1992  Jean-loup Gailly  (jloup@chorus.fr)
1688
1689         * Alpha version 0.2.1
1690           Use ctype.h in util.c (problem on SysV).
1691           Create BINDIR if it does not exist.
1692           Use cc by default.
1693           Added zcmp, zmore, zdiff.
1694           Fixed the man page gzip.1.
1695
1696 Sat Oct 31 17:00:00 1992  Jean-loup Gailly  (jloup@chorus.fr)
1697
1698         * Alpha version 0.2
1699           Fixed compilation problems with gcc
1700
1701 Sat Oct 31 12:46:00 1992  Jean-loup Gailly  (jloup@chorus.fr)
1702
1703         * Alpha version 0.1 released (under time pressure), so it's not
1704           much tested, sorry.
1705
1706
1707         -----
1708
1709         Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2006, 2007 Free
1710         Software Foundation, Inc.
1711
1712         Copyright (C) 1992, 1993 Jean-loup Gailly
1713
1714         Copying and distribution of this file, with or without
1715         modification, are permitted provided the copyright notice
1716         and this notice are preserved.