Optimization: Avoid unnecessary stat() calls.
[gnulib.git] / lib / ChangeLog
index a53e28b..a0e46ab 100644 (file)
+2003-01-11  Bruno Haible  <bruno@clisp.org>
+
+       * same.c (same_name): Reorder tests so as to avoid calling stat()
+       when a string comparison is sufficient.
+
+2003-01-11  Bruno Haible  <bruno@clisp.org>
+
+       * readtokens.c (readtoken): Cast character to 'unsigned char', not
+       'unsigned int'.
+
+2003-01-11  Bruno Haible  <bruno@clisp.org>
+
+       * hash-pjw.c: Add comment about low quality of this function.
+
+2003-01-12  Paul Eggert  <eggert@twinsun.com>
+
+       Finish renaming getstr -> getdelim2 and readline -> readlinebuffer,
+       to avoid collisions with libcurses and libreadline.
+
+       * Makefile.am (libfetish_a_SOURCES): Remove getstr.c, getstr.h.
+       * getstr.h, getstr.c: Remove.
+       * getline.c: Include "getline.h", to check interface.
+       Move body of old getstr.c here: this defines MIN_CHUNK and
+       declares getdelim2, which is renamed from getstr.
+       (getline, getdelim): Adjust to renaming of getstr -> getdelim2.
+
+       * linebuffer.c (readlinebuffer): Renamed from readline.
+       All uses changed.
+       * linebuffer.h: Likewise.
+       (readline): Remove backward-compatibility macro.
+
+2003-01-12  Jim Meyering  <jim@meyering.net>
+
+       * makepath.c: Don't test HAVE_ERRNO_H.  It's not necessary.
+
+2003-01-10  Bruno Haible  <bruno@clisp.org>
+
+       * alloca_.h: New file.
+       * getdate.y: Unconditionally include alloca.h.
+       * makepath.c: Likewise.
+       * setenv.c: Likewise.
+       * userspec.c: Likewise.
+
+2003-01-09  Bruno Haible  <bruno@clisp.org>
+
+       * stdbool.h.in: New file.
+
+2003-01-08  Bruno Haible  <bruno@clisp.org>
+
+       * safe-read.c: Include specification header first, to ensure its
+       selfcontainedness.
+       * full-write.c: Likewise.
+
+2003-01-08  Jim Meyering  <jim@meyering.net>
+
+       * full-write.c: Undefine and define-away `const' after inclusion
+       of errno.h, not before.  Suggestion from Bruno Haible.
+
+2003-01-07  Jim Meyering  <jim@meyering.net>
+
+       * full-write.c: Rework so that it may serve to define full_read, too.
+       * full-read.c: Simply #define FULL_READ and include full-write.c.
+
+2003-01-06  Jim Meyering  <jim@meyering.net>
+
+       * version-etc.c: Update year in translatable copyright string.
+
+2002-12-25  Bruno Haible  <bruno@clisp.org>
+
+       * strtoimax.c: Include <stdint.h> as an alternative to <inttypes.h>.
+       * xstrtol.h: Likewise.
+       * xstrtoimax.c: Likewise.
+       * xstrtoumax.c: Likewise.
+       * human.h: Likewise.
+
+       * tempname.c: Include <inttypes.h> too. Avoids a compilation error
+       on systems that have <inttypes.h> but not <stdint.h>.
+
+2002-12-31  Paul Eggert  <eggert@twinsun.com>
+
+       * memcoll.c (memcoll): Fall back on a simple algorithm using
+       memcmp if strcoll doesn't work.
+
+2002-12-23  Bruno Haible  <bruno@clisp.org>
+
+       * localcharset.h: New file.
+       * localcharset.c: Include it.
+       * unicodeio.c: Likewise.
+
+2002-12-22  Bruno Haible  <bruno@clisp.org>
+
+       * utime.c (utime_null): No need to call ftruncate if the file was
+       nonempty.
+
+2002-12-23  Bruno Haible  <bruno@clisp.org>
+
+       * memcoll.c (STRCOLL): New macro.
+       (memcoll): Use it.
+
+2002-12-22  Bruno Haible  <bruno@clisp.org>
+
+       * getstr.h (getstr): Define, to avoid clash with libcurses.
+       * linebuffer.h (readline): Define, to avoid clash with libreadline.
+
+2002-12-22  Bruno Haible  <bruno@clisp.org>
+
+       * getdate.y (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE.
+
+2002-12-23  Bruno Haible  <bruno@clisp.org>
+
+       * getline.h: Include <stddef.h>, for size_t.
+
+       * unicodeio.h: Include <stddef.h>, for size_t.
+       * unicodeio.c: Don't include <stddef.h>.
+
+2002-12-17  Bruno Haible  <bruno@clisp.org>
+
+       * canon-host.c (strdup): Remove unused declaration.
+
+       * fsusage.c: Include full_read.h.
+       (get_fs_usage): Use full_read instead of safe_read.
+
+       * utime.c (utime_null): Use SAFE_READ_ERROR.
+
+2002-12-11  Bruno Haible  <bruno@clisp.org>
+
+       * setenv.h: Rewritten to cope with systems that have setenv() but not
+       unsetenv().
+       * setenv.c, unsetenv.c: Taken from glibc-2.2.4 with the following
+       modifications:
+
+       2002-12-11  Bruno Haible  <bruno@clisp.org>
+
+               * setenv.c (alloca): Fall back to malloc.
+               (freea): New macro.
+               (setenv): Use freea() to free memory allocated with alloca().
+
+       2002-11-13  Bruno Haible  <bruno@clisp.org>
+
+               * setenv.c (compar_fn_t, __add_to_environ, setenv): Use ANSI C
+               function declarations.
+               * unsetenv.c (unsetenv): Likewise.
+
+       2002-03-04  Bruno Haible  <bruno@clisp.org>
+
+               Portability to AIX 4.3.3.
+               * unsetenv.c: New file, extracted from setenv.c.
+               * setenv.c: Move the unsetenv() function to unsetenv.c.
+
+       2001-12-20  Bruno Haible  <bruno@clisp.org>
+
+               * setenv.c (__add_to_environ): Don't call realloc(NULL,...),
+               use malloc instead. For SunOS4.
+
+       2001-12-11  Bruno Haible  <bruno@clisp.org>
+
+               * setenv.c: Declare alloca.
+               (compar_fn_t): New typedef.
+               (KNOWN_VALUE, STORE_VALUE): Use it.
+
+       * Makefile.am (libfetish_a_SOURCES): Add setenv.c, unsetenv.c,
+       setenv.h.
+
+2002-12-10  Paul Eggert  <eggert@twinsun.com>
+
+       Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.
+       * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS):
+       Choose values that are less likely to collide with system fnmatch
+       options.
+       * exclude.c (FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not
+       defined (e.g., a pure POSIX system).
+       (EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME
+       instead of FNM_FILE_NAME, for compatibility with pure POSIX sytems.
+
+2002-12-06  Jim Meyering  <jim@meyering.net>
+
+       * error.c: Be consistent: change `#ifndef _LIBC' to `#if !_LIBC'.
+
+       Merge in changes from libc's misc/error.c, in preparation
+       for the merge of gnulib's changes back into libc.
+
+       * error.c (_): Define only if not already defined.
+       Move definition to follow all #include directives.
+       Include unlocked-io.h only if !_LIBC.
+       [_LIBC]: Include <libio/libioP.h>.
+       [USE_IN_LIBIO]: Include <libio/iolibio.h>
+       (fflush): Tweak definition to use INTUSE.
+       (putc): Define.
+
+2002-12-05  Paul Eggert  <eggert@twinsun.com>
+
+       * alloca.c [defined emacs]: Include "lisp.h".
+       (xalloc_die) [defined emacs]: New macro.
+       (free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE.
+       [! defined emacs]: Include <xalloc.h>.
+       (POINTER_TYPE) [!defined POINTER_TYPE]: New macro.
+       (pointer): Typedef to POINTER_TYPE *.
+       (malloc): Remove decl; we now always use xmalloc.
+       (alloca): Use old-style definition, since Emacs needs this.
+       Check for arithmetic overflow when computing combined size.
+
+2002-12-04  Paul Eggert  <eggert@twinsun.com>
+
+       Do not generate unlocked-io.h automatically, since it's easier to
+       maintain it by hand.
+
+       * unlocked-io.h: New file, from GNU diffutils,
+       but with proper copyright notice and attribution.
+       * gen-uio: Remove.
+       * Makefile.am: Add copyright notice.
+       (libfetish_a_SOURCES): Add unlocked-io.h.
+       (BUILT_SOURCES, all-local): Remove unlocked-io.h.
+       (DISTCLEANFILES, io_functions): Remove macros.
+       (EXTRA_DIST): Remove gen_uio.
+       (unlocked-io.h): Remove rule.
+
+2002-12-04  Jim Meyering  <jim@meyering.net>
+
+       Reflect the fact that stat.c and lstat.c are no longer generated.
+       * Makefile.am (BUILT_SOURCES): Remove stat.c and lstat.c.
+       (DISTCLEANFILES): Likewise.
+       (EXTRA_DIST): Likewise.
+       (all_local): Don't depend on stat.c or lstat.c.
+       (stat.c, lstat.c): Remove rules.
+       (EXTRA_DIST): Remove xstat.in.
+
+       * xstat.in: Remove file.  Contents moved into stat.c.
+       * stat.c: New file.  Contents mostly from xstat.in.
+       * stat.c: Rework so that it may serve to define rpl_lstat, too.
+       * lstat.c: New file. Simply #define LSTAT and include stat.c.
+
+       * safe-read.c: Rework so that it may serve to define safe_write, too.
+       * safe-write.c: Simply #define SAFE_WRITE and include safe-read.c.
+
+2002-12-03  Jim Meyering  <jim@meyering.net>
+
+       * safe-read.c, safe-write.c: Change variable names and comments, but
+       not semantics, to minimize the differences between these two files.
+       (safe_read): Change comment to mention SAFE_READ_ERROR.
+
+       * safe-read.c (IS_EINTR): Define.
+       (safe_read): Use IS_EINTR in place of in-function cpp directives.
+
+2002-12-02  Bruno Haible  <bruno@clisp.org>
+
+       * safe-write.c (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM):
+       Define, taken from safe-read.c.
+       (INT_MAX): Provide fallback.
+       (safe_write): Rewrite to iterate IFF the write fails with EINTR.
+       * safe-write.h (SAFE_WRITE_ERROR): Define.
+
+       * safe-read.c (EINTR): Remove definition.
+       (safe_read): Don't use EINTR if it is absent.
+
+2002-12-02  Jim Meyering  <jim@meyering.net>
+
+       * safe-read.c (EINTR): Define.
+       (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
+       (INT_MAX): Provide fallback.
+       (safe_read): Rewrite to iterate IFF the read fails with EINTR.
+
+       * safe-read.h (SAFE_READ_ERROR): Define.
+
+2002-12-01  Jim Meyering  <jim@meyering.net>
+
+       * safe-read.c: (safe_read): Also exit the loop when read returns zero.
+       (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define.
+
+2002-11-27  Paul Eggert  <eggert@twinsun.com>
+
+       * hash.c (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
+       hash_rehash): Replace `if (limit <= value) abort ();' with
+       `if (! (value < limit)) abort ();', for readability.
+
+2002-11-26    <karl@gnu.org>
+
+       * strdup.c: copy from libc again, with jim's ok.
+       * .cppi-disable: re-add strdup.c
+
+2002-11-25    <karl@gnu.org>
+
+       * strtoll.c: copy from libc, meaning we now #include <strtol.c>
+       instead of "strtol.c".
+
+2002-11-25  Jim Meyering  <jim@meyering.net>
+
+       * mktime.c: Sync from libc, now that it has the latest fix.
+
+2002-11-24    <karl@gnu.org>
+
+       * error.c, getopt.c, getopt.h, getopt1.c, obstack.c, regex.c,
+       regex.h, strdup.c, strtoll.c, tempname.c: change license to gpl.
+
+2002-11-24  Jim Meyering  <jim@meyering.net>
+
+       Update from coreutils:
+
+       * mktime.c: Merge in changes from libc.
+
+       Avoid a link-time failure on some Linux systems.
+       * mktime.c (STATIC): Define to be empty (_LIBC) or `static' (otherwise).
+       (__mon_yday): Declare with the STATIC attribute.
+       (__mktime_internal): Likewise.
+       Based on a report from Greg Schafer.
+
+2002-11-23  Jim Meyering  <jim@meyering.net>
+
+       * sig2str.c (str2signum, sig2str): Avoid a warning from gcc:
+       Use `unsigned', not `int', as type of index.
+
+       * xstat.in [@BEGIN_LSTAT_ONLY@]: Include <string.h>.
+
+       * fsusage.c: Remove unneeded parentheses around operands of `defined'.
+
+2002-11-22  Paul Eggert  <eggert@twinsun.com>
+
+       * hash.c: Avoid use of <assert.h>, as the GNU Coding Standards
+       hint that one should use `if (! x) abort ();' rather than `assert
+       (x);', and anyway it's one less thing to worry about configuring.
+       (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
+       hash_rehash, hash_insert): Use abort rather than assert.
+
+2002-11-22  Paul Eggert  <eggert@twinsun.com>
+
+       * quotearg.h: Allow multiple inclusion by surrounding with
+       "#ifndef QUOTEARG_H_".  Include <stddef.h>, for size_t,
+       so that we can be included first.
+       (PARAMS): Remove; we now assume C89 or later.  All uses removed.
+       * quotearg.c: Include quotearg.h immediately after config.h.
+       No need to include stddef.h or sys/types.h any more.
+       Surround local include files with "", not "<>".
+       Assume HAVE_LIMITS_H unconditionally, as we assume C89.
+       Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
+       HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
+       (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
+       (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
+       (ISPRINT): Remove; no longer needed now that we assume C89.
+
+       (clone_quoting_options, quotearg_buffer, quotearg_n_options):
+       Preserve errno.
+
+       (quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
+       quotearg_char): Use SIZE_MAX rather than
+       (size_t) -1 when we are talking about "infinity".
+
+       (quotearg_buffer_restyled): Fix bug when quoting trigraphs.
+
+2002-11-22  Bruno Haible  <bruno@clisp.org>
+
+       * safe-read.h: Assume C89. Add comments.
+       (safe_read): Change return type to size_t.
+       * safe-read.c (safe_read): Change return type to size_t. Handle byte
+       counts > SSIZE_MAX correctly.
+       * safe-write.h: New file.
+       * safe-write.c: New file.
+       * full-read.h: New file.
+       * full-read.c: New file.
+       * full-write.h: Assume C89. Add comments.
+       * full-write.c: Include safe-write.h.
+       (full_write): Rewritten to use safe_write.
+       Suggested by Jim Meyering and Paul Eggert.
+
+2002-11-21  Bruno Haible  <bruno@clisp.org>
+
+       Remove case insensitive option matching.
+       * argmatch.h (argcasematch): Remove declaration.
+       (ARGCASEMATCH): Remove macro.
+       (__xargmatch_internal): Remove case_sensitive argument.
+       (XARGMATCH): Update.
+       (XARGCASEMATCH): Remove macro.
+       * argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
+       case_sensitive argument.
+       (argcasematch): Remove function.
+       (__xargmatch_internal): Remove case_sensitive argument.
+       (main): Use XARGMATCH instead of XARGCASEMATCH.
+
+       * xmalloc.c: Change compile-time error message. Add comment about
+       required autoconf version.
+
+2002-11-21  Jim Meyering  <jim@meyering.net>
+
+       * strdup.c (strdup): Tweak comment and initial #if/#include.
+
+       Merge in changes from the coreutils.
+
+       2002-09-25  Paul Eggert  <eggert@twinsun.com>
+       * fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
+       (UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
+       (PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
+       int.  Work more efficiently if X is the same width as uintmax_t.
+       Do not compare X to -1, to avoid bogus compiler warning.
+       (get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
+       Don't assume that f_frsize and f_bsize are the same type.
+
+       * mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning
+       on FreeBSD.
+
+       * makepath.c (make_path): Restore umask *before* creating the final
+       component.
+       (make_path): Minor reformatting.
+
+       * xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
+       and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
+
+       * mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
+       ones.  At least on GNU/Linux systems, `auto' means something else.
+       From Michael Stone.
+
+2002-11-20  Paul Eggert  <eggert@twinsun.com>
+
+       Merge argmatch cleanups from Bison.  Assume C89.
+
+       * argmatch.c: Include config.h here, not in argmatch.h.
+       Include stdlib.h, for EXIT_FAILURE.
+       Always include <string.h>, since we assume C89.
+       (EXIT_FAILURE): Remove pre-C89 bug workaround.
+       * argmatch.h: Do not include <config.h> or <sys/types.h>.
+       Include <stddef.h> instead, since it's all we need for size_t.
+       (PARAMS): Remove.  All uses removed.
+       (ARRAY_CARDINALITY): Do not bother to #undef.
+       (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
+       ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
+       Remove unnecessary parentheses.
+       (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
+       Insert necessary parentheses.
+       (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
+       (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
+
+2002-11-19  Bruno Haible  <bruno@clisp.org>
+
+       * mbswidth.c: Include mbswidth.h right at the beginning.
+       * mbswidth.h: Include <stddef.h>, for size_t.
+
+       * mbswidth.h (PARAMS): Remove macro.
+       (mbswidth, mbsnwidth): Use ANSI C function declarations.
+       * mbswidth.c (mbswidth, mbsnwidth): Likewise.
+
+       * gcd.h (PARAMS): Remove macro.
+       (gcd): Use ANSI C function declarations.
+       * gcd.c (gcd): Likewise.
+
+2002-11-15  Bruno Haible  <bruno@clisp.org>
+
+       * strcspn.c: Include <stddef.h>.
+       (strcspn): Use ANSI C function declaration. Change return type to
+       size_t. Use NULL.
+       * strpbrk.c: Minimize diffs to glibc. Include <stddef.h>.
+       (strpbrk): Use NULL.
+       * strpbrk.h (PARAMS): Remove macro.
+       (strpbrk): Use ANSI C function declaration.
+       * strstr.c: Don't include <sys/types.h>.
+       * strstr.h (PARAMS): Remove macro.
+       (strstr): Use ANSI C function declarations.
+
+2002-11-06  Bruno Haible  <bruno@clisp.org>
+
+       * gcd.h (gcd): Change argument type to 'unsigned long'.
+       * gcd.c (gcd): Likewise.
+
+2002-11-05  Bruno Haible  <bruno@clisp.org>
+
+       * gcd.h: New file, from gettext-0.11.5.
+       * gcd.c: New file, from gettext-0.11.5.
+
+2002-11-05  Bruno Haible  <bruno@clisp.org>
+
+       * error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
+       * getopt.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
+       * obstack.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
+       * regex.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
+
+       * argmatch.c: Include gettext.h instead of <locale.h> and <libintl.h>.
+       * makepath.c: Include gettext.h instead of <locale.h> and <libintl.h>.
+
+       * closeout.c: Include gettext.h instead of <libintl.h>.
+       * human.c: Include gettext.h instead of <libintl.h>.
+       * quotearg.c: Include gettext.h instead of <libintl.h>.
+       * rpmatch.c: Include gettext.h instead of <libintl.h>.
+       * unicodeio.c: Include gettext.h instead of <libintl.h>.
+       * userspec.c: Include gettext.h instead of <libintl.h>.
+       * version-etc.c: Include gettext.h instead of <libintl.h>.
+       * xmalloc.c: Include gettext.h instead of <libintl.h>.
+       (textdomain): Remove definition.
+       * xmemcoll.c: Include gettext.h instead of <libintl.h>.
+
+       * long-options.c: Remove include of <libintl.h> and definition of _.
+       * same.c: Remove include of <libintl.h> and definition of _.
+
+2002-11-04  Bruno Haible  <bruno@clisp.org>
+
+       * stpcpy.h: New file, from GNU gettext-0.11.5.
+       * strcase.h: New file, from GNU gettext-0.11.5.
+       * strpbrk.h: New file, from GNU gettext-0.11.5.
+       * strstr.h: New file, from GNU gettext-0.11.5.
+       * xgetcwd.h: New file, from GNU gettext-0.11.5.
+
+2002-05-09  Bruno Haible  <bruno@clisp.org>
+
+       * config.charset: Update for newest glibc. Add canonical names
+       ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.
+
+2002-05-09  Bruno Haible  <bruno@clisp.org>
+
+       * localcharset.c (get_charset_aliases): Add more Windows specific
+       aliases.
+
+2002-05-08  Owen Taylor  <otaylor@redhat.com>
+
+       * config.charset: A few additions for Solaris.
+
+2001-12-05  Bruno Haible  <bruno@clisp.org>
+
+       * localcharset.c (locale_charset): Don't return an empty string.
+
+2001-10-23  Bruno Haible  <haible@clisp.cons.org>
+
+       * config.charset: msdos in uk_UA uses CP1125.
+
+2001-08-05  Bruno Haible  <haible@clisp.cons.org>
+
+       Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
+       * localcharset.c (locale_charset): Declare as extern "C".
+
+2002-02-15  Bruno Haible  <bruno@clisp.org>
+
+       * config.charset [msdosdjgpp]: For Russian, use CP866.
+
+2002-02-11  Bruno Haible  <bruno@clisp.org>
+
+       * config.charset: Add support for NetBSD.
+
+2002-09-25    <karl@gnu.org>
+
+       * strdup.c: copy from libc/string (via ../config/srclist*).
+       * getopt*: copy from libc/posix.
+       * gettext.h: copy from gettext.
+       * .cppi-disable: add strdup.c, gettext.h.
+
+2002-07-01  Jim Meyering  <meyering@lucent.com>
+
+       * c-stack.c: Include sys/time.h.
+       From Volker Borchert.
+
+2002-06-11  Paul Eggert  <eggert@twinsun.com>
+
+       * fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
+       New macro.  Use it uniformly instead of
+       (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
+       It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
+       reported by Vin Shelton.
+
+2002-06-22  Jim Meyering  <meyering@lucent.com>
+
+       * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
+       redefinition due to Solaris5.6's definition in /usr/include/sys/euc.h.
+
+2002-06-22  Paul Eggert  <eggert@twinsun.com>
+
+       * c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
+       Do not assume SA_SIGINFO behavior.
+       Bug reported by Jim Meyering on NetBSD 1.5.2.
+
+2002-06-22  Jim Meyering  <meyering@lucent.com>
+
+       * c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
+
+       * exitfail.c, exitfail.h: Likewise.
+       * Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
+
+       * Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
+       of fnmatch.h.
+       (EXTRA_DIST): Add fnmatch_loop.c.
+       (libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
+
+       * fnmatch_loop.c: New file, from diffutils-2.8.2.
+       * fnmatch.c: Update from diffutils-2.8.2.
+       * fnmatch_.h: New file.  From diffutils-2.8.2.
+       * fnmatch.h: Remove file.
+
+2002-06-18  Paul Eggert  <eggert@twinsun.com>
+
+       * file-type.h: Report an error if neither S_ISREG nor
+       S_IFREG is defined, instead of using a test specific to glibc
+       2.2.  This should be safe, since POSIX requires S_ISREG and
+       Unix Version 7 had S_IFREG.  We don't need to check for
+       <sys/types.h> since we don't use any symbols that it defines.
+
+2002-06-15  Jim Meyering  <meyering@lucent.com>
+
+       * file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
+       For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
+       have been included before this file.
+
+2002-06-13  Richard Dawe  <richdawe@bigfoot.com>
+
+       * Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
+       so that each temporary file name is unique and valid in the first
+       8 characters, for operation under DOS.
+
+2002-06-15  Jim Meyering  <meyering@lucent.com>
+
+       Work even with DJGPP 2.03, which lacks support for symlinks.
+       From Richard Dawe.
+       * xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
+       is defined.
+       * lchown.c (S_ISLNK): Likewise.
+
+2002-06-14  Jim Meyering  <meyering@lucent.com>
+
+       * file-type.h: Use the version from diffutils-2.8.2.
+       * file-type.c: Likewise.
+
+2002-05-27  Jim Meyering  <meyering@lucent.com>
+
+       Fix a problem seen only on nonconforming systems whereby ls.c's
+       use of localtime, and then of gettimeofday would cause trouble:
+       the localtime call used to initialize rpl_gettimeofday's save
+       mechanism would clobber ls's current local time information so
+       that in any long listing the first file would always be listed
+       with date 1970-01-01.  Analysis by Volker Borchert.
+
+       * gettimeofday.c (localtime): Undefine.
+       (rpl_localtime): New function.
+
+2002-05-22  Jim Meyering  <meyering@lucent.com>
+
+       * Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h.
+       * file-type.h: New file.
+       * file-type.c (file_type): New file/function.  Extracted from diffutils.
+
+2002-04-29  Paul Eggert  <eggert@twinsun.com>
+
+       * hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
+
+2002-04-28  Paul Eggert  <eggert@twinsun.com>
+
+       * sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
+       depending on <sys/wait.h> and WTERMSIG.  Default to 64 instead
+       of 127, since 64 is the largest conceivable number for ancient
+       nonstandard hosts.
+       * sig2str.c: Do not include <sys/wait.h>; no longer needed.
+
+2002-04-28  Jim Meyering  <meyering@lucent.com>
+
+       * sig2str.c (WTERMSIG): Remove definition (unused).
+
+2002-04-28  Paul Eggert  <eggert@twinsun.com>
+
+       * sig2str.h, sig2str.c: New files.
+       * Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
+
+2002-04-24  Jim Meyering  <meyering@lucent.com>
+
+       * gettext.h: New file, from Gettext.
+       * Makefile.am (INCLUDES): Remove -I../intl.
+       (libfetish_a_SOURCES): Add gettext.h.
+
+2002-04-16  Jim Meyering  <meyering@lucent.com>
+
+       * readutmp.h (UT_TYPE): Remove definition (now in who.c).
+       (HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
+       (HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
+
+2002-04-12  Jim Meyering  <meyering@lucent.com>
+
+       * dirfd.h (dirfd): Elide prototype if dirfd is a macro.
+
+2002-03-10  Jim Meyering  <meyering@lucent.com>
+
+       * makepath.c (make_path): Remove a comma from a diagnostic.
+       Suggestion from Santiago Vila.
+
+2002-03-08  Jim Meyering  <meyering@lucent.com>
+
+       * rename.c: Mention that this wrapper is needed also on
+       mips-dec-ultrix4.4 systems.
+
+2002-03-02  Jim Meyering  <meyering@lucent.com>
+
+       * gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
+       not HAVE_CLOCK_SETTIME.
+
+2002-02-27  Paul Eggert  <eggert@twinsun.com>
+
+       * nanosleep.h: Rename to....
+       * timespec.h: New name for nanosleep.h.  All uses changed.
+
+       * gettime.c: New file.
+       * settime.c: New file.
+       * stime.c: Remove.
+
+       * Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
+       timespec.h.  Remove nanosleep.h.
+
+2002-02-25  Paul Eggert  <eggert@twinsun.com>
+
+       * acl.c, acl.h: New files.
+       * Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
+
+2002-02-24  Jim Meyering  <meyering@lucent.com>
+
+       * strnlen.c (strnlen): Define-away/undef so that an inconsistent
+       prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
+       cause trouble.  Reported by Nelson Beebe.
+
+2002-02-23  Paul Eggert  <eggert@twinsun.com>
+
+       * path-concat.c (xpath_concat): Reorder code to pacify
+       compilers that don't know that xalloc_die never returns.
+
+2002-02-20  Jim Meyering  <meyering@lucent.com>
+
+       * getdate.c: Regenerate using bison-1.33.
+
+2002-02-15  Paul Eggert  <eggert@twinsun.com>
+
+       * posixver.c, posixver.h: New files.
+       * Makefile.am (libfetish_a_SOURCES): Add them.
+
+2002-02-02  Paul Eggert  <eggert@twinsun.com>
+           Bruno Haible  <bruno@clisp.org>
+
+       * unicodeio.h (print_unicode_char): Add exit_on_error argument.
+       (fwrite_success_callback): New declaration.
+       * unicodeio.c (unicode_to_mb): New function, extracted from
+       print_unicode_char. Call failure callback instead of error.
+       (fwrite_success_callback): New function.
+       (exit_failure_callback): New function.
+       (fallback_failure_callback): New function.
+       (print_unicode_char): Call unicode_to_mb.
+
+2002-01-26  Jim Meyering  <meyering@lucent.com>
+
+       * Makefile.am (getdate$U.o): Depend on unlocked-io.h.
+
+2002-01-22  Jim Meyering  <meyering@lucent.com>
+
+       * Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
+       Otherwise, some versions of automake would omit the rule that makes
+       Makefile from Makefile.in.
+
+2001-01-21  Paul Eggert  <eggert@twinsun.com>
+
+       * xmemcoll.h, xmemcoll.c: New files.
+       * Makefile.am (libfetish_a_SOURCES): Add them.
+       * memcoll.c: Include errno.h, and declare errno if not defined.
+       (memcoll): Set errno to zero if there is no error.
+
+       * quotearg.c (quotearg_buffer_restyled):
+       Fix bug with quoting buffers containing NUL when backslashing escapes.
+       This bug was exposed by the other changes in this patch.
+       (quotearg_n_options): New arg ARGSIZE.
+       All callers changed.
+       (quoting_options_from_style): New function.
+       (quotearg_n_style): Use it.
+       (quotearg_n_style_mem): New function.
+
+       * quotearg.h (quotearg_n_style_mem): New function.
+
+2002-01-16  Jim Meyering  <meyering@lucent.com>
+
+       * getdate.y: Add three semicolons, each just before a closing brace.
+       Bison (as of version 1.31) no longer papers over that mistake.
+
+2002-02-14  Paul Eggert  <eggert@twinsun.com>
+
+       * backupfile.c (ISDIGIT): Comment fix.
+       * getdate.y (ISDIGIT): Likewise.
+       * posixtm.c (ISDIGIT, year): Likewise.
+       * strverscmp.c (ISDIGIT): Likewise.
+       * userspec.c (ISDIGIT): Likewise.
+
+2002-01-05  Jim Meyering  <meyering@lucent.com>
+
+       * version-etc.c (version_etc_copyright): Update copyright year.
+
+2001-01-19  Paul Eggert  <eggert@twinsun.com>
+
+       * closeout.c (close_stdout_status): If ferror (stdout), do
+       not silently exit merely because the output buffer happens to
+       have nothing pending.
+
+2001-12-18  Paul Eggert  <eggert@twinsun.com>
+
+       See the big note in ../ChangeLog.
+       * human.c (suffixes): Prefer K to k for 1024.
+       (generate_suffix_backwards): New function.
+       (human_readable_inexact): Use it.
+       * xstrtol.c (__xstrtol): If there is no number but there
+       is a valid suffix, assume 1.  "MB" now means decimal, "MiB" binary.
+       Accept 'K' as well as 'k'.
+
+2001-12-15  Jim Meyering  <meyering@lucent.com>
+
+       * regex.h (__restrict_arr): Update from libc.
+
+       * mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
+       as `remote' if the name starts with `//'.  Suggested by Michael Stone.
+       (STREQ): Define.
+
+2001-12-10  Jim Meyering  <meyering@lucent.com>
+
+       * linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
+       Instead, include "xalloc.h".
+       (initbuffer): Don't cast xmalloc return value to char*.
+       (readline): Reword comment.
+       Don't cast xrealloc return value to char*
+       Return NULL, not 0.
+
+2001-12-09  Jim Meyering  <meyering@lucent.com>
+
+       * modechange.c (mode_compile): Add cast to avoid pedantic warning about
+       `signed and unsigned type in conditional expression'.
+       * posixtm.c (posix_time_parse): Likewise.
+
+       * xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
+
+       * readtokens.c (readtoken): Declare an index to be of type unsigned
+       to avoid a pedantic warning.
+
+       * getstr.c: Don't include assert.h.
+       (getstr): Remove warning-evoking assertions.
+       Return -1 if offset parameter is out of bounds.
+       Change the type of a local from int to size_t.
+
+       * strftime.c (my_strftime_localtime_r): Include this function
+       definition in the `#if ! HAVE_TM_GMTOFF' block.
+
+       * xgethostname.c: Remove declarations of xmalloc and xrealloc.
+       Include xalloc.h instead.
+
+2001-12-02  Jim Meyering  <meyering@lucent.com>
+
+       * tempname.c: Don't declare getenv, thus reverting the change of
+       2001-11-18.  It's no longer necessary, now that stdlib.h is always
+       included.
+
+       * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
+        __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
+
+2001-11-30  Akim Demaille  <akim@epita.fr>
+
+       * xstrdup.c: Include xalloc.h, so that xstrdup is declared
+       before being defined.
+
+2001-11-27  Paul Eggert  <eggert@twinsun.com>
+
+       * quotearg.h (quotearg_n, quotearg_n_style):
+       First arg is int, not unsigned.
+       * quotearg.c (quotearg_n, quotearg_n_style): Likewise.
+       (SIZE_MAX, UINT_MAX): New macros.
+       (quotearg_n_options): Abort if N is negative.
+       Avoid overflow check on hosts where size_t is 64 bits and int
+       is 32 bits, as overflow is impossible there.
+       Fix off-by-one typo that caused unnecessary reallocation.
+
+2001-11-27  Jim Meyering  <meyering@lucent.com>
+
+       * tempname.c: Merge with version from libc.
+       * regex.c: Likewise.
+
+       * tempname.c: Include stdlib.h unconditionally.  On some old systems
+       for which STDC_HEADERS is 0, it was not included, resulting in a
+       warning about an integer-to-pointer conversion problem with getenv.
+       Reported by Volker Borchert.
+
+2001-11-26  Jim Meyering  <meyering@lucent.com>
+
+       * gtod.h: Remove file.
+       * Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
+       * gettimeofday.c: Don't include gtod.h.
+       (GTOD_init): Remove function.
+       (rpl_gettimeofday): Do its job here instead, rather than aborting.
+       Suggestion from Volker Borchert.
+
+2001-11-23  Jim Meyering  <meyering@lucent.com>
+
+       * hash.h (struct hash_table): Don't define here.  Merely declare it.
+       * hash.c (struct hash_table): Define it here instead.
+
+2001-11-22  Jim Meyering  <meyering@lucent.com>
+
+       * hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
+
+2001-11-18  Paul Eggert  <eggert@twinsun.com>
+
+       * tempname.c (TMP_MAX): Remove; no longer needed.
+       (TEMPORARIES): New macro.
+       (__gen_tempname): Use TEMPORARIES rather than TMP_MAX.  This
+       removes an artificial limitation (e.g. HP-UX 10.20, where
+       TMP_MAX is 17576).
+
+2001-11-18  Jim Meyering  <meyering@lucent.com>
+
+       * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
+       on SunOS4.
+
+       * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
+       files will be created before anything else.
+
+2001-11-17  Jim Meyering  <meyering@lucent.com>
+
+       * modechange.c (mode_adjust): Fix error introduced on 1999-04-26
+       that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
+       rather than group writable.  Patch by Juan F. Codagnone.
+
+       * readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
+       Instead, include "xalloc.h".
+
+       * mountlist.c: Include unlocked-io.h after all system headers.
+       Remove explicit declarations of xmalloc, xrealloc,
+       and xstrdup.  Instead, include "xalloc.h".
+
+       * argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
+       * fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
+       * mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
+
+       * regex.c, sha.c, version-etc.c, yesno.c: Likewise.
+       Reported by Padraig Brady.
+
+       * mkstemp.c: #undef mkstemp.
+       Include config.h.
+       (rpl_mkstemp): Rename from mkstemp.
+       Protoize.
+
+2001-11-16  Jim Meyering  <meyering@lucent.com>
+
+       * physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
+       (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
+       determine the amount of total physical memory, use pstat_getstatic.
+       HPUX-11 doesn't define _SC_PHYS_PAGES.
+       (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
+       If sysconf couldn't be used to determine the amount of available
+       physical memory, use both pstat_getstatic and pstat_getdynamic.
+       Based on a patch from Bob Proulx.
+
+2001-11-05  Jim Meyering  <meyering@lucent.com>
+
+       * xstat.in (slash_aware_lstat): Correct a misleading comment.
+
+2001-11-03  Jim Meyering  <meyering@lucent.com>
+
+       * argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
+       in argmatch_to_argument call.
+
+       * dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
+       argument.
+
+       * hash.c (hash_clear): Fix a bug that could lead to an infloop or
+       e.g., a fault due to an attempt to free a NULL pointer.
+
+2001-11-01  Jim Meyering  <meyering@lucent.com>
+
+       * dirfd.c, dirfd.h: New files.
+       * Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
+
+       * hash.c (hash_print) [TESTING]: Clean up.
+
+2001-10-22  Paul Eggert  <eggert@twinsun.com>
+
+       * hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
+       to avoid a warning if -Wall.
+
+2001-10-21  Paul Eggert  <eggert@twinsun.com>
+
+       * regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
+
+2001-10-21  Jim Meyering  <meyering@lucent.com>
+
+       * obstack.c (_): Honor the setting of ENABLE_NLS.  Otherwise,
+       this code would end up calling gettext even in packages built
+       with --disable-nls.
+       * getopt.c (_): Likewise.
+       * regex.c (_): Likewise.
+
+2001-10-20  Paul Eggert  <eggert@twinsun.com>
+
+       * error.c (strerror_r): Do not declare unless !_LIBC.
+       Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
+       Use strerror_r that is only a macro, even if it is not a function.
+       (strerror): Check for HAVE_DECL_STRERROR before declaring.
+       (private_strerror): Use prototypes, not old-style function definition.
+       (print_errno_message): New function.
+       Support the POSIX 'int'-flavored strerror_r, as well as the traditional
+       char*-flavored one.
+       (error_tail, error, error_at_line): Use it.
+
+2001-10-11  Jim Meyering  <meyering@lucent.com>
+
+       * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
+       and quote_n (1, ... to avoid clobbering a buffer.
+
+2001-10-05  Jim Meyering  <meyering@lucent.com>
+
+       * Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
+       * hash-pjw.c: New file (factored out of fileutils' remove.c).
+       * hash-pjw.h: New file.
+
+2001-09-30  Jim Meyering  <meyering@lucent.com>
+
+       * mountlist.c [MOUNTED_GETFSSTAT]:
+       Include <sys/ucred.h>, for Apple Darwin.
+       Include sys/mount.h and sys/fs_types.h only if available.
+       (FS_TYPE): Define.
+       (read_filesystem_list): Use FS_TYPE.
+
+2001-09-29  Paul Eggert  <eggert@twinsun.com>
+
+       * exclude.c (excluded_filename): 0 -> false, since it's
+       a boolean context.
+
+2001-09-28  Paul Eggert  <eggert@twinsun.com>
+
+       Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
+       #defines strtoimax.  Also treat the other strto* functions
+       like strtoimax.
+
+       * xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
+       (strtoul): Do not declare if HAVE_DECL_STRTOUL.
+       (strtoimax, strtoumax): Do not declare if already defined as a macro.
+
+2001-09-26  Jim Meyering  <meyering@lucent.com>
+
+       Most macros in unlocked-io.h had the wrong number of arguments.
+       * gen-uio: New script.
+       (USE_UNLOCKED_IO): Define to 1 if not already defined.
+       * unlocked-io.hin: Remove file.
+       * Makefile.am (unlocked-io.h): Rewrite to use a separate script,
+       rather than trying to embed it here.
+       (EXTRA_DIST): Add gen-uio.  Remove unlocked-io.hin
+       Reported by Padraig Brady.
+
+2001-09-25  Volker Borchert  <bt@teknon.de>
+
+       * gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
+
+2001-09-23  Jim Meyering  <meyering@lucent.com>
+
+       * mountlist.c: Remove useless parentheses in #if directives.
+       (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
+       the deprecated MOUNTED symbol is no longer defined in mntent.h.
+
+2001-09-22  Jim Meyering  <meyering@lucent.com>
+
+       * localcharset.c: Update from latest gettext.
+       * config.charset: Likewise.
+
+2001-09-20  Jim Meyering  <meyering@lucent.com>
+
+       * xstrtol.c (strtoimax): Guard declaration with
+       `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
+       The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
+       have their own, conflicting declaration of strtoimax in sys/inttypes.h.
+       (strtoumax): Likewise, for completeness (it wasn't necessary).
+
+2001-09-06  Paul Eggert  <eggert@twinsun.com>
+
+       * strtoimax.c (HAVE_LONG_LONG):
+       Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
+       (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
+       to work around bug in IBM C compiler.
+
+2001-09-16  Jim Meyering  <meyering@lucent.com>
+
+       * mkdir.c: New file.
+
+2001-09-04  Paul Eggert  <eggert@twinsun.com>
+
+       * xgetcwd.c: Revert some of the previous change; intead,
+       fix the HAVE_GETCWD_NULL code to behave more like the
+       !HAVE_GETCWD_NULL code used to.
+
+       Include "xalloc.h".
+       (xgetcwd): Do not return NULL when memory is exhausted; instead,
+       invoke xalloc_die.
+
+2001-09-04  Paul Eggert  <eggert@twinsun.com>
+
+       * xreadlink.c (xreadlink): Omit size_t* arg.  All uses changed.
+       Use ssize_t, not int, to store result of readlink.
+       Check for ssize_t overflow as well as size_t overflow,
+       as POSIX says the result of readlink is implementation-defined
+       when ssize_t overflows.
+       Remove unnecessary cast to char*.
+       Use free+malloc instead of realloc, as the storage doesn't need
+       to be preserved and it's clearer and can be more efficient that way.
+       (SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
+       * xreadlink.h (xreadlink): Update prototype.
+
+2001-09-03  Paul Eggert  <eggert@twinsun.com>
+
+       * exclude.c (fnmatch_no_wildcards): Fix confusion between
+       usage of FNM_CASEFOLD and FNM_LEADING_DIR.  The bug was
+       spotted by Jim Meyering.
+
+2001-09-03  Jim Meyering  <meyering@lucent.com>
+
+       * xreadlink.c (xreadlink): Preserve errno around `free' during failure.
+
+2001-09-03  Paul Eggert  <eggert@twinsun.com>
+
+       * xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
+       like the HAVE_GETCWD_NULL code.
+       Include pathmax.h if not HAVE_GETCWD.
+       Do not include xalloc.h.
+       (INITIAL_BUFFER_SIZE): New symbol.
+       Do not use xmalloc / xrealloc, since the caller is responsible for
+       handling errors.  Preserve errno around `free' during failure.
+       Do not overrun buffer when using getwd.
+
+2001-09-03  Paul Eggert  <eggert@twinsun.com>
+
+       * xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
+       __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
+
+2001-09-02  Jim Meyering  <meyering@lucent.com>
+
+       * error.c: Update from GNU libc.
+
+2001-09-01  Jim Meyering  <meyering@lucent.com>
+
+       * xreadlink.c: New file.
+       * xreadlink.h: New file.
+       * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
+
+       * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
+       doesn't conflict with sparc-sun-solaris2.7's definition in
+       /usr/include/sys/int_types.h.
+
+       * exclude.c: Use `""', not `<>' to #include non-system header files.
+       (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
+       and strncasecmp as r-values.  Unixware didn't have declarations.
+
+2001-08-31  Jim Meyering  <meyering@lucent.com>
+
+       * xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
+       Use an initial, malloc'd, buffer of length 128 rather than
+       a statically allocated one of length 1024.
+
+2001-08-30  Paul Eggert  <eggert@twinsun.com>
+
+       * xgetcwd.c: Don't include pathmax.h.
+       Include stdlib.h and unistd.h if available.
+       Include xalloc.h.
+       (xmalloc, xstrdup, free): Remove decls.
+       (xgetcwd): Don't assume sizes fit in unsigned.
+       Check for overflow when computing sizes.
+       Simplify reallocation code.
+
+2001-08-28  Paul Eggert  <eggert@twinsun.com>
+
+       * Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
+
+       * strtoimax.c: Renamed from strtoxmax.c, removing the
+       old strtoimax.c.
+
+       Also, make the following further changes to make this file's
+       configuration more similar to that of strtol.c:
+       (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED.  All uses changed.
+       (strtoumax, uintmax_t, strtoull, strtol): Remove.
+       (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
+       (strtoimax): Renamed from strtoumax.  All uses of unsigned values
+       changed to signed values.
+
+       And make the following changes as well:
+       Fix copyright notice, as 1999 was missing.
+       (verify): New macro.
+       (strtoimax): Check sizes at compile-time, not run-time.
+       Prefer strtol to strtoll if both work.
+       (main): Remove; it was not that useful and was a pain to maintain.
+
+       * strtoumax.c: Include strtoimax.c, not strtouxmax.c.
+
+2001-08-30  Paul Eggert  <eggert@twinsun.com>
+
+       * savedir.c (savedir): Remove size parameter, as POSIX says that
+       a directory's st_size can have an arbitrary value, so the old
+       usage could waste an arbitrary amount of memory.  All uses
+       changed.
+       * savedir.h: Update prototype.
+
+2001-08-30  Paul Eggert  <eggert@twinsun.com>
+
+       * xstrtol.c (strtoimax): New decl.
+
+2001-08-28  Paul Eggert  <eggert@twinsun.com>
+
+       * xstrtol.h: Add copyright notice.
+       (_DECLARE_XSTRTOL): Improve quality of diagnostic for
+       LONGINT_INVALID_SUFFIX_CHAR.
+
+2001-08-30  Paul Eggert  <eggert@twinsun.com>
+
+       * quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
+       tm to be declared.
+
+2001-08-30  Paul Eggert  <eggert@twinsun.com>
+
+       * hash.c: Remove '2001' from copyright notice.
+
+2001-08-30  Paul Eggert  <eggert@twinsun.com>
+
+       * full-write.h: New file.
+       * Makefile.am (libfetish_a_SOURCES): Add full-write.h.
+       * full-write.c: Correct credits, as cccp.c no longer
+       exists and anyway it was so heavily changed from the old cccp
+       code as to be unrecognizable.  Include full-write.h.
+       (full_write) Return size_t, with short writes meaning failure.
+       All callers changed.  This fixes a bug with large buffers
+       on 64-bit hosts.
+       * utime.c: Include full-write.h.
+
+2001-08-30  Paul Eggert  <eggert@twinsun.com>
+
+       Merge 'exclude' changes from tar 1.13.22.
+       This fixes one or two unlikely storage allocation overflow bugs,
+       but doesn't change user-visible behavior otherwise.
+
+2001-08-30  Paul Eggert  <eggert@twinsun.com>
+
+       * exclude.c (bool): Declare, perhaps by including stdbool.h.
+       (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
+       (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
+       Include if available.
+       (<xalloc.h>): Include
+       (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
+       (verify): New macro.  Use it to verify that EXCLUDE macros do not
+       collide with FNM macros.
+       (struct patopts): New struct.
+       (struct exclude): Use it, as exclude patterns now come with options.
+       (new_exclude): Support above changes.
+       (new_exclude, add_exclude_file):
+       Initial size must now be a power of two to simplify overflow checking.
+       (free_exclude, fnmatch_no_wildcards): New function.
+       (excluded_filename): No longer requires options arg, as the options
+       are determined by add_exclude.  Now returns bool, not int.
+       (excluded_filename, add_exclude):
+       Add support for the fancy new exclusion options.
+       (add_exclude, add_exclude_file): Now takes int options arg.
+       Check for arithmetic overflow when computing sizes.
+       (add_exclude_file): xrealloc might modify errno, so don't
+       realloc until after errno might be used.
+
+       * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
+       New macros.
+       (free_exclude): New decl.
+       (add_exclude, add_exclude_file): Now takes int options arg.
+       (excluded_filename): No longer requires options arg, as the options
+       are determined by add_exclude.  Now returns bool, not int.
+
+2001-08-30  Paul Eggert  <eggert@twinsun.com>
+
+       * alloca.c (alloca): Arg is of type size_t, not unsigned.
+
+2001-08-27  Jim Meyering  <meyering@lucent.com>
+
+       * Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
+
+       * version-etc.c (N_): Remove definition.
+       Revert most of last change.
+       Instead, simply don't mark the `Copyright...' string for translation.
+       Based on advice from Paul Eggert.
+
+       * strtoxmax.c: Tweak comment.
+
+2001-08-26  Jim Meyering  <meyering@lucent.com>
+
+       * version-etc.c (version_etc_copyright_fmt): Replace literal year
+       of copyright with `%s' so translators don't get an untranslated
+       message in 2002.
+       (COPYRIGHT_YEAR): Define.
+       (version_etc): Use fprintf rather than fputs.
+       Suggestion from Ulrich Drepper.
+
+       * Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
+
+       * strtoll.c: New file, from GNU libc.
+       * xstrtoimax.c: New file.
+
+       * xstrtol.h: Add xstrtoimax.
+       * strtoumax.c: New file.  Simply include "strtoumax.c".
+       * strtoimax.c: New file.  Likewise, but first define STRTOUXMAX_SIGNED.
+
+       * strtoumax.c: Factor to work both for unsigned and signed types, ...
+       * strtoxmax.c: ... then renamed to this.
+
+2001-08-13  Paul Eggert  <eggert@twinsun.com>
+
+       * Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
+       Port to Solaris 8, where 'sed' requires a space after the 'r'
+       command, and where sh dislikes "$/".  Clean up the spacing a bit.
+       Redirect output to $tmp just once.
+
+2001-08-12  Paul Eggert  <eggert@sic.twinsun.com>
+
+       * addext.c (<errno.h>): Include.
+       (errno): Declare if not defined.
+       (addext): Work correctly when pathconf returns -1 and leaves
+       errno alone because there is no limit.  Also, work even if
+       pathconf returns a value greater than SIZE_MAX.
+
+2001-08-12  Jim Meyering  <meyering@lucent.com>
+
+       * xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
+       Simply `return getcwd (NULL, 0);'.
+       [! (defined __GLIBC__ && __GLIBC__ >= 2)]:
+       Use 1300 as initial value for length, not PATH_MAX.
+
+       * pathmax.h: Clean up cpp syntax.
+
+2001-08-12  Jim Meyering  <meyering@lucent.com>
+
+       * gettimeofday.c: New file.
+       * gtod.h: New file.
+       * Makefile.am (libfetish_a_SOURCES): Add gtod.h.
+
+2001-08-04  Jim Meyering  <meyering@lucent.com>
+
+       * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
+       to get in sync with glibc.
+
+2001-08-03  Paul Eggert  <eggert@twinsun.com>
+
+       The following changes are from gettext 0.10.39 as maintained by
+       Bruno Haible.
+
+       * mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
+       Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
+       with inverted sense.  All uses changed.
+
+       * mbswidth.c: Don't include <limits.h>.
+       Include <stdlib.h> and <string.h> unconditionally.
+       (iswcntrl, mbsinit, ISCNTRL): New macros.
+       (mbsnwidth): Use K&R style function declarations.
+       Don't bother checking for MB_LEN_MAX == 1, since the compiler
+       can optimize it when MB_CUR_MAX == 1.
+       The width of control characters is zero, not 1.
+
+2001-07-15  Jim Meyering  <meyering@lucent.com>
+
+       * Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
+       (BUILT_SOURCES): Add unlocked-io.h.
+       (io_functions): Define.
+       (unlocked-io.h): New rule.
+       (DISTCLEANFILES): Add unlocked-io.h.
+       (all-local): Depend on unlocked-io.h, to ensure it is created.
+
+       * unlocked-io.hin: New file
+
+       * regex.c: Update from glibc.
+
+2001-07-05  Jim Meyering  <meyering@lucent.com>
+
+       * Makefile.am (noinst_HEADERS): Remove definition, per new automake
+       recommendation.
+       (libfetish_a_SOURCES): Put all .h files here instead.
+       Remove a thus-exposed (better checks in automake) duplicate and
+       two unnecessary .h files.
+
 2001-06-11  Jim Meyering  <meyering@lucent.com>
 
        * regex.c: Update from GNU libc.
 
 2001-05-11  Paul Eggert  <eggert@twinsun.com>
 
-       * lib/Makefile.am (libfetish_a_SOURCES):
+       * Makefile.am (libfetish_a_SOURCES):
        Add strftime.c, since we now compile it on all hosts.
 
-       * lib/strftime.c (my_strftime):
+       * strftime.c (my_strftime):
        Define to nstrftime if emacs, but only if my_strftime is not defined.
        (extra_args, extra_args_spec, extra_args_spec_iso): Rename from
        ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
        Add dup-safer.c, fopen-safer.c.
        (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
 
-       * dup-safer.c, fopen-safer.c, stdio-safer.h,
-       lib/unistd-safer.h: New files.
+       * dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
 
 2001-02-25  Paul Eggert  <eggert@twinsun.com>