Optimization: Avoid unnecessary stat() calls.
[gnulib.git] / lib / ChangeLog
index 673c678..a0e46ab 100644 (file)
@@ -1,3 +1,717 @@
+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.