Add strtok_r.
[gnulib.git] / lib / ChangeLog
index ebf591c..c8ff758 100644 (file)
+2004-11-11  Simon Josefsson  <jas@extundo.com>
+
+       * strtok_r.h, strtok_r.c: New file.
+
+2004-11-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getopt_.h (__getopt_argv_const): New macro, to be used so that
+       we can stop lying to compilers about the constness of argv when we
+       are compiled outside glibc.
+       (getopt, getopt_long, getopt_long_only): Use it.
+       * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal,
+       getopt): Likewise.
+       * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
+       _getopt_long_only_r): Likewise.
+       * getopt_int.h (_getopt_internal, _getopt_internal_r, _getopt_long_r,
+       _getopt_long_only_r): Likewise.
+
+       * getopt_.h [defined __GETOPT_PREFIX && !defined __need_getopt]:
+       Include <stdlib.h> and <stdio.h>, and <unistd.h> if available.
+       Then rename getopt to __GETOPT_PREFIX##getopt, and so forth for
+       the other external symbols.
+       (getopt) [!defined __GNU_LIBRARY]: Use prototype, not old-style
+       declaration, since the above renaming now works around collisions.
+
+2004-11-11  Jim Meyering  <jim@meyering.net>
+
+       * linebreak.c: Remove trailing blanks.
+       * alloca_.h: Likewise.
+       * acosl.c: Likewise.
+       * euidaccess.c: Likewise.
+       * allocsa.h: Likewise.
+
+2004-11-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * mktime.c (SHR): New macro, which is a portable
+       substitute for >> that should work even on Crays.
+       (TIME_T_MIDPOINT, ydhms_diff, __mktime_internal): Use it.
+       Problem reported by Mark D. Baushke in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2004-11/msg00071.html>.
+       * getdate.y (SHR): Likewise.
+       (tm_diff): Use it.
+       * strftime.c (SHR): Likewise.
+       (tm_diff): Use it.
+       * quotearg.c (struct quoting_options): Use unsigned int for
+       quote_these_too, so that right shifts are well defined.  All uses
+       changed.
+
+2004-11-10  Simon Josefsson  <jas@extundo.com>
+
+       * getaddrinfo.h, getaddrinfo.c: New files.
+
+2004-11-10  Jim Meyering  <jim@meyering.net>
+
+       Ensure that no close failure goes unreported.
+       * closeout.c (close_stdout): Always close stdout.  I.e., don't
+       return early when it seems there's nothing to flush.
+       Don't include __fpending.h.
+
+2004-11-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * strftime.c (DO_MULTIBYTE): Check for wchar.h, too.
+
+2004-11-05  Bruno Haible  <bruno@clisp.org>
+
+       * readlink.c: Include stddef.h, needed for size_t on Woe32.
+       Reported by Mark D. Baushke <mdb@cvshome.org>.
+
+2004-11-04  Bruno Haible  <bruno@clisp.org>
+
+       2004-09-11  Bruno Haible  <bruno@clisp.org>
+               * allocsa.valgrind: New file.
+       2004-02-06  Bruno Haible  <bruno@clisp.org>
+               * allocsa.h (sa_alignof): Define differently with HP-UX cc, to
+               avoid a bug of this cc on HP-UX 10.20 dealing with enums.
+               Reported by Christopher Seip <chris.seip@hp.com>.
+
+2004-11-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xreadlink.c (xreadlink): AIX and HP-UX readlink return -1
+       with errno == ERANGE if the buffer is too small.
+       Problem reported by Mark D. Baushke.
+
+2004-11-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xreadlink.c (MAXSIZE): New macro.
+       (xreadlink): Use it instead of SSIZE_MAX.  Ensure initial buffer
+       size does not exceed MAXSIZE.  Avoid cast.
+       As suggested by Mark D. Baushke in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2004-11/msg00009.html>,
+       if readlink fails with buffer size just under MAXSIZE, try again
+       with MAXSIZE.
+
+2004-11-02  Derek R. Price  <derek@ximbiot.com>
+       and  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y [!TEST]: Include <stdio.h>, since we use sprintf now.
+       (get_date): Overparenthesize to avoid GCC warning.
+
+2004-11-02  Bruno Haible  <bruno@clisp.org>
+
+       * setenv.h (unsetenv): Define as a macro if the system's unsetenv()
+       function returns void.
+
+2004-11-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/getpass.c (fflush_unlocked, flockfile, funlockfile)
+       (funlockfile, fputs_unlocked, putc_unlocked): Don't define if
+       already declared.
+
+2004-10-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y: Add support for TZ="foo" within a date string.
+       Fix some bugs near time_t boundaries.  Reject dates with
+       out-of-range components, e.g., "Sept 31".
+       Include <stdlib.h>, "setenv.h", "xalloc.h".
+       (ISDIGIT_LOCALE): Remove; unused.
+       Note that the TZ and time functions used here are not reentrant.
+       (mktime_ok, get_tz): New functions.
+       (TZBUFSIZE): New constant.
+       (get_date): Parse leading TZ="foo".  Reject out-of-range components;.
+       This requires that we sometimes generate our own TZ="XXX..." setting.
+
+2004-10-27  Derek R. Price  <derek@ximbiot.com>
+
+       * mktime.c (not_equal_tm): Remove redundant check.
+
+2004-10-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y: Use Bison 1.875 features, and some minor
+       code cleanups.  This change does not affect semantics.
+       Don't include <stdlib.h>; no longer needed.
+       Don't include unlocked-io.h; only the "#if TEST" code uses
+       stdio, and performance isn't crucial there.
+       (PC, YYLEX_PARAM, YYPARSE_PARAM): Remove; replaced by
+       Bison 1.875 features as described below.
+       All uses of "PC." replaced by "pc->".
+       (YYSTYPE): Add a forward declaration.
+       (yylex, yyerror): Use full prototypes in forward decls.
+       Use "%pure-parser" rather than obsolescent "%pure_parser".
+       Use %parse-param and %lex-param instead of obsolescent
+       YYPARSE_PARAM and YYLEX_PARAM.
+       (meridian_table, month_and_day_table, time_units_table,
+       relative_time_table, time_zone_table, military_table,
+       lookup_zone, lookup_word, get_date):
+       Use NULL instead of 0 where appropriate.
+       (to_hour): Avoid abort (), to avoid a dependency on
+       stdlib.h.
+       (yyerror, yylex): Now accepts parser_control * arg.
+       (main) [TEST]: Use '\0' rather than 0 for char.
+
+2004-10-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getpagesize.c (getpagesize): Don't assume <sys/param.h> exists.
+       It's now the caller's responsibility to handle the case where
+       !HAVE_GETPAGESIZE && !defined getpagesize.
+
+       * mktime.c (leapyear): Arg is long int, not int.
+
+2004-10-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argp-fs-xinl.c, argp-xinl.c: Update from glibc.
+
+2004-10-12  Simon Josefsson  <jas@extundo.com>
+
+       * getpass.c (fflush_unlocked, flockfile, funlockfile)
+       (fputs_unlocked, putc_unlocked) [!_LIBCS && !USE_UNLOCKED_IO]: Map
+       to real functions.
+
+2004-10-11  Yoann Vandoorselaere  <yoann@prelude-ids.org>
+
+       * vsnprintf.h: New file.
+       * vsnprintf.c: New file.
+
+2004-10-07  Bruno Haible  <bruno@clisp.org>
+
+       * snprintf.c (snprintf): Avoid a memory allocation if the result fits
+       into the provided buffer.
+
+2004-10-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * diacrit.c, diacrit.h: Add GPL notice.
+
+       * atanl.c, logl.c: Add GPL notice, to match glibc's added LGPL notice.
+       * atanl.c (atanl): Keep the code as similar to glibc as possible.
+       * logl.c (logl): Keep the code as similar to glibc as possible.
+       This avoids a potential constant-folding bug.
+
+2004-10-05  Bruno Haible  <bruno@clisp.org>
+
+       * strsep.h: Don't declare strsep() if HAVE_STRSEP.
+
+2004-10-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xalloc.h (xmemdup): Renamed from xclone.  All uses changed.
+       * xmalloc.c (xmemdup): Likewise.
+       * xalloc.h (CCLONE, CLONE, NEW, XCALLOC, XMALLOC, XREALLOC,
+       XFREE): Remove these long-obsolescent macros.
+       * xmalloc.c (xstrdup): Implementation moved here from xstrdup.c
+       * xstrdup.c: Remove.
+
+       * regex.c (re_comp): Cast gettext return value to char *,
+       Problem reported by Martin Neitzel via Mark D. Baushke.
+
+2004-10-04  Simon Josefsson  <jas@extundo.com>
+
+       * error.c, md5.c, regex.c: Use '#if USE_UNLOCKED_IO' instead of
+       '#ifdef USE_UNLOCKED_IO'.
+
+2004-10-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argmatch.c, closeout.c, error.c, exclude.c, getdate.y,
+       getndelim2.c, getpass.c, getusershell.c, linebuffer.c,
+       md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c,
+       regex.c, sha1.c, version-etc.c, yesno.c:
+       Include "unlocked-io.h" only if USE_UNLOCKED_IO.
+       * unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now
+       the includer's responsibility.
+
+       Sync from coreutils.
+
+       * modechange.c (mode_compile): Don't decrement a pointer that
+       points to the start of a string, as the C Standard says the
+       resulting behavior is undefined.
+
+       * backupfile.h (enum backuptype): Rename none -> no_backups,
+       simple -> simple_backups, numbered_existing ->
+       numbered_existing_backups, numbered -> numbered_backups
+       to avoid shadowing problems.  All uses changed.
+       * argmatch.c (enum backuptype) [defined TEST]: Likewise.
+       * backupfile.c (check_extension, numbered_backup):
+       Rename locals to avoid shadowing 'basename'.
+       * backupfile.h (VALID_BACKUP_TYPE): Don't evaluate arg more than
+       once.
+
+       * .cppi-disable: Add getopt_.h, getopt_int.h.
+       * .cvsignore: Add getopt.h.
+
+2004-10-04  Simon Josefsson  <jas@extundo.com>
+
+       * memmem.h: New file.
+       * memmem.c: New file, taken from glibc.
+
+2004-10-02  Jim Meyering  <jim@meyering.net>
+
+       * dirfd.h, getpagesize.h: Add copyright notice.
+
+2004-10-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * snprintf.c: Remove comments as to why each header is needed.
+
+2004-10-01  Yoann Vandoorselaere <yoann@prelude-ids.org>
+
+       * strsep.h: New file.
+       * strsep.c: New file.
+
+2004-10-01  Simon Josefsson  <jas@extundo.com>
+
+       * snprintf.c (snprintf): Handle size==0.
+
+2004-10-01  Simon Josefsson  <jas@extundo.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       * snprintf.c: Include <stdarg.h>, <stdlib.h>, <string.h>.
+       (snprintf): Declare 'args'.
+
+2004-09-30  Simon Josefsson  <jas@extundo.com>
+
+       * snprintf.h, snprintf.c: New files.
+
+2004-09-30  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * argp-help.c (canon_doc_option): Fixed coredump if *name==NULL
+       (hol_entry_help): Never translate an empty string.
+       Do not translate option tag (opt->name) if OPTION_NO_TRANS is set
+       * argp.h (OPTION_NO_TRANS): New option.
+
+2004-09-29  Oskar Liljeblad  <oskar@osk.mine.nu>
+
+       * xvasprintf.c: Include xalloc.h.
+       (xvasprintf): Use xalloc_die, not xmalloc_die.
+
+2004-09-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dummy.c: Change copyright notice to FSF, and license to GPL.
+
+2004-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argp-pvh.c (argp_program_version_hook): Provide initial value.
+       Problem reported by Bruno Haible in:
+       http://lists.gnu.org/archive/html/bug-tar/2004-09/msg00023.html
+
+2004-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * mempcpy.h: Wrap the entire include file inside #ifndef mempcpy,
+       in case some system header has #define'd it.  Problem reported by
+       Soeren D. Schulze in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2004-09/msg00017.html>.
+
+2004-09-08  Bruno Haible  <bruno@clisp.org>
+
+       * stdint_.h.in: New file, taken from GNU clisp.
+
+2004-09-08  Oskar Liljeblad  <oskar@osk.mine.nu>
+
+       * xvasprintf.h: New file.
+       * xvasprintf.c: New file.
+       * xasprintf.c: New file.
+
+2004-09-08  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (VASNPRINTF): Signal EOVERFLOW if the resulting length
+       is > INT_MAX.
+       * vasprintf.c (vasprintf): Don't test for length > INT_MAX any more.
+
+2004-08-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Import from coreutils.
+       * userspec.c: Don't use <alloca.h>, so that we don't use alloca on
+       strings on unbounded length.  alloca's performance benefits aren't
+       that important here.
+       (V_STRDUP): Remove.
+       (parse_with_separator): New function, with most of the internals
+       of the old parse_user_spec.  Allow user to omit both user and group,
+       for compatibility with FreeBSD.
+       Clone only the user name, not the entire spec.
+       Do not set *uid, *gid unless entirely successful.
+       Avoid memory leak in some failing cases.
+       Fix regression for USER.GROUP reported by Dmitry V. Levin in
+       <http://lists.gnu.org/archive/html/bug-coreutils/2004-08/msg00102.html>
+       (parse_user_spec): Rewrite to use parse_with_separator.
+
+2004-08-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argp-help.c, argp-parse.c: Use "gettext.h" instead of
+       its complicated substitute.
+       * argp-help.c: Include <errno.h>, for program_invocation_short_name
+       and program_invocation_name.
+       (__argp_basename) [!_LIBC]: Remove; the only use was
+       replaced by its body.
+       (__argp_short_program_name): Change condition from
+       !defined __argp_short_program_name to
+       ! (defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME),
+       to match argp-namefrob.h.
+       (__argp_failure): Don't assume strerror_r returns char *.
+       * argp-parse.c (N_): Define unconditionally.
+       (argp_default_options): Fill out initializers with 0 to avoid
+       gcc warnings.
+
+2004-08-12  Simon Josefsson  <jas@extundo.com>
+
+       * getopt.c, getopt1.c: Remove ELIDE_CODE hack.
+       * getopt_.h: Renamed from getopt.h.
+
+2004-08-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from coreutils.
+
+       * fnmatch.c (WIDE_CHAR_SUPPORT): Don't set to 1 if missing
+       wmemchr or wmemcpy.  Problem reported by Robert Dahlem
+       for Reliant Unix 5.43.
+
+       * obstack.c: Include <inttypes.h> and <stdint.h> if available.
+       (union fooround): Use uintmax_t, not long int.
+       The rest is a merge from libc:
+       [defined _LIBC]: Include <shlib-compat.h>.
+       (_obstack) [defined _LIBC]: Remove after 2.3.4.
+
+       * settime.c (settime): Recode to avoid warning with Sun Forte C 6U2.
+
+       * strverscmp.c: Convert to UTF-8.
+
+2004-08-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * obstack.h (obstack_empty_p):
+       Don't assume that chunk->contents is suitably aligned.
+       * obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk):
+       Likewise. Problem reported by Benno in
+       <http://sources.redhat.com/ml/libc-alpha/2004-08/msg00055.html>.
+
+       * chown.c (rpl_chown): Work even if the file is writeable but not
+       readable.  This could be improved further but it'd take some work.
+
+2004-08-08  Simon Josefsson  <jas@extundo.com>
+
+       * xgethostname.c: Don't include error.h (not used).
+
+       * getpass.h: Add.
+       * getpass.c: Include getpass.h first.
+
+2004-08-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xalloc-die.c: New files.
+       * xalloc.h (xalloc_fail_func, xalloc_msg_memory_exhausted): Remove.
+       All uses removed.
+       * xmalloc.c (xalloc_fail_func, xalloc_msg_memory_exhausted): Likewise.
+       Move inclusions of gettext.h, error.h, exitfail.h to xalloc-die.c.
+       (_, N_, xalloc_die): Move to xalloc-die.c.
+       * userspec.c (parse_user_spaec): Use xstrdup rather than strdup,
+       so that we needn't mess with xalloc_msg_memory_exhausted.
+
+       * sha1.h: Renamed from sha.h.
+       (SHA1_H): Renamed from _SHA_H.
+       (sha1_ctx): Renamed from sha_ctx.
+       (sha1_init_ctx): Renamed from sha_init_ctx.
+       (sha1_process_block): Renamed from sha_process_block.
+       (sha1_process_bytes): Renamed from sha_process_bytes.
+       (sha1_finish_ctx): Renamed from sha_finish_ctx.
+       (sha1_read_ctx): Renamed from sha_read_ctx.
+       (sha1_stream): Renamed from sha_stream.
+       (sha1_buffer): Renamed from sha_buffer.
+       * sha1.c: Likewise; renamed from sha.c.
+       Do not include <sys/types.h>.
+       Include <stddef.h> rather than <stdlib.h>.
+
+2004-08-08  Bruno Haible  <bruno@clisp.org>
+
+       * pathname.h (FILE_SYSTEM_PREFIX_LEN): Renamed from
+       FILESYSTEM_PREFIX_LEN.
+       * progreloc.c: Likewise.
+       * concatpath.c (concatenated_pathname): Use FILE_SYSTEM_PREFIX_LEN.
+
+2004-08-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from tar.
+       * argp-help.c (make_hol, hol_append): Don't assume that
+       SIZE_MAX is a valid preprocessor constant.
+       (__argp_basename): Change from "#ifndef _LIBC"
+       to "#ifndef __argp_short_program_name", so that
+       we don't compile these functions for tar.
+
+       More merges from coreutils.
+       * raise.c, readtokens0.h, readtokens0.c, strftime.h, utimens.h,
+       utimens.c, utimecmp.h, utimecmp.c, xnanosleep.h, xnanosleep.c,
+       yesno.h: New files.
+       * addext.c: Remove; no longer needed.
+       * yesno.c, argmatch.h, argmatch.c, backupfile.h, backupfile.c,
+       euidaccess.c, filemode.c, closeout.c, dup2.c, exclude.c,
+       fileblocks.c, filemode.c, fnmatch.c, fnmtahc_loop.c,
+       fopen-safer.c, fsusage.c, fsusage.h, ftruncate.c, full-write.c,
+       getdate.y, getloadavg.c, getugroups.c, hard-locale.c, hard-locale.h,
+       hash.c, human.c, human.h, lchown.c, lchown.h, makepath.c, makepath.h,
+       md5.c, md5.h, memchr.c, memcoll.c, memrchr.c, modechange.c,
+       modechange.h, mountlist.c, mountlist.h, nanosleep.c, posixtm.c,
+       putenv.c, quotearg.c, quotearg.h, readtokens.c, readutmp.c,
+       readutmp.h, rmdir.c, safe-read.c, save-cwd.c, savedir.c, setenv.c,
+       sig2str.c, stat.c, strtoimax.c, strverscmp.c, userspec.c, utime.c,
+       version-etc.c., xgethostname.c, xmemcoll.c, xreadlink.c, xstrtod.c,
+       xstrtod.h, xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtoumax.c:
+       Import changes from coreutils.
+
+2004-08-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from coreutils.
+
+       * .gdb-history: Remove; this doesn't belong here.
+
+       * c-strtod.c, c-strtod.h, c-strtold.c, cycle-check.c,
+       cycle-check.h, dev-ino.h, canonicalize.h, canonicalize.c,
+       fcntl-safer.h, fcntl-safer.c, getcwd.c: New files.
+
+       * dirname.h: Include <stdbool.h>.
+       (FILE_SYSTEM_PREFIX_LEN): Renamed from FILESYSTEM_PREFIX_LEN,
+       for consistency with POSIX terminology.  All uses changed.
+       (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): New macros.
+       (strip_trailing_slashes): Use bool for booleans.
+       * stripslash.c (strip_trailing_slashes): Likewise.
+
+       * error.c: Work around bug in OpenBSD 3.4 sterror_r: it
+       sometimes returns a positive errno value even when it succeeds.
+       (print_errno_message) [!LIBC]: Fall back on strerror if
+       __strerror_r fails.
+
+       * path-concat.c (mempcpy): Don't define if a system header defines it.
+       Don't include stdio.h, stdlib.h, unistd.h, strdup.h.
+       (longest_relative_suffix): New function.
+       (path_concat): Use it.  Assume first argument is not NULL.
+       Port to DOS.  Omit redundant separators.
+       Report an error instead of returning NULL.
+       Use mempcpy instead of memcpy.
+       (xpath_concat): Remove: not declared or used.
+
+       * same.h: Include <stdbool.h>
+       (same_name): Return bool, not int.
+       * same.c (same_name): Likewise.
+       (errno): Don't declare; we assume C89 or better now.
+
+       * stat-macros (S_ISCTG, S_ISOFD, S_ISOFL): New macros,
+       if not already defined.
+
+       * xgetcwd.c (errno): Don't declare; we assume C89 or better now.
+       * dup-safer.c (errno): Likewise.
+
+2004-08-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fatal.c, fatal.h: Remove as the "fatal" module wasn't used or
+       working.
+
+2004-08-03  Simon Josefsson  <jas@extundo.com>
+
+       * strdup.h: Only use HAVE_DECL_STRDUP if defined.
+       * progname.h: Don't include stdbool.h.
+
+2004-08-02  Simon Josefsson  <jas@extundo.com>
+
+       * getsubopt.h: New file, with comments from Bruno Haible.
+       * getsubopt.c: New file, from glibc, but slightly modified based on
+       suggestions from Paul Eggert <eggert@cs.ucla.edu>.
+
+2004-08-01  Simon Josefsson  <jas@extundo.com>
+
+       * xgetdomainname.c: Include stdlib.h, for free().
+
+2004-07-16  Simon Josefsson  <jas@extundo.com>
+
+       * dummy.c: New file.
+
+2004-07-16  Bruno Haible  <bruno@clisp.org>
+
+       * backupfile.h: Add extern "C" for C++.
+       * closeout.h: Likewise.
+       * copy-file.h: Likewise.
+       * findprog.h: Likewise.
+       * full-write.h: Likewise.
+       * pathname.h: Likewise.
+       * progname.h: Likewise.
+       * stpcpy.h: Likewise.
+       * stpncpy.h: Likewise.
+       * strcase.h: Likewise.
+       * strstr.h: Likewise.
+       * xalloc.h: Likewise.
+
+       * mbswidth.h: Add extern "C" for C++.
+       Reported by Albert Chin-A-Young <china@thewrittenword.com>.
+
+2004-07-09  Simon Josefsson  <jas@extundo.com>
+
+       * getndelim2.c: Include stddef.h, for ptrdiff_t.  (FreeBSD 4.9
+       failed without this.)
+
+2004-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fchown-stub.c: New file.
+
+2004-06-24  Jim Meyering  <jim@meyering.net>
+
+       * obstack.h (obstack_base): Cast to (void *), per documentation.
+
+2004-06-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argz.c, argz_.h: New files, which are autoupdated from libtool.
+
+2004-06-01  Jim Meyering  <jim@meyering.net>
+
+       * calloc.c: New file.
+
+2004-06-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y (yylex): Allow space between sign and number.
+       Problem reported by Dan Jacobson.
+
+2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
+       and  Jim Meyering  <jim@meyering.net>
+
+       Merge from coreutils CVS.
+
+       * stat-macros.h: New file, with contents from file-type.h
+       and coreutils' system.h.
+       * file-type.c: Include "stat-macros.h".
+       * file-type.h (file_type): Move all macro definitions to new file,
+       stat-macros.h.
+
+       * chown.c (rpl_chown) [CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE]:
+       Wrap old code with this conditional.
+       [CHOWN_MODIFIES_SYMLINK]: Try to work around a chown
+       function that does not dereference symlinks.
+       * lchown.c (lchown) [CHOWN_MODIFIES_SYMLINK]: Just call chown.
+
+       * xreadlink.c: Include xreadlink.h first, to catch .h file
+       dependency problems.
+       (xreadlink): Accept new arg SIZE, for efficiency.
+       All decls and uses changed.
+       * xreadlink.h: Include <stddef.h>, for size_t.
+
+       * .cppi-disable: Add alloca_.h, allocsa.h, exit.h, getndelim2.h,
+       gettext.h, localcharset.h, strdup.h, strndup.h, strtoul.c, time_r.h.
+
+       * .cvsignore: Add alloca.h, fnmatch.h, poll.h, stdbool.h, sysexits.h.
+
+2004-05-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xmalloc.c (HAVE_MALLOC, HAVE_REALLOC): Do not require these
+       macros to be defined.
+       (xnmalloc_inline, xnrealloc_inline, xcalloc): Do not die if
+       the allocator returns NULL because the requested size is zero.
+
+2004-05-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * malloc/obstack.c (_obstack) [defined _LIBC]: Bring back this
+       var.  Add comment explaining why libc still defines it.  This
+       merges the following patch from glibc:
+       http://sources.redhat.com/ml/libc-alpha/2004-05/msg00157.html
+
+2004-05-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * obstack.c (_obstack): Remove unused variable.  It hasn't been
+       present in glibc since revision 1.1 of this file.
+       * obstack.h (_obstack_free, obstack_1grow, obstack_1grow_fast,
+       obstack_alignment_mask, obstack_alloc, obstack_base,
+       obstack_blank, obstack_blank_fast, obstack_chunk_size,
+       obstack_copy, obstack_copy0, obstack_finish, obstack_grow,
+       obstack_grow0, obstack_init, obstack_int_grow,
+       obstack_int_grow_fast, obstack_make_room, obstack_memory_used,
+       obstack_next_free, obstack_object_size, obstack_ptr_grow,
+       obstack_ptr_grow_fast, obstack_room): Remove declarations of
+       nonexistent functions.
+
+2004-05-17  Derek R. Price  <derek@ximbiot.com>
+           Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argp-help.c, argp-parse.c: Assume <alloca.h> rather than freecoding.
+
+2004-05-14  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (VASNPRINTF): Correctly handle the case of a precision
+       that consists of a '.' followed by an empty digit string.
+       Patch by Tor Lillqvist <tml@iki.fi>.
+
+2004-05-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port obstack to the AS/400, where pointers are 16 bytes wide and
+       you cannot cast an integer to a valid pointer.  This patch is
+       currently waiting to be integrated into glibc; see
+       <http://sources.redhat.com/ml/libc-alpha/2004-05/msg00073.html>.
+
+       * obstack.h (__PTR_TO_INT, __INT_TO_PTR): Remove.
+       All uses of __INT_TO_PTR (PTR_TO_INT ...) replaced by __PTR_ALIGN.
+       (__BPTR_ALIGN, __PTR_ALIGN): New macros.
+       (struct obstack): temp member is now a union of a pointer and
+       an integer, instead of an integer.  All integer uses changed.
+       This does not affect the physical layout of struct obstack,
+       except on hosts (like the AS/400) where the size or alignment of
+       void * is greater than that of ptrdiff_t.
+       (obstack_finish) [! (defined __GNUC__ && defined __STDC__ &&
+       __STDC__)]: Store temporary in pointer member of union, not
+       integer member.
+       * obstack.c: Include <stddef.h>, for offsetof.
+       (struct fooalign): Remove; it doesn't need a name.
+       (union fooround): Change double to long double, and add void *.
+       (DEFAULT_ALIGNMENT): Use offsetof to compute.
+       (DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Now an enum constant,
+       not a macro.  Hence the values are always int; so remove all
+       casts-to-int in uses.
+
+2004-05-16  Paul Eggert  <eggert@cs.ucla.edu>
+           Derek Price  <derek@ximbiot.com>
+
+       * alloca.c: Include <alloca.h>, to get our interface.
+       * alloca_.h: Use __alloca on AIX, so that we don't have to
+       include <alloca.h> first.  Use C89 prototype for alloca; this
+       requires including <stddef.h> for size_t.  Use extern "C" if C++.
+       Use #elif for simplicity, since we can assume C89 now.
+       Don't try to source the system alloca.h since it will not be found
+       and to prevent recursively including its replacement.
+       * fnmatch.c: Include <alloca.h> instead of opencoding.
+       * lib/regex.c: Likewise.
+
+2004-05-16  Derek Price  <derek@ximbiot.com>
+           Paul Eggert  <eggert@cs.ucla.edu>
+
+       getline cleanup.  This changes the getndelim2 API: both order of
+       arguments, and meaning of delim2 (now uses EOF, not 0, to indicate
+       no delimiter).
+
+       * getline.c: Don't include stddef.h or stdio.h, since our
+       interface does that.
+       (getline): Always use getdelim, so that we don't have two
+       copies of this code.
+       * getndelim2.c: Include <limits.h>, <inttypes.h>, <stdint.h>
+       if available.
+       (PTRDIFF_MAX, SIZE_MAX, SSIZE_MAX): Define if not defined.
+       (GETNDELIM2_MAXIMUM): New macro.
+       (getndelim2): Reorder arguments.  delim==EOF now means no delimiter,
+       instead of the old practice of delim2==0.  All callers changed.
+       Return -1 on overflow, instead of returning junk.
+       Do not set *linesize unless allocation succeeds.
+       * getndelim2.h: Do not include stddef.h; no longer needed, now
+       that we include sys/types.h.
+       * getnline.h: Likewise.
+       * getndelim2.h (GETNLINE_NO_LIMIT): New macro.
+       (getndelim2): Reorder arguments.
+       * getnline.c (getnline, getndelim):
+       Don't discard the NMAX argument.
+       (getnline): Invoke getndelim, to avoid code duplication.
+       * getnline.h (GETNLINE_NO_LIMIT): New macro, used instead
+       of (size_t) -1 by callers of the getnline family.
+
+2004-05-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * nanosleep.c (suspended): Change its type from int to
+       sig_atomic_t volatile.
+       (first_call): Make it private to rpl_nanosleep, and have it
+       be zero initially as that's a bit faster.
+       (my_usleep): Round up fractional times instead of truncating them,
+       as this is the usual meaning for 'sleep'.
+
+       * gettime.c (gettime): Fall back on `time' if `gettimeofday'
+       doesn't work.
+       * settime.c: Include <unistd.h>, for stime (on Solaris 8, anyway).
+       (ENOSYS): Define if not defined.
+       (settime): Fall back on stime if it exists and settimeofday fails.
+       But don't bother with fallbacks if a method fails with errno == EPERM.
+
+2004-05-11  Jim Meyering  <jim@meyering.net>
+
+       Prior to this change, the save_cwd caller required read access to the
+       current directory on most systems (ones with the fchdir function).
+
+       * save-cwd.c (save_cwd) [HAVE_FCHDIR]: If opening `.' read-only
+       fails, try write-only, and finally, resort to using xgetcwd.
+
+2004-05-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * obstack.c, obstack.h: Import changes from libc.
+
+2004-04-28  Bruno Haible  <bruno@clisp.org>
+
+       * findprog.c (find_in_path): Treat Cygwin like Windows, since it also
+       implicitly appends .exe to executables.
+       * localcharset.c (ISSLASH): Treat Cygwin like Windows, since it now
+       accepts Windows pathnames.
+       * pathname.h (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat
+       Cygwin like Windows, since it now accepts Windows pathnames.
+       * progreloc.c (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat
+       Cygwin like Windows, since it now accepts Windows pathnames.
+       Reported by Derek Robert Price <derek@ximbiot.com>.
+
+2004-04-20  Jim Meyering  <jim@meyering.net>
+
+       * getndelim2.c (getndelim2): Upon realloc failure, don't leak memory.
+
+2004-04-20  Jim Meyering  <jim@meyering.net>
+            Bruno Haible  <bruno@clisp.org>
+
+       * localcharset.c (get_charset_aliases) [!VMS && !WIN32]: Don't leak
+       memory when realloc fails.
+
+2004-04-18  Jim Meyering  <jim@meyering.net>
+
+       * readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: Upon realloc failure,
+       don't leak memory and do call END_UTMP_ENT.
+
+2004-04-11  Paul Eggert  <eggert@twinsun.com>
+
+       * inttostr.h: Include <limits.h> unconditionally, since we assume C89.
+       (CHAR_BIT): Remove, since we assume C89.
+       Include <stdint.h> if available, as per current Autoconf CVS advice.
+
+2004-03-30  Paul Eggert  <eggert@twinsun.com>
+
+       * cloexec.h, cloexec.c (set_cloexec_flag): Return int
+       not bool, to be more consistent with Unix conventions.
+       Suggested by Bruno Haible.
+
+       Merge from coreutils.
+
+       * imaxtostr.c, inttostr.c, inttostr.h, offtostr.c, umaxtostr.c:
+       New files.
+
+       * getdate.h: Include stdbool.h, and timespec.h instead of
+       the usual <time.h> dance.
+       (get_date): Change signature to support fractional time stamps.
+       All callers changed.
+       * getdate.y: Include "getdate.h" first, as we can now
+       assume C89 and don't need to worry about 'const'.
+       Similarly, include "unlocked-io.h" near start, not in middle.
+       Include <limits.h>.
+       (textint.value): Use long int rather than int.
+       (textint.digits): Use size_t rather than int.
+       (BILLION, LOG10_BILLION): New constants.
+       (parser_control): New member rel_ns.  Members day_ordinal,
+       time_zone, month, day, hour, minutes, rel_year, rel_month,
+       rel_day, rel_hour, rel_minutes, rel_seconds
+       are now long int, not int.  Member seconds is now struct timespec,
+       not int.  New member timespec_seen.  Members dates_seen, days_seen,
+       local_zones_seen, rels_seen, times_seen, zones_seen are now size_t,
+       not int.
+       (%union.intval): Now long int, not int.
+       New member timespec.
+       (tSDECIMAL_NUMBER, tUDECIMAL_NUMBER): New tokens.
+       (seconds, signed_seconds, unsigned_seconds): New nonterminals.
+       (spec): Now is a timespec or an item list.
+       (timespec, items): New nonterminals.
+       (time, rel, relunit, number, get_date):
+       Add support for fractional seconds.
+       (time): Fix bug: seconds weren't cleared in "00:00 +0000" syntax.
+       (gmtime, localtime, mktime): Remove decls; not needed with C89.
+       (to_hour): First arg is now long int, not int.
+       (to_year): Returns long int, not int.
+       Don't treat year -70 like 70.
+       (tm_diff): Returns long int, not int.
+       (lookup_word): Use bool instead of int when appropriate.
+       (yylex): Use size_t for count, not int.
+       Detect overflow when parsing large integer constants.
+       Add support for fractions.
+       (get_date): Make pointers 'const' if possible.
+       Use more-portable code to detect integer overflow.
+       (main) [TEST]: Adjust to above changes.  Test for localtime failure.
+       Don't use ctime; it's not reliable if the year has >4 digits.
+
+       * human.c (humblock): Inspect BLOCKSIZE if BLOCK_SIZE isn't set.
+       This is for compatibility with BSD.
+
+       * timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP): Define.
+       (ATIME_CMP, CTIME_CMP, MTIME_CMP, TIMESPEC_NS): Likewise.
+       From coreutils' system.h.
+
+       * userspec.c: Don't include "posixver.h".
+       (parse_user_spec): Fall back on USER.GROUP parsing, regardless
+       of POSIX version, as POSIX 1003.1-2001 allows that behavior as a
+       compatible extension.  Simplify code by removing a boolean int
+       that was always nonzero if a string was nonnull.
+
+2004-03-30  Jim Meyering  <jim@meyering.net>
+
+       Merge from coreutils.
+
+       * mountlist.c [HAVE_SYS_UCRED_H]: Include grp.h before sys/ucred.h.
+
+       * readtokens.c (readtoken): Don't leak 64 bytes when reading
+       an empty input stream.
+
+       * readtokens.c: Include <stdbool.h>.
+       (readtoken): Use `size_t' rather than int/long.
+       All callers adjusted.
+       Use `bool' rather than `int' where appropriate.
+       Use memset rather than an explicit loop.
+       Use x2nrealloc rather than xrealloc.
+       Allow the use of `\0' as a delimiter.
+       (readtokens): Likewise.
+       * readtokens.h (readtoken, readtokens): Update prototypes.
+
+2004-03-30  Bruno Haible  <bruno@clisp.org>
+
+       * getloadavg.c (getloadavg): Don't assume setlocale returns
+       nonnull.
+
+2004-03-29  Paul Eggert  <eggert@twinsun.com>
+
+       Merge changes to getloadavg.c from coreutils and Emacs.
+
+       * getloadavg.c [!defined HAVE_SETLOCALE] (setlocale):
+       Define to an expression, not to the empty string.
+       Include cloexec.h and xalloc.h.
+       (getloadavg): Restore LC_NUMERIC locale after setting it temporarily.
+       Use set_cloexec_flag rather than rolling our own.
+       * cloexec.c, cloexec.h: New files.
+
+2004-03-18  Paul Eggert  <eggert@twinsun.com>
+
+       * getopt.h: Sync with libc CVS.
+
+2004-03-18  Paul Eggert  <eggert@twinsun.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       * mbswidth.h: Include <wchar.h> only if HAVE_DECL_MBSWIDTH_IN_WCHAR_H,
+       not on all platforms that have <wchar.h>.
+       * mbswidth.c: Include <stdio.h> and <time.h> before <wchar.h>.
+
+2004-03-09  Paul Eggert  <eggert@twinsun.com>
+
+       * argp-parse.c, getopt.c, getopt.h, getopt1.c:
+       Sync with libc CVS.
+       * getopt_int.h: New file, also synced from libc.
+
+2004-03-07  Paul Eggert  <eggert@twinsun.com>
+
+       * c-stack.c (SIGACTION_WORKS): New macro.  Use it instead of long
+       '#if' expressions.  Unlike the code it replaces, it does not
+       depend on (defined _SC_PAGESIZE).  However, it does depend on
+       HAVE_STRUCT_SIGACTION_SA_SIGACTION; this last change fixes a bug
+       first reported by Jason Andrade in
+       <http://mail.gnu.org/archive/html/bug-textutils/2003-03/msg00027.html>.
+
+2004-01-18  Simon Josefsson  <jas@extundo.com>
+
+       * strdup.h: New file.
+       * strdup.c: Include it.
+       * path-concat.c: Include strdup.h. Drop strdup declaration.
+       * userspec.c: Include strdup.h. Drop strdup declaration.
+
+2004-02-06  Karl Berry  <karl@gnu.org>
+
+       * config.charset: update from gettext 0.14.1.
+
+2004-02-05  Paul Eggert  <eggert@twinsun.com>
+
+       Add comments and code, prompted by suggestions from Bruno Haible
+       for sh-quote.
+       * quotearg.h (quotearg_alloc): New decl.  Improve the comments
+       describing the enum quoting_style values.
+       * quotearg.c (quotearg_alloc): New function.
+       (quotearg_buffer_restyled): Treat lone { and } as special.
+       Treat = as special.  Work around bug with older shells
+       that "see" a '\' that is really the 2nd byte of a multibyte char.
+       Quote empty string with shell_quoting_style.
+
+2004-02-03  Bruno Haible  <bruno@clisp.org>
+
+       * pipe.h: New file, from GNU gettext.
+       * pipe.c: New file, from GNU gettext.
+
+2004-01-27  Bruno Haible  <bruno@clisp.org>
+
+       * execute.h: New file, from GNU gettext.
+       * execute.c: New file, from GNU gettext.
+       * w32spawn.h: New file, from GNU gettext.
+
+2004-01-23  Paul Eggert  <eggert@twinsun.com>
+
+       Exit-status fix from coreutils.
+
+       Use exit_failure consistently in place of EXIT_FAILURE,
+       so that program exit statuses are consistent on failure.
+
+       * argmatch.c (ARGMATCH_DIE) [! defined ARGMATCH_DIE]:
+       Include "exitfail.h", and use exit_failure rather than EXIT_FAILURE.
+       * argmatch.h: Comment fix to match the above.
+       * obstack.c (obstack_exit_failure) [!defined _LIBC]:
+       Now a macro referring to exit_failure, instead of a separate
+       variable.  Include "exitfail.h" to get it.
+       * xstrtol.h: Include "exitfail.h".
+       (STRTOL_FATAL_ERROR): Exit with status exit_failure, not 2.
+
+       * long-options.c (parse_long_options): Use prototype
+       for usage function arg.  Pass it EXIT_SUCCESS rather than 0,
+       for clarity.
+
+2004-01-21  Jim Meyering  <jim@meyering.net>
+
+       * mktime.c (__mktime_internal) [!_LIBC]: Define to mktime_internal
+       so as not to conflict with a different-sized __mktime_internal
+       function in GNU libc.
+       * timegm.c (__mktime_internal) [!_LIBC]: Likewise.
+       Problem building statically-linked `ls' reported by Michael Brunnbauer.
+
+2004-01-18  Paul Eggert  <eggert@twinsun.com>
+
+       Merge from diffutils.
+
+       * file-type.c (file_type): Add typed memory objects.
+       * file-type.h (S_TYPEISTMO): New macro.
+
+       * c-stack.h (c_stack_action): Remove argv argument.
+       * c-stack.c (c_stack_action): Likewise.  All uses changed.
+       (die): Don't calculate message unless segv_action returns.
+       (get_stack_location, min_address_from_argv, max_address_from_argv,
+       volatile stack_base, volatile_stack_size): Remove.
+       (segv_handler): If ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC, assume
+       that every segmentation violation is a stack overflow.  (Ouch!)
+       See Debian bug 136249 (still outstanding) for more info about why
+       HAVE_XSI_STACK_OVERFLOW_HEURISTIC fails on Linux kernels.
+
+2003-11-30  Bruno Haible  <bruno@clisp.org>
+
+       Safer stack allocation.
+       * setenv.c: Include allocsa.h.
+       (alloca): Remove fallback definition.
+       (freea): Remove macro.
+       (__add_to_environ) [!_LIBC]: Use allocsa instead of alloca. Use freesa
+       instead of freea.
+
+2003-10-17  Bruno Haible  <bruno@clisp.org>
+
+       * binary-io.h: Avoid warnings on Cygwin.
+
+2003-12-28  Bruno Haible  <bruno@clisp.org>
+
+       * wait-process.c (wait_subprocess): Add ignore_sigpipe argument.
+       * wait-process.c (wait_subprocess): Likewise. Handle SIGPIPE specially.
+
+2003-11-28  Bruno Haible  <bruno@clisp.org>
+
+       * wait-process.c (cleanup_slaves): Use ANSI C declaration.
+
+2003-11-27  Bruno Haible  <bruno@clisp.org>
+
+       * wait-process.c: On Windows, include windows.h. Needed on mingw.
+
+2003-11-17  Bruno Haible  <bruno@clisp.org>
+
+       * wait-process.c (wait_process): Disable the 2003-10-31 waitid() patch.
+
+2003-11-24  Bruno Haible  <bruno@clisp.org>
+
+       * xallocsa.h: New file, from GNU gettext.
+       * xallocsa.c: New file, from GNU gettext.
+
+2003-11-24  Bruno Haible  <bruno@clisp.org>
+
+       * allocsa.h: New file, from GNU gettext.
+       * allocsa.c: New file, from GNU gettext.
+
+2003-11-24  Bruno Haible  <bruno@clisp.org>
+
+       * eealloc.h: New file.
+
+2004-01-15  Jim Meyering  <jim@meyering.net>
+
+       Merge from coreutils.
+
+       * md5.h (rol) [__GNUC__ && __i386__]: Don't use `asm' code.  These
+       days, gcc-3.x does better all by itself.  Patch from Dean Gaudet:
+       http://mail.gnu.org/archive/html/bug-coreutils/2003-11/msg00144.html
+
+       * posixver.c (DEFAULT_POSIX2_VERSION): Use definition of new,
+       optional configure-time default.
+
+       * version-etc.c (version_etc_copyright): Update copyright date.
+
+       * xreadlink.c (xreadlink): Correct outdated comment.
+
+2004-01-15  Paul Eggert  <eggert@twinsun.com>
+
+       Merge from coreutils.
+
+       * posixver.c: Include posixver.h.
+
+       * same.c: Include <stdbool.h>, <limits.h>.
+       (_POSIX_NAME_MAX): Define if not defined.
+       (MIN): New macro.
+       (same_name): If file names are silently truncated, report
+       that the file names are the same if they are the same after
+       the silent truncation.
+
+       * xstrtod.h (xstrtod): Accept an extra arg, specifying the
+       conversion function.
+       * xstrtod.c (xstrtod): Likewise.  All callers changed to
+       include c-strtod.h and use c_strtod.  Don't include stdlib.h; no
+       longer needed.
+
+2004-01-14  Paul Eggert  <eggert@twinsun.com>
+
+       * fnmatch_loop.c (ALLOCA_LIMIT): Remove macro, which collided
+       with like-named macro in fnmatch.c.
+       (EXT): Use an internal constant instead.
+
+       Merge fnmatch patches from glibc.
+       * fnmatch.c (mbsinit): Remove define.
+       Add libc_hidden_ver (__fnmatch, fnmatch).
+       * fnmatch_loop.c (FCT): Cast to int32_t and UCHAR when appropriate.
+       Adjust to renaming of collseq_table_lookup to __collseq_table_lookup.
+
+2003-12-14  Karl Berry  <karl@gnu.org>
+
+       * config.charset: update from gettext-runtime.
+
+2003-12-03  Paul Eggert  <eggert@twinsun.com>
+
+       * getgroups.c (getgroups): xmalloc takes one argument, not two.
+       Bug reported by Alfred M. Szmidt.
+
+2003-11-29  Karl Berry  <karl@gnu.org>
+
+       * argp-{help.c,parse.c,namefrob.h}, argp.h: update from libc.
+
+2003-11-23  Paul Eggert  <eggert@twinsun.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       * printf-parse.h: Don't include sys/types.h.
+       (ARG_NONE): New macro.
+       (char_directive): Change type of *arg_index fields to size_t.
+       * printf-parse.c: Don't include sys/types.h.
+       (SSIZE_MAX): Remove macro.
+       (PRINTF_PARSE): Change the type of the arg_index variables to size_t.
+       Remove unnecessary overflow check.
+       * vasnprintf.c (VASNPRINTF): Update for type change of *arg_index
+       fields.
+
+2003-11-24  Paul Eggert  <eggert@twinsun.com>
+
+       * alloca.c: Remove dependency on xalloc module.
+       (xalloc_die): Remove.
+       (memory_full) [!defined emacs]: New macro.
+       [!defined emacs]: Don't include xalloc.h.
+       (alloca): Invoke memory_full, not xalloc_die, if malloc fails or
+       address arithmetic overflows.  Change datatypes a bit to avoid
+       unnecessary casts.
+
+2003-11-22  Jim Meyering  <jim@meyering.net>
+
+       * xmalloc.c (x2nrealloc_inline): Fix typos in comments: s/size/size_t/.
+
+2003-11-17  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (alloca): Remove fallback definition.
+       (freea): Remove definition.
+       (VASNPRINTF): Use alloca only for small sizes, say <= 4000 bytes.
+       Reported by Paul Eggert.
+
+2003-11-17  Jim Meyering  <jim@meyering.net>
+
+       On systems without utime and without a utimes function capable of
+       dealing with a NULL struct utimbuf* argument, this utime replacement
+       could -- in unusual circumstances -- leak a file descriptor.
+       * utime.c: Include <unistd.h> and <errno.h>.
+       (utime_null): Be sure to close `fd' and to preserve errno.
+       Reported by Geoff Collyer via Arnold Robbins.
+
+2003-11-16  Paul Eggert  <eggert@twinsun.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       Protect against address arithmetic overflow.
+       * printf-args.h: Include stddef.h.
+       (arguments): Change type of field 'count' to size_t.
+       * printf-args.c (printf_fetchargs): Use size_t instead of
+       'unsigned int' where appropriate.
+       * printf-parse.h: Include sys/types.h.
+       (char_directive): Change type of *arg_index fields to ssize_t.
+       (char_directives): Change type of fields 'count', max_*_length to
+       size_t.
+       * printf-parse.c: Include sys/types.h and xsize.h.
+       (SSIZE_MAX): Define fallback value.
+       (PRINTF_PARSE): Use size_t instead of 'unsigned int' and ssize_t
+       instead of 'int' where appropriate. Check a_allocated, d_allocated
+       against overflow. Reject %m$ argument numbers > SSIZE_MAX + 1.
+       * vasnprintf.c: Include xsize.h.
+       (VASNPRINTF): Use size_t instead of 'unsigned int' where appropriate.
+       Check alloca, malloc, realloc, ENSURE_ALLOCATION arguments against
+       overflow. Avoid wraparound when converting a width or precision from
+       decimal to binary.
+
+2003-11-16  Bruno Haible  <bruno@clisp.org>
+
+       Update from GNU gettext.
+       * printf-parse.c: Generalize to it can be compiled for wide strings.
+       (PRINTF_PARSE, CHAR_T, DIRECTIVE, DIRECTIVES): New macros.
+       * vasnprintf.c: Generalize to it can be compiled for wide strings.
+       (VASNPRINTF, CHAR_T, DIRECTIVE, DIRECTIVES, PRINTF_PARSE, USE_SNPRINTF,
+       SNPRINTF): New macros.
+       Don't include <alloca.h> if the file is used inside libintl.
+       (local_wcslen): New function, for Solaris 2.5.1.
+       (VASNPRINTF): Use it instead of wcslen.
+
+2003-11-16  Bruno Haible  <bruno@clisp.org>
+
+       * xsize.h (xmax): New function.
+       (xsum, xsum3, xsum4): Declare as "pure" functions.
+
+2003-11-12  Paul Eggert  <eggert@twinsun.com>
+
+       * xalloc.h: Do not include <limits.h> or <stdint.h>.
+       (xalloc_oversized): Use sizeof (ptrdiff_t) and sizeof (size_t) for
+       the heuristic, rather than PTRDIFF_MAX and SIZE_MAX.  This
+       heuristic is just as accurate as far as we know, and it removes a
+       dependency on size_max.m4 and ptrdiff_max.m4.
+
+2003-11-12  Paul Eggert  <eggert@twinsun.com>
+
+       * xstrtol.c (__xstrtol): Remove "break" immediately after
+       "return", to pacify some unknown compiler.  Problem reported
+       by Joerg Schilling.
+
+2003-11-11  Bruno Haible  <bruno@clisp.org>
+
+       * xsize.h (SIZE_MAX): Remove fallback definition.
+       * xalloc.h: Include limits.h. Assume SIZE_MAX and PTRDIFF_MAX are
+       defined.
+
+2003-11-10  Paul Eggert  <eggert@twinsun.com>
+
+       * xalloc.h (xalloc_oversized): [! (defined PTRDIFF_MAX &&
+       PTRDIFF_MAX < SIZE_MAX)]: Fix off-by-one error that would have
+       rejected some allocations of exactly SIZE_MAX - 2 bytes.
+       From Bruno Haible.
+       [defined PTRDIFF_MAX && PTRDIFF_MAX < SIZE_MAX]: Use SIZE_MAX,
+       not (size_t) -1, since it's defined here.
+
+2003-11-06  Paul Eggert  <eggert@twinsun.com>
+
+       * xalloc.h [HAVE_STDINT_H]: Include <stdint.h>.
+       (xalloc_oversized) [! (PTRDIFF_MAX < SIZE_MAX)]:
+       Reject sizes of exactly SIZE_MAX bytes.
+       * xreadlink.c: Include "xalloc.h" before checking whether SIZE_MAX
+       is defined, since "xalloc.h" now defines SIZE_MAX on modern hosts.
+
+2003-11-05  Bruno Haible  <bruno@clisp.org>
+
+       * xsize.h: Include limits.h, to avoid a possible collision with
+       SIZE_MAX defined in <limits.h> on Solaris.
+
+2003-11-04  Bruno Haible  <bruno@clisp.org>
+
+       * xsize.h: New file.
+       * linebreak.c: Include xsize.h.
+       (mbs_possible_linebreaks, mbs_width_linebreaks): Check malloc()
+       argument for overflow.
+       Suggested by Paul Eggert.
+
+2003-10-31  Bruno Haible  <bruno@clisp.org>
+
+       * wait-process.c (wait_process): Use waitid with WNOWAIT if available,
+       to avoid (extremely rare) race condition.
+       Suggested by Paul Eggert.
+
+2003-11-03  Jim Meyering  <jim@meyering.net>
+
+       * userspec.c: Include "userspec.h".
+       * userspec.h: New file.
+
+2003-10-31  Paul Eggert  <eggert@twinsun.com>
+
+       * mountlist.h (struct mount_entry.me_type_malloced): New member.
+       * mountlist.c (SIZE_MAX): Define if not defined already.
+       (read_filesystem_list): Set and use me_type_malloced.
+       Use "sizeof *me" rather than "sizeof (struct mount_entry)" (or
+       whatever the type happens to be), for brevity and consistency.
+       Check for size calculation overflow on Alphas running OSF/1.
+
+2003-10-31  Jim Meyering  <jim@meyering.net>
+
+       * hash.c: Include "xalloc.h" for use of xalloc_oversized.
+
+       * linebuffer.c: Include <string.h> for declaration of memset.
+
+2003-10-30  Paul Eggert  <eggert@twinsun.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       * vasprintf.c: Include <limits.h>, <stdlib.h>.
+       (vasprintf): Fail if the resulting length doesn't fit in an 'int'.
+
+2003-10-29  Paul Eggert  <eggert@twinsun.com>
+
+       * xalloc.h (xalloc_oversized): Now a macro, not a function,
+       so that it works even if SIZE_MAX < N.  Do not include <stdbool.h>;
+       no longer needed.
+       * quotearg.c (quotearg_n_options): Use it.
+       * group-member.c: Include <stdbool.h>.
+       (free_group_info): Arg is now const *; don't free arg.
+       (get_group_info): Now returns bool and accepts struct group_info *,
+       rather than returning a malloc'ed struct group_info *.
+       All uses changed.  Check for overflow in internal size calculation.
+
+       * getusershell.c (readname): Simplify the code by using x2nrealloc
+       rather than xmalloc/xrealloc.
+       * linebuffer.c (initbuffer, readlinebuffer): Simplify the code by
+       using x2realloc rather than xmalloc/xrealloc.  Also, fix a C
+       conformance bug: the old code used a pointer after freeing the
+       storage that it addressed.
+       * hash.c (hash_initialize): Simplify the code by using xalloc_oversized
+       rather than doing it by hand.
+       * getgroups.c (getgroups): Don't use xrealloc, since we don't need
+       the buffer preserved.  Use free and xmalloc instead.
+       * quotearg.c (quotearg_n_options): Likewise.
+       Use a simpler test for size overflow.  Don't use xalloc_oversized
+       because unsigned int might be wider than size_t (!); this suggests
+       that we should switch from unsigned int to size_t for slot numbers.
+
+2003-10-27  Bruno Haible  <bruno@clisp.org>
+
+       * stdbool_.h: Better support for BeOS.
+
+2003-10-27  Paul Eggert  <eggert@twinsun.com>
+
+       * exclude.c (new_exclude): Use xzalloc rather than xmalloc
+       to allocate the returned structure.  Do not allocate a subarray,
+       as x2nrealloc will do that.
+       (add_exclude): Use x2nrealloc to reallocate ex->exclude,
+       instead of xnrealloc.
+       (add_exclude_file): Use x2realloc instead of malloc + xnrealloc.
+
+2003-10-26  Paul Eggert  <eggert@twinsun.com>
+
+       * xalloc.h (xalloc_oversized): New static inline function, for
+       callers that want to do their own size-overflow checking.  Include
+       <stdbool.h>, since xalloc_oversized returns bool.
+       * xalloc.c (array_size_overflow): Remove.  All callers changed
+       to use xalloc_oversized.
+
+       Add two functions x2realloc, x2nrealloc, for programs that grow
+       arrays dynamically by doubling their sizes.
+       * xalloc.h (x2realloc, x2nrealloc): New decls.
+       * xmalloc.c (x2nrealloc_inline, x2nrealloc, x2realloc):
+       New functions.
+
+       Port to C99 semantics for 'inline' of external functions.
+       Bug reported by Bruno Haible.
+       * xmalloc.c (xnmalloc_inline): New static inline function,
+       with the old contents of xnmalloc.
+       (xnmalloc, xmalloc): Use it.
+       (xnrealloc_inline): New static inline function,
+       with the old contents of xnrealloc.
+       (xnrealloc, xrealloc): Use it.
+
+       * alloc.c (alloca): xmalloc cannot return NULL, so don't test for that.
+
+2003-10-25  Paul Eggert  <eggert@twinsun.com>
+
+       Fix several address-calculation bugs in the hash modules,
+       plus some minor code cleanup.
+
+       * hash.h: Include <stdbool.h>, for bool.
+       * hash.c: Don't include <stdbool.h>, since hash.h does it now.
+       * hash.h (Hash_hasher, hash_get_n_buckets, hash_get_n_buckets_used,
+       hash_get_n_entries, hash_get_max_bucket_length,
+       hash_get_entries, hash_do_for_each, hash_string, hash_initialize,
+       hash_rehash): Use size_t rather than unsigned.
+       * hash.c (struct hash_table, hash_get_n_buckets,
+       hash_get_n_buckets_used, hash_get_n_entries,
+       hash_get_max_bucket_length, hash_table_ok, hash_print_statistics,
+       hash_get_entries, hash_do_for_each, hash_string, is_prime,
+       next_prime, hash_initialize, hash_rehash, hash_delete, hash_print):
+       Likewise.
+       (SIZE_MAX): Define if not defined.
+       (hash_get_max_bucket_length, hash_table_ok, hash_lookup,
+       hash_get_first, hash_get_next, hash_get_entries, hash_do_for_each,
+       hash_print):
+       Use const * when possible.
+       (hash_string): Use (unsigned char) *P rather than *(unsigned char *) P.
+       (check_tuning): Fix bug: if tuning parameters were very close to
+       0 or 1, rounding errors could have caused subscript violations.
+       (hash_initialize, allocate_entry, hash_print): Remove unnecessary cast.
+       (hash_initialize): Add 'fail:' label
+       to free table and return NULL, and use it to simplify code.
+       Use calloc rather than clearing the storage ourself.
+       (hash_initialize, hash_rehash): Check for arithmetic overflow in
+       buffer size calculations.
+       * hash-pjw.h (hash_pjw): Use size_t, not unsigned.
+       Include <stddef.h>, for size_t.
+       * hash-pjw.c (hash_pjw): Likewise.
+       Switch to method described by Bruno Haible.
+       Include <limits.h>, for CHAR_BIT.
+       (SIZE_BITS): New macro.
+
+2003-10-21  Paul Eggert  <eggert@twinsun.com>
+
+       * getndelim2.c (getndelim2): When size calculation overflows,
+       ceiling the allocation at NMAX bytes rather than silently
+       discarding input bytes before NMAX is reached.  This makes
+       a difference only if NMAX exceeds SIZE_MAX / 2.
+
+       * obstack.c: Merge from glibc.
+       [defined _LIBC]: Include <obstack.h>, not "obstack.h".
+       Add libc_hidden_def (_obstack_newchunk).
+       (_obstack_free) [! defined _LIBC]: Remove.
+       [defined _LIBC]: Make a strong alias from obstack_free, rather than
+       a clone of the function body.
+       (fputs) [defined _LIBC && defined USE_IN_LIBIO]: Remove.
+       [defined _LIBC && !defined USE_IN_LIBIO]: Include <libio/iolibio.h>.
+
+       * obstack.h: Indenting cleanup, to make it easier to merge with glibc.
+       (obstack_grow, obstack_grow0): Remove unnecessary parentheses around
+       arg to memcpy.
+
+       * obstack.h (obstack_1grow_fast): Properly parenthesize arg.
+       (obstack_ptr_grow_fast, obstack_int_grow_fast):
+       Don't use lvalue casts, as GCC plans to remove support for them
+       in GCC 3.5.  Reported by Joseph S. Myers.  This bug
+       was also present in the non-GCC version, indicating that this
+       code had always been buggy and had never been widely used.
+       (obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank):
+       Use the fast variant of each macro, rather than copying the
+       definiens of the fast variant; that way, we'll be more likely to
+       catch future bugs in the fast variants.
+
+2003-10-20  Bruno Haible  <bruno@clisp.org>
+
+       * wait-process.h: New file, from GNU gettext.
+       * wait-process.c: New file, from GNU gettext.
+
+2003-10-19  Jim Meyering  <jim@meyering.net>
+
+       * vasnprintf.c (vasnprintf): Work around losing snprintf on HPUX 10.20.
+
+2003-10-16  Paul Eggert  <eggert@twinsun.com>
+
+       * getgroups.c: Include <errno.h>, <stdlib.h>.
+       (getgroups): First arg is int, not size_t.
+       Don't let 'free' mangle errno.
+
+2003-10-16  Jim Meyering  <jim@meyering.net>
+
+       * xmalloc.c: Include <string.h>, for declarations of memset and memcpy.
+
+2003-10-15  Paul Eggert  <eggert@twinsun.com>
+
+       * exclude.c: Do not include <inttypes.h> or <stdint.h>.
+       (SIZE_MAX): Remove.
+       (new_exclude, add_exclude_file): Initial size no longer needs to
+       be a power of 2.
+       (add_exclude, add_exclude_file): Use xnrealloc instead of rolling
+       our own address arithmetic overflow checking.
+
+       * fnmatch.c (SIZE_MAX): Define if standard headers don't.
+       (fnmatch): Do not alloca more than 2000 wide characters;
+       instead, use malloc for large buffers.
+       Check for address arithmetic overflow, and return -1
+       with errno set to ENOMEM in that case.
+       * fnmatch_loop.c (ALLOCA_LIMIT): New macro.
+       (NEW_PATTERN): Do not alloca more than 8000 bytes;
+       instead, return -1.  Check for address arithmetic overflow.
+
+2003-10-14  Paul Eggert  <eggert@twinsun.com>
+
+       Handle invalid suffixes and overflow independently, so that
+       callers can treat them independently as needed.  Fix some bugs in
+       suffix handling, e.g., "100k@" was not diagnosed as an invalid
+       suffix for a human-readable blocksize.  The major caller-visible
+       change is the addition of a new
+       LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW enum value, indicating
+       that both overflow and suffix chars were found.
+
+       * human.c (humblock): Don't check separately for invalid suffix
+       char; that is xstrtoumax's job (now that its bug is fixed).
+       * xstrtoimax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [defined
+       INTMAX_MAX]: New macros.
+       * xstrtol.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM, TYPE_MINIMUM,
+       TYPE_MAXIMUM): New macros.
+       (bkm_scale, bkm_scale_by_power): Return strtol_error, not int.
+       (bkm_scale, bkm_scale_by_power, __xstrtol): Return maximal values
+       if overflow occurs, as it's what __strtol does and it's more useful
+       in practice.
+       (__xstrtol): If __strtol reports some error other than ERANGE,
+       reflect it to the caller as LONGINT_INVALID.  If it reports
+       ERANGE, continue the rest of parsing, and report LONGINT_OVERFLOW
+       | LONGINT_INVALID_SUFFIX_CHAR if both errors occur.
+       * xstrtol.h (LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW): New enum
+       value.
+       (_STRTOL_ERROR): Handle it.  Abort when given unknown error codes.
+       * xstrtoul.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM): New macros.
+       * xstrtoumax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM)
+       [defined UINTMAX_MAX]: New macros.
+
+2003-10-14  Bruno Haible  <bruno@clisp.org>
+
+       * fatal-signal.h: Improved comments. Suggested by Paul Eggert.
+       * fatal-signal.c: Use sig_atomic_t. Suggested by Paul Eggert.
+       Also use volatile where needed.
+
+2003-10-12  Paul Eggert  <eggert@twinsun.com>
+
+       * xalloc.h (xnmalloc, xzalloc, xnrealloc, xclone): New decls.
+       (XMALLOC, XCALLOC, XREALLOC, XFREE, CCLONE, CLONE): Deprecate,
+       and define in terms of the other primitives.
+       * xmalloc.c: Include stdbool.h; do not include exit.h.
+       (SIZE_MAX): Define if not already defined.
+       (array_size_overflow): New function.
+       (xalloc_die): Abort instead of exiting if 'error' returns.
+       (xnmalloc, xnrealloc, xzalloc, xclone): New functions.
+       (xmalloc, xrealloc): Use them.
+       (xcalloc): Check for address arithmetic overflow.
+       * xstrdup.c (xstrdup): Use xclone, since memcpy should be
+       a bit faster than strcpy.
+
+2003-10-08  Paul Eggert  <eggert@twinsun.com>
+
+       Merge getpass from libc, plus a few fixes.
+
+       * getpass.c (HAVE_STDIO_EXT) [_LIBC]: Define to 1.
+       Include <stdbool.h>.
+       Include <stdio_ext.h> if HAVE_STDIO_H, otherwise define
+       __fsetlocking to empty.
+       [_LIBC]: Do not include "getline.h" or "unlocked-io.h", but
+       do include <bits/libc-lock.h>.
+       Do not include <fcntl.h>; not needed.
+       [_LIBC]: Include <wchar.h>.
+       (NOTCANCEL_MODE): New macro.
+       (flockfile, funlockfile) [_LIBC]: New macros.
+       (__libc_cleanup_push, __libc_cleanup_pop, __getline, __tcgetattr)
+       [!_LIBC]: New macros.
+       (call_fclose): New function.
+       (getpass): Use it.  Save tty stream separately; this simplifies the
+       code and makes it more reliable if stdin happens to equal stdout.
+       Invoke __fsetlocking on tty.
+       Handle thread cancellation if needed.
+       Namespace cleanup (use __tcgetattr, __getline).
+       Use bool for Booleans.
+       [USE_IN_LIBIO]: Handle wide streams.
+       [!_LIBC]: Unconditionally do the fseek, since we don't know what
+       stream might go where.
+
+       * unlocked-io.h: Include <stdio.h>, so that the caller
+       doesn't have to include <stdio.h> before us.
+       (clearerr_unlocked, feof_unlocked, ferror_unlocked,
+       fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked,
+       fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
+       putc_unlocked, putchar_unlocked): Define to the unlocked counterpart
+       if not declared, so that we can use getpass.c code from libc without
+       rewriting it.
+       (flockfile, ftrylockfile, funlockfile): New macros.
+
+2003-10-06  Bruno Haible  <bruno@clisp.org>
+
+       * version-etc-2.h: Remove file.
+       * version-etc-2.c: Remove file.
+
+2003-09-25  Jim Meyering  <jim@meyering.net>
+            Bruno Haible  <bruno@clisp.org>
+
+       This lets translators provide better translations for the
+       "Written by ..." part of --version output.
+       * version-etc.h: Include stdarg.h.
+       (version_etc_copyright): Declare as readonly.
+       (version_etc): Make this function variadic with a NULL-terminated list
+       of author name strings.
+       (version_etc_va): New declaration.
+       * version-etc.c: Include stdarg.h, stdlib.h.
+       (version_etc_copyright): Declare as readonly.
+       (version_etc_va): New function. Provide a different translatable string
+       for each possible number of authors < 10. Abbreviate when there are 10
+       authors or more.
+       (version_etc): Make this function variadic. Call version_etc_va.
+       Suggestion from Gary V. Vaughan.
+
+       * long-options.h (parse_long_options): Change prototype: the authors
+       string is moved to the end and becomes variadic.
+       * long-options.c: Include stdarg.h.
+       (parse_long_options): Make this function variadic, too.
+       Call version_etc_va, not version_etc.
+
+2003-10-06  Bruno Haible  <bruno@clisp.org>
+
+       * fatal-signal.h: New file, from GNU gettext.
+       * fatal-signal.c: New file, from GNU gettext.
+
+2003-10-04  Karl Berry  <karl@gnu.org>
+
+       * argp*: update from libc.
+
+2003-10-01  Larry Jones  <lawrence.jones@eds.com>
+
+       * getpass.c (getpass): Use a no-op fseek when switching from input to
+       output mode on the same stream.
+
+2003-09-29  Paul Eggert  <eggert@twinsun.com>
+
+       * strftime.c (tm_diff) [! HAVE_TM_GMTOFF]:
+       Fix arg typo in previous patch.
+
+2003-09-28  Jim Meyering  <jim@meyering.net>
+
+       * error.c: Correct cpp indentation.
+
+2003-09-27  Paul Eggert  <eggert@twinsun.com>
+
+       * minmax.h (MIN, MAX) [__STDC__ && defined __GNUC__ && __GNUC__ >= 2]:
+       Omit the special code that used __typeof__, since we worry that
+       it could be more trouble than it's worth.  See:
+       http://mail.gnu.org/archive/html/bug-gnulib/2003-01/msg00090.html
+       http://mail.gnu.org/archive/html/bug-gnulib/2003-01/msg00095.html
+
+       * free.c: New file.
+
+2003-09-26  Jim Meyering  <jim@meyering.net>
+
+       * error.c (error_tail): Move some declarations
+       into inner scope where the local variables are used.
+
+2003-09-26  Bruno Haible  <bruno@clisp.org>
+
+       * stpncpy.h (gnu_stpncpy): New declaration.
+       (stpncpy): Define as alias for gnu_stpncpy.
+       * stpncpy.c [!_LIBC]: Define gnu_stpncpy, not stpncpy.
+
+2003-09-26  Paul Eggert  <eggert@twinsun.com>
+
+       * error.c (SIZE_MAX) [!defined SIZE_MAX]: Define.
+       (error_tail): Do not loop, reallocating temporary buffer, since
+       the output cannot contain more wide characters than the input
+       contains bytes, the size must be big enough already.  This avoids
+       one potential size overflow calculation.  Check for size overflow
+       when calculating temporary buffer size.  Free temporary buffer
+       when done, if it was allocated with malloc; this plugs a memory
+       leak.  Remove casts from void * to pointers, that are no longer
+       needed now that we're assuming C89 or better.
+
+       Merge error changes from glibc.
+
+       * error.c, error.h: Update copyright notice header to match glibc.
+       * error.c [defined _LIBC]: Include <errno.h>, <bits/libc-lock.h>.
+       (error, error_at_line) [defined _LIBC && defined __libc_ptf_call]:
+       Disable cancellation while printing error.
+       * error.h: Prepend __ to parameter names.
+
+2003-09-25  Karl Berry  <karl@gnu.org>
+
+       * argp-fmtstream.c, argp-help.c: update from libc.
+
+2003-09-25  Bruno Haible  <bruno@clisp.org>
+
+       * version-etc-2.h: New file, from version-etc.h with modifications.
+       * version-etc-2.c: New file, from version-etc.c with modifications.
+
+2003-09-25  Simon Josefsson  <jas@extundo.com>
+
+       * xgetdomainname.h: New file.
+       * xgetdomainname.c: New file.
+
+2003-09-25  Simon Josefsson  <jas@extundo.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       * getdomainname.h: New file.
+       * getdomainname.c: New file.
+
+2003-09-24  Paul Eggert  <eggert@twinsun.com>
+
+       * linebuffer.c (freebuffer): Don't free the argument, just
+       the buffer associated with the argument.  Bug reported by
+       Simon Josefsson.
+
+2003-09-19  Karl Berry  <karl@gnu.org>
+
+       * argp.h: update from libc.
+
+2003-09-16  Paul Eggert  <eggert@twinsun.com>
+
+       * linebuffer.c (readlinebuffer): Return NULL immediately upon
+       input error, instead of returning NULL the next time we are called
+       (and therefore losing track of errno).
+
+2003-09-15  Paul Eggert  <eggert@twinsun.com>
+
+       * getndelim2.c (getndelim2): Don't trash errno when a read
+       fails, so that the caller gets the proper errno.
+
+       * readutmp.c (read_utmp): Likewise.
+       Check for fstat error.  Close stream and free storage
+       when failing.
+
+2003-09-14  Bruno Haible  <bruno@clisp.org>
+
+       * fwriteerror.h: New file.
+       * fwriteerror.c: New file.
+
+2003-09-14  Jim Meyering  <jim@meyering.net>
+
+       * getloadavg.c: Correct cpp indentation.
+       * strdup.c: Likewise.
+       * vasnprintf.c: Likewise.
+
+2003-09-12  Paul Eggert  <eggert@twinsun.com>
+
+       * argmatch.c, fatal.c, xgethostname.c, xmalloc.c: Include exit.h.
+       * obstack.c [!defined _LIBC]: Likewise.
+       * argmatch.c (EXIT_FAILURE): Remove; now done by exit.h
+       * exitfail.c, fatal.c, xgethostname.c, xmalloc.c: Likewise.
+       * exitfail.c: Don't include stdlib.h; no longer needed.
+
+       More changes to assume C89 or better.
+
+       * error.c (error_tail): Assume vprintf.
+
+       * argmatch.c (getenv): Remove decl.
+       * progreloc.c (get_full_program_name): Define via prototype.
+       * setenv.c (clearenv): Likewise.
+       * stpncpy.c: Do not include <string.h> or <sys/types.h>; not
+       needed.
+       * strdup.c: Include <stdlib.h>, <string.h> unconditionally.
+       (malloc, memcpy): Remove decls.
+       * strftime.c (HAVE_LIMITS_H, STDC_HEADERS) [defined _LIBC]: Remove.
+       (HAVE_MEMCPY) [defined emacs && !defined HAVE_BCOPY]: Remove.
+       Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
+       (memcpy): Remove macro.
+       (MEMCPY) [!defined COMPILE_WIDE]: Define to memcpy unconditionally.
+       (__P): Remove.  All uses removed.
+       (PTR): Remove.  All uses changed to void *.
+       (CHAR_BIT, NULL): Remove.
+       (spaces, zeros, memset_space, memset_zero)
+       [!defined memset && !defined HAVE_MEMSET && !defined _LIBC]:
+       Remove.
+       (LOCALE_PARAM, LOCALE_PARAM_DECL): Remove.
+       (memcpy_lowcase, memcpy_uppcase, tm_diff, iso_week_days):
+       Define with prototype.
+       Remove now-unnecessary prototype decl.
+       (extra_args_spec): Assume ANSI C.  All uses changed.
+       (extra_args_spec_iso): Remove.
+       (my_strftime, emacs_strftimeu): Define via prototype.
+       * strtod.c: Include <float.h>, <stdlib.h>, <string.h>
+       unconditionally.
+       (DBL_MAX, DBL_MIN, HUGE_VAL, NULL): Remove decls.
+       * strtoimax.c: Include <stdlib.h> unconditionally.
+       (strtoul, strtol): Remove decls.
+       * strtol.c (STDC_HEADERS, HAVE_LIMITS_H, NULL, ULONG_MAX,
+       LONG_MAX): Remove.
+       Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
+       (LOCALE_PARAM_DECL): Remove.  All uses changed to LOCALE_PARAM_PROTO.
+       (LOCALE_PARAM_PROTO): New macro.
+       (INTERNAL, INTERNAL1, WEAKNAME): Assume ANSI C, not K&R.
+       (INTERNAL (strtol), strtol): Define with a prototype.
+       (PARAMS): Remove.  All uses removed.
+       * tempname.c: Include <string.h> unconditionally.
+       * userspec.c: Include <stdlib.h>, <string.h> unconditionally.
+       * xgethostname.c (main): Define with a prototype.
+       * xmalloc.c: Include "xalloc.h" first, to check interface.
+       Include <stdlib.h> unconditionally.
+       (calloc, malloc, realloc, free): Remove decls.
+       * xstrtod.c: Include "xstrtod.h" first, to check interface.
+       Include <stdlib.h> unconditionally.  Sort include file names.
+       (strtod): Remove.
+       (xstrtod): Define with a prototype.
+       * xstrtol.c: Include <stdlib.h>, <string.h> unconditionally.
+       (strtol, strtoul): Remove decls.
+
+2003-09-11  Paul Eggert  <eggert@twinsun.com>
+
+       * strndup.c: Don't include <stdio.h>, <sys/types.h>.
+       Include <stdlib.h>, <string.h> unconditionally.
+       Remove now-unnecessary cast to char *.
+       * strnlen.c: Include <string.h> unconditionally.
+       * yesno.c (yesno): Define with a prototype.
+
+2003-09-10  Bruno Haible  <bruno@clisp.org>
+
+       * strcspn.c: Include <string.h> unconditionally.
+       * strpbrk.c: Include <string.h> unconditionally.
+       * strstr.c: Include <string.h> unconditionally.
+       * unicodeio.c: Include <string.h> unconditionally.
+       * setenv.c: Include <stdlib.h> and <string.h> unconditionally.
+       * unsetenv.c: Likewise.
+       * xreadlink.c: Include <stdlib.h> unconditionally.
+       * yesno.c: Include <stdlib.h> unconditionally.
+       (rpmatch): Add prototype.
+
+2003-09-10  Jim Meyering  <jim@meyering.net>
+
+       * error.c: Correct indentation of cpp directives.
+
+2003-09-09  Paul Eggert  <eggert@twinsun.com>
+
+       More K&R removal.
+
+       * acosl.c (main): Use a prototype.
+       * asinl.c, cosl.c, expl.c, frexpl.c, ldexpl.c, sinl.c,
+       tanl.c: Likewise.
+
+       * getloadavg.c (getloadavg, main): Define via prototypes.
+
+       * getopt.h (struct option.name): Assume C89, and use 'const'.
+       (getopt, etopt_long, getopt_long_only, _getopt_internal)
+       [defined __GNU_LIBRARY__]: Assume C89, so we can always declare
+       with a prototype.
+       * getopt.c (const): Remove macro.
+       Include <string.h> unconditionally.
+       (my_index): Remove; all uses changed to strchr.
+       (strlen): Remove decl.
+       (exchange): Remove forward decl; no longer needed.
+       (exchange, _getopt_initialize, _getopt_internal, getopt, main):
+       Define with prototype.
+       * getopt1.c (const): Remove macro.
+       (getopt_long, getopt_long_only, main): Define with prototype.
+
+       * getugroups.c: Include <string.h> unconditionally.
+
+       * getusershell.c: Include <stdlib.h> unconditionally.
+       (getusershell, setusershell, endusershell, readname, main):
+       Define with prototypes.
+
+       * group-member.c: Include group-member.h first.
+       Include <stdlib.h> unconditionally.
+
+       * hard-locale.c: Include hard-locale.h first.
+       Include <stdlib.h>, <string.h> unconditionally.
+
+       * hash.c (free, malloc): Remove decls.
+       Include <stdlib.h> unconditionally.
+
+       * human.c: Include <stdlib.h>, <string.h> unconditionally.
+       (getenv): Do not declare.
+
+       * idcache.c: Include <string.h> unconditionally.
+
+       * long-options.c: Include long-options.h first, to test interface.
+       Include <stdlib.h> unconditionally.
+
+       * makepath.c: Include makepath.h first, to test interface.
+       Include <stdlib.h> and <string.h> unconditionally.
+
+       * linebuffer.c: Include <stdlib.h>.
+       (free): Remove decl.
+
+       * malloc.c: Include <stdlib.h>, for malloc; don't bother with stddef.h.
+       rpl_malloc returns void *, not char *.
+       * realloc.c (rpl_realloc): Likewise.  Also, define with a prototype.
+
+       * md5.h: Include <limits.h> unconditionally.
+       (UINT_MAX_32_BITS): Don't worry about non-__STDC__ case.
+       (__P): Remove; all uses removed.
+       * md5.c: Include "md5.h" first.
+       (md5_init_ctx, md5_read_ctx, md5_finish_ctx, md5_stream,
+       md5_buffer, md5_process_bytes, md5_process_block):
+       Define with prototypes.
+       * sha.h (__P): Remove all uses.  (It wasn't defined??)
+       * sha.c: Include "sha.h" first.
+       Include <stdlib.h>, <string.h> unconditionally.
+
+       * memchr.c (__ptr_t): Remove; all uses changed to void *.
+       * memcmp.c (__ptr_t): Likewise.
+       * memrchr.c (__ptr_t): Likewise.
+       * memchr.c, memcmp.c, memcoll.c, memrchr.c:
+       Include <string.h> unconditionally.
+       * memchr.c, memrchr.c: Include <limits.h> unconditionally.
+       * memchr.c: Include <stdlib.h> unconditionally.
+       * memchr.c (LONG_MAX): Remove.
+       * memrchr.c (LONG_MAX): Likewise.
+       * memchr.c (__memchr): Define via a prototype.
+       * memrchr.c (__memrchr): Likewise.
+       * memcmp.c (__P): Remove, and remove all uses.
+       (memcmp_bytes, memcmp_common_alignment, memcmp_not_common_alignment):
+       Remove forward decls; no longer needed.
+       * memcpy.c, memmove.c, memset.c: Include <stddef.h>.
+       Use types required by C89 in prototype.
+
+       * mkdir.c: Include <stdlib.h>, <string.h> unconditionally.
+       * savedir.c: Likewise.
+       * mkdir.c (free): Remove decl.
+       * rmdir.c (rmdir): Define with a prototype.
+       * savedir.c: Include savedir.h first, to test interface.
+
+       * mktime.c (STDC_HEADERS): Remove.
+       Include <stdlib.h>, <string.h> unconditionally.
+
+       * modechange.c: Include <stdlib.h> unconditionally.
+       (malloc): Remove decl.
+
+       * mountlist.c: Include <stdlib.h>, <string.h> unconditionally.
+       (free): Remove decl.
+
+       * obstack.h (PTR_INT_TYPE) [!defined __PTRDIFF_TYPE__]:
+       Define to ptrdiff_t, without bothering to check HAVE_STDDEF_H.
+       (This type really should be intptr_t, but that's a C99ism.)
+       (_obstack_memcpy): Remove: all uses changed to memcpy.
+       Include <string.h> unconditionally.
+       (struct obstack): Assume __STDC__ for types of members
+       chunkfun, freefun, extra_arg.
+       (_obstack_newchunk, _obstack_free, _obstack_begin, _obstack_begin_1,
+       _obstack_memory_used, obstack_alloc_failed_handler, obstack_init,
+       obstack_begin, obstack_specify_allocation,
+       obstack_specify_allocation_with_arg, obstack_chunkfun,
+       obstack_freefun, obstack_free) [! (defined __STDC__ && __STDC__)]:
+       Remove unprototyped decls and the macros that use them.
+       * obstack.c (POINTER): Remove.  All uses changed to void *.
+       (obstack_alloc_failed_handler, CALL_CHUNKFUN, CALL_FREEFUN,
+       _obstack_begin, _obstack_begin_1, _obstack_allocated_p)
+       (defined __STDC__ && __STDC__)]:
+       Remove nonprototyped code.
+       Include <stdlib.h> unconditionally.
+       (_obstack_begin, _obstack_begin_1, _obstack_newchunk,
+       _obstack_allocated_p, _obstack_free, obstack_free,
+       _obstack_memory_used, print_and_abort):
+       Define using prototypes.
+       (obstack_1grow, obstack_1grow_fast, obstack_alloc, obstack_base,
+       obstack_blank, obstack_blank_fast, obstack_copy, obstack_copy0,
+       obstack_finish, obstack_grow, obstack_grow0, obstack_make_room,
+       obstack_next_free, obstack_object_size, obstack_room) [0]:
+       Remove unused, unprototyped code.
+
+       * path-concat.c: Include <stdlib.h>, <string.h> unconditionally.
+
+       * physmem.c (physmem_total, physmem_available, main): Define
+       with prototypes.
+
+       * posixtm.c: Include <stdlib.h>, <string.h> unconditionally.
+       (main): Define with a prototype.
+
+       * posixver.c (getenv): Remove decl.
+
+       * putenv.c (malloc): Returns void *, not char *.
+       Include <string.h> unconditionally.
+       (strchr, memcpy, NULL): Do not define.
+
+       * readtokens.c: Include readtokens.h first, to test interface.
+       Include <stdlib.h>, <string.h> unconditionally.
+       (init_tokenbuffer): Define with a prototype.
+
+       * regex.c (PARAMS): Remove.  All uses removed.
+       All uses of _RE_ARGS removed, too.
+       Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
+       unconditionally.
+       (bzero): Assume memset exists.
+       (memcmp, memcpy, NULL): Remove.
+       (SIGN_EXTEND_CHAR): Remove; all uses replaced by casts to signed
+       char, or assignments to local vars of type signed char.
+       (init_syntax_once, PREFIX(extract_number_and_incr),
+       PREFIX(print_partial_compiled_pattern),
+       PREFIX(print_compiled_pattern), PREFIX(print_double_string),
+       convert_mbs_to_wcs, print_fastmap, re_set_syntax,
+       PREFIX(regex_grow_registers), PREFIX(regex_compile),
+       PREFIX(store_op1), PREFIX(store_op2), PREFIX(insert_op1),
+       PREFIX(insert_op2), PREFIX(at_begline_loc_p),
+       PREFIX(at_endline_loc_p), group_in_compile_stack, insert_space,
+       wcs_compile_range, byte_compile_range, truncate_wchar,
+       PREFIX(re_compile_fastmap), re_compile_fastmap, re_set_registers,
+       re_search, re_search_2, PREFIX(re_search_2), re_match, re_match_2,
+       count_mbs_length, wcs_re_match_2_internal,
+       byte_re_match_2_internal, PREFIX(group_match_null_string_p),
+       PREFIX(alt_match_null_string_p),
+       PREFIX(common_op_match_null_string_p), PREFIX(bcmp_translate),
+       re_compile_pattern, re_comp, re_exec, regcomp, regexec, regerror,
+       regfree, PREFIX(extract_number)): Define with prototype.  Remove
+       now-unnecessary declaration, if any.
+       (byte_compile_range, PREFIX(regex_compile), re_comp, re_exec,
+       regcomp, regexec):
+       Remove now-unnecessary casts among pointer types.
+       * regex.h (_RE_ARGS): Remove.  All uses removed.
+
+       * rename.c: Include <stdlib.h>, <string.h> unconditionally.
+       (free): Remove decl.
+
+       * rpmatch.c: Include <stdlib.h> unconditionally.
+
+       * same.c: Include <stdlib.h>, <string.h> unconditionally.
+       (free): Remove decl.
+
+       * save-cwd.c: Include <stdlib.h> unconditionally.
+       * xgetcwd.c: Likewise.
+
+       * stat.c: Include <stdlib.h>, <string.h> unconditionally.
+       (free): Remove decl.
+
+       * strchrnul.c (strchrnul): Define with a prototype.
+       Fix bug: c_in was not converted to char before searching.
+
+       The following changes are not K&R related:
+
+       * group-member.h: Include <sys/types.h>, so that this file is
+       self-contained.
+       * makepath.h: Likewise.
+
+       * getusershell.c (readname, default_index, line_size, readname):
+       Use size_t, not int, for sizes.
+       (readname): If the size overflows, report an error instead of
+       looping forever.
+
+2003-09-09  Derek Robert Price  <derek@ximbiot.com>
+
+       * getndelim2.c: Assume stdlib.h per the C89 spec.
+
+2003-09-08  Paul Eggert  <eggert@twinsun.com>
+
+       Assume C89 or better; remove K&R cruft.
+       A few of these changes were first proposed by Derek Robert Price
+       in <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00105.html>.
+
+       * addext.c: Include <string.h> unconditionally.
+       * backupfile.c: Include <string.h>, <stdlib.h> unconditionally.
+       Don't declare getenv or malloc.
+
+       * alloca.c: Include <string.h>, <stdlib.h> unconditionally.
+       (POINTER_TYPE, pointer): Remove; all uses changed to void *.
+       (NULL): Remove.
+       (find_stack_direction, alloca): Use prototypes.
+
+       * atexit.c (atexit): Define using a prototype.
+
+       * basename.c, dirname.c, stripslash.c:
+       Include <string.h> unconditionally.
+
+       * bcopy.c: Include <stddef.h>.
+       (bcopy): Define with prototype, using 'const' and 'void' and 'size_t'.
+
+       * canon-host.c: Include <stdlib.h>, <string.h> unconditionally.
+
+       * error.h (error, error_at_line, error_print_progname)
+       [! (defined (__STDC__) && __STDC__)]: Remove decls.
+       * error.c: Include error.h first, to check interface.
+       Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
+       (VA_START): Remove; all uses changeed to va_start.
+       (exit, strerror): Remove decls.
+       (error_print_progname): Prototype uncondionally.
+       Don't include <errno.h>; no longer needed.
+       (private_strerror): Remove.
+       (error_tail): Always define.
+       (error, error_at_line): Assume C89 or better; always use prototypes.
+       * fatal.c: Include "fatal.h" first, to test interface.
+       Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
+       (VA_START): Remove; all uses changed to va_start.
+       [! (HAVE_VPRINTF || HAVE_DOPRNT || _LIBC)]: Remove support for
+       this case.
+       (exit): Remove decl.
+       (fatal): Prototype unconditionally.  Assume va_start works.
+       Abort at end, to pacify gcc.
+
+       * euidaccess.c (main): Define with a prototype.
+
+       * exclude.c: Include <stdlib.h>, <string.h> unconditionally.
+
+       * exitfail.c: Include <stdlib.h> unconditionally.
+
+       * fnmatch_.h (__P): Remove.  All uses changed to assume
+       prototypes.
+       * fnmatch.c: Include fnmatch.h first, to test interface.
+       Include <string.h>, <stddef.h>, <stdlib.h> unconditionally.
+       (getenv): Remove decl.
+       (fnmatch): Define using a prototype.
+       * fnmatch_loop.c (FCT): Remove forward decl; no longer needed.
+       (FCT): Define using a prototype.
+
+       * getdate.y: Include <stdlib.h>, <string.h> unconditionally.
+
+       * gethostname.c: Include <stddef.h>.
+       (gethostname): Define with prototype.  Length is size_t, not int.
+
+2003-09-08  Paul Eggert  <eggert@twinsun.com>
+
+       * getversion.c: Remove; was migrated to backupfile.c in 1997.
+       getversion.c should have been removed then, but was accidentally
+       preserved.
+
+       * utime.c [!HAVE_UTIMES_NULL]: Include <sys/stat.h>, <fcntl.h>.
+       (utime_null): Fix typo: 'st' was sometimes called 'sb'.
+
+2003-09-07  Paul Eggert  <eggert@twinsun.com>
+
+       * time_r.c (gmtime_r, localtime_r): Fix silly typo: missing arg to
+       copy_tm_result.  Bug reported by Simon Josefsson in
+       <http://mail.gnu.org/archive/html/bug-gnulib/2003-09/msg00028.html>.
+
+2003-09-06  Paul Eggert  <eggert@twinsun.com>
+
+       * time_r.c, time_r.h: New files.
+
+       * mktime.c (my_mktime_localtime_r): Remove; all uses changed to
+       __localtime_r.
+       (__localtime_r) [!defined _LIBC]: New macro.  Include <time_r.h>.
+       (__mktime_internal) [!defined _LIBC]: Now extern, not static.
+
+       * strftime.c (my_strftime_gmtime_r): Remove; all uses changed to
+       __gmtime_r.
+       (my_strftime_localtime_r): Remove; all uses changed to __localtime_r.
+       (__gtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: New macros.
+       Include <time_r.h>.
+
+       * timegm.c: Switch to glibc implementation, with the following changes:
+       [defined HAVE_CONFIG_H]: Include <config.h>.
+       [!defined _LIBC]: Include "timegm.h" rather than <time.h>.
+       (__mktime_internal) [!defined _LIBC]: New decl.
+       (__gmtime_r) [!defined _LIBC]: New macro and function.
+       (timegm): Use a prototype, since gnulib assumes C89.
+       Do not bother declaring tmp to be const, as it's not really usefu.
+       * timegm.h: Hoist "#include <time.h>" out of #ifdef.
+       (timegm): Declare only if HAVE_DECL_TIMEGM.
+
+2003-09-03  Paul Eggert  <eggert@twinsun.com>
+
+       * human.c (human_readable): Fix bug that rounded 10501 to 10k.
+       Bug reported by Lute Kamstra in
+       <http://mail.gnu.org/archive/html/bug-gnulib/2003-09/msg00003.html>.
+
+       * getdate.y (relative_time_table): Use tDAY_UNIT for "tomorrow",
+       "yesterday", "today", and "now" rather than tMINUTE_UNIT.  Of
+       course with correspondingly smaller numbers for tomorrow and
+       yesterday.  From Tadayoshi Funaba.  Originally installed into
+       sh-utils on 1999-08-07, but the patch got lost (I guess during the
+       coreutils merge?).
+
+2003-08-31  Simon Josefsson  <jas@extundo.com>
+
+       * timegm.h: New file.
+       * timegm.c: New file.  Based on wget-1.8.2/src/http.c:mktime_from_utc.
+
+2003-08-31  Karl Berry  <karl@gnu.org>
+
+       * argp.h: update from libc.
+
+2003-08-28  Bruno Haible  <bruno@clisp.org>
+
+       * binary-io.h: Undefine O_BINARY before defining it. This avoids a
+       warning on QNX, which defines O_BINARY to 000000.
+
+2003-08-24  Bruno Haible  <bruno@clisp.org>
+
+       * binary-io.h: Include <stdio.h>, to avoid a compilation error when
+       MSVC7 <stdio.h> is included later.
+
+2003-08-20  Bruno Haible  <bruno@clisp.org>
+
+       * progname.h: New file, from GNU gettext.
+       * progname.c: New file, from GNU gettext.
+       * progreloc.c: New file, from GNU gettext.
+
+2003-08-19  Bruno Haible  <bruno@clisp.org>
+
+       * xstrdup.c: Assume <string.h> exists.
+
+2003-08-18  Jim Meyering  <jim@meyering.net>
+
+       * setenv.h: Indent nested cpp directive.
+       * vasnprintf.c: Remove trailing blanks.
+
+2003-08-17  Simon Josefsson  <jas@extundo.com>
+           Bruno Haible  <bruno@clisp.org>
+
+       * xstrndup.h: New file.
+       * xstrndup.c: New file.
+
+2003-08-17  Bruno Haible  <bruno@clisp.org>
+
+       * strndup.h: New file.
+
+2003-08-16  Paul Eggert  <eggert@twinsun.com>
+
+       * regex.h, strdup.c, strtoll.c, strtoul.c: Do not normalize white
+       space, undoing this 2003-08-12 change:
+       <http://mail.gnu.org/archive/html/bug-gnulib/2003-08/msg00080.html>
+
+2003-08-16  Jim Meyering  <jim@meyering.net>
+
+       Merge from coreutils.
+       * xstrtoimax.c: #else #if -> #elif.
+       * xstrtoumax.c: Likewise.
+
+2003-08-15  Paul Eggert  <eggert@twinsun.com>
+
+       * config.charset, ref-add.sin, ref-del.sin: Use three spaces,
+       rather than tab, after '#' in shell-script copyright notices.
+       Suggested by Bruno Haible.
+
+2003-08-15  Jim Meyering  <jim@meyering.net>
+       and Paul Eggert  <eggert@twinsun.com>
+
+       Merge from coreutils.
+       * readutmp.h (HAVE_UTMPX_H): Undef if struct utmp has the ut_exit
+       member but strut utmpx does not.  Needed for AIX 4.3.3.
+       (UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
+
+2003-08-15  Jim Meyering  <jim@meyering.net>
+
+       Merge from coreutils.
+       * xgethostname.c: Include <stdlib.h>.
+       (xghostname): Don't exit for anything other than memory-related
+       failure; just return NULL.
+       * userspec.c: Include "posixver.h".
+       (parse_user_spec): Accept `.' as a separator only
+       in pre-POSIX-200112 mode.
+       * strtoimax.c: Use #elif rather than #else #if.
+       * strftime.c (my_strftime) [!_LIBC && HAVE_TZNAME && HAVE_TZSET]:
+       Remove function, now that we can rely on a working tzset function.
+       [!_LIBC]: Ensure that the required autoconf test has been run.
+       [!defined _NL_CURRENT && HAVE_STRFTIME]:
+       Use underlying_strftime for %r.
+       * sha.c: Merge in some clean-up and optimization changes from glibc.
+       * sha.c (sha_stream) [BLOCKSIZE]: Move definition to top of file.
+       Ensure that it is a multiple of 64.
+       Rearrange loop exit tests so as to avoid performing an
+       additional fread after encountering an error or EOF.
+       * realloc.c: Update copyright date.
+
+2003-08-14  Jim Meyering  <jim@meyering.net>
+
+       Merge from coreutils.
+       * obstack.h: Whitespace changes.
+       * mountlist.c: Remove anachronistic casts of xmalloc, xrealloc,
+       and xcalloc return values.
+       (read_filesystem_list) [MOUNTED_GETFSSTAT]:
+       Use MNT_NOWAIT, rather than MNT_WAIT.  Otherwise, `df DIR' could
+       hang on OSF/1 5.1 for DIR on both local and remote file systems.
+       Reported by (and fix confirmed by) Nelson H. F. Beebe.
+       (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
+       error from mntctl.
+       Use mntctl's return value to drive the entry-processing loop, since
+       we can't rely on the value of the vmt_length member in the last
+       entry.  On some systems doing so could result in exhausting
+       virtual memory.  Based in part on a patch from Mike Jetzer.
+
+2003-08-14  Jim Meyering  <jim@meyering.net>
+       and Paul Eggert  <eggert@twinsun.com>
+
+       Merges from coreutils, plus other fixes.
+       * physmem.c: Merge in portability changes from gcc/libiberty
+       to support AIX, IRIX, Tru64, and Windows.  See the ChangeLog there
+       for credits and details.  Thanks to Kaveh Ghazi for helping
+       to keep these files in sync.
+       (ARRAY_SIZE): Define it.
+       (physmem_total, physmem_available): Add comments. From Kaveh Ghazi.
+       * memcasecmp.c: Remove unnecessary parentheses after 'defined'.
+       (memcasecmp): Don't assume size_t fits in unsigned int.
+       Remove casts and duplicate code.
+       * md5.c: Include <string.h> and <stdlib.h> unconditionally.
+       (memcpy): Remove definition.
+       Merge in some clean-up and optimization changes from glibc.
+       [BLOCKSIZE]: Move definition to top of file.
+       Ensure that it is a multiple of 64.
+       Rearrange loop exit tests so as to avoid performing an
+       additional fread after encountering an error or EOF.
+       * md5.h (md5_uintptr): Define.
+       * makepath.c (CLEANUP_CWD): Report an error if we failed to
+       return to the initial working directory.  Preserve errno
+       for caller.
+       * idcache.c: Include "xalloc.h".
+       (xmalloc, xrealloc): Remove decls.
+       (getuser): Remove casts no longer required in C89.
+       * human.c: Include stdio.h, for sprintf.
+       * group-member.c: Include "xalloc.h".
+       (xmalloc, xrealloc): Remove decls.
+       (get_group_info): Remove casts no longer required in C89.
+       * getusershell.c (readname): Remove casts no longer required in C89.
+       * gettimeofday.c (rpl_gmtime, rpl_tzset): New functions.
+       * getline.c: Whitespace fix, from coreutils.
+
+2003-08-13  Paul Eggert  <eggert@twinsun.com>
+
+       * exclude.c: Include <ctype.h>
+       (IN_CTYPE_DOMAIN): New macro.
+       (is_space): New fn.
+       (add_exclude_file): If LINE_END is a space, ignore trailing spaces
+       and empty lines.
+
+       * argp-help.c, argp-parse.c, config.charset, getopt.h:
+       Undo previous (whitespace-only) change.
+
+2003-08-12  Paul Eggert  <eggert@twinsun.com>
+
+       * argp-help.c, argp-parse.c, config.charset, getopt.h:
+       Normalize leading white space and remove trailing white space.
+       * ref-add.sin, ref-del.sin: Use '#' before empty line in copyright
+       notice, as per ../config/srclist-update.
+
+       Merge from coreutils.
+       * euidaccess.h: New file.
+       * euidaccess.c: Include it.
+       * .cppi-disable: Add printf-args.h, printf-parse.h, stdbool_.h,
+       vasnprintf.h, vasprintf.h.  Remove strdup.c, gettext.h.
+       * regex.h, strdup.c, strtoll.c, strtoul.c: Normalize white space.
+
+2003-08-11  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (local_wcslen): New function, for Solaris 2.5.1.
+       (vasnprintf): Use it instead of wcslen.
+
+2003-08-11  Bruno Haible  <bruno@clisp.org>
+
+       * stdbool_.h (_Bool): Undo last change; instead use a negative enum
+       value to ensure that _Bool promotes to int. Use #define for _Bool when
+       using the Solaris C compiler. Adds comments suggested by Paul Eggert.
+
+2003-08-10  Karl Berry  <karl@gnu.org>
+
+       * regex.h: update from libc (whitespace fix).
+
+2003-08-09  Paul Eggert  <eggert@twinsun.com>
+
+       Merge some files from coreutils.  These changes were
+       originally made by Jim Meyering.
+       * acl.c: Include <sys/types.h> before <sys/stat.h>;
+       many older Unixes require this.
+       * alloca.c (alloca): Remove cast to argument of free;
+       no longer needed in C89.
+       * alloca_.h, regex.h: Fix white space to match
+       what GNU indent does.
+
+2003-08-05  Paul Eggert  <eggert@twinsun.com>
+
+       * bumpalloc.h: Remove.
+
+2003-08-04  Paul Eggert  <eggert@twinsun.com>
+
+       * getloadavg.c: Change copyright notice and spacing to conform to
+       GNU coding style.
+
+       Merge from coreutils.
+       * error.c [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
+       From glibc.
+       * getdate.y (date): Also accept dates like May-23-2003; suggestion
+       from Karl Berry, implemented by Jim Meyering.
+       * getgroups.c: Include "xalloc.h" instead of declaring xalloc fns;
+       from Dmitry V. Levin.
+       Remove anachronistic cast of xrealloc.
+       * fnmatch_.h (__const): Remove.  Use 'const'.
+       * fnmatch_loop.c (NEW_PATTERN): Cast alloca return value to proper
+       type. Otherwise, it wouldn't compile with at least /bin/cc on
+       ymp-cray-unicos9.0.2.X.
+       Combine two mostly-identical uses of alloca into one.
+       Thanks to the Cray-Cyber project for access to a Cray Y-MP.
+
+2003-08-04  Dave Love <d.love@dl.ac.uk>
+
+       [From Emacs.]
+
+       * getloadavg.c: Check `__unix' as well as `unix'.  Use #ifdef, not
+       #if.  Check HAVE_LIBKSTAT as well as LOAD_AVE_TYPE.  Check
+       F_SETFD, not FD_SETFD.  Use HAVE_STRUCT_NLIST_N_UN_N_NAME, not
+       obsolete NLIST_NAME_UNION.
+       [__GNU__]: Undef BSD and FSCALE.
+       [!NLIST_STRUCT]: Remove conditional definition of NLIST_STRUCT.
+
+2003-08-03  Paul Eggert  <eggert@twinsun.com>
+
+       * stdbool_.h (_Bool): Make it signed char, instead of
+       an enum type, so that it's guaranteed to promote to int.  See:
+       <http://mail.gnu.org/archive/html/bug-gnulib/2003-07/msg00124.html>
+
+2003-07-31  Paul Eggert  <eggert@twinsun.com>
+
+       * strerror.c: Include config.h, limits.h.  Declare sprintf.
+       (strerror): Don't assume that a printable int fits in 14 bytes.
+
+2003-07-24  Derek Robert Price  <derek@ximbiot.com>
+           Bruno Haible  <bruno@clisp.org>
+
+       * getline.h (getline, getdelim): Change return type to ssize_t.
+       * getline.c (getline, getdelim): Likewise.
+       Remove _GNU_SOURCE define; now it's defined in config.h through
+       m4/getline.m4.
+
+2003-07-22  Paul Eggert  <eggert@twinsun.com>
+
+       * xalloc.h (XCALLOC, XREALLOC, CCLONE): Fix under- and
+       over-parenthesization in macros.
+
+       Sync with coreutils.
+
+       * xalloc.h (XMALLOC, XCALLOC, XREALLOC): Remove casts not
+       required by C99.
+
+       Use `exit_failure' for xalloc and xmemcoll instead of their own
+       private exit-failure variables.
+       * xalloc.h (xalloc_exit_failure): Remove.
+       * xmalloc.c: Likewise.  Include exitfail.h.
+       (xalloc_die): Use exit_failure instead of xalloc_exit_failure.
+       * xmemcoll.h (xmemcoll_exit_failure): Remove.
+       * xmemcoll.c: Likewise.  Include exitfail.h.
+       (xmemcoll): Use exit_failure instead of xalloc_exit_failure.
+
+2003-07-18  Paul Eggert  <eggert@twinsun.com>
+
+       * closeout.h (close_stdout_set_status, close_stdout_status): Remove.
+       * closeout.c: Likewise.  Include "closeout.h" right after config.h,
+       to test that it can stand by itself.  Include "exitfail.h".
+       Clients should set exit_failure instead.
+       (EXIT_FAILURE): Remove; no longer needed.  Do not include <stdlib.h>.
+
+2003-07-18  Andreas Schwab  <schwab@suse.de>
+
+       * memcoll.c (memcoll) [!HAVE_STRCOLL]: Clear errno.
+
+2003-07-18  Bruno Haible  <bruno@clisp.org>
+
+       * getndelim2.h: New file.
+       * getndelim2.c: Make into a module of its own. Include config.h,
+       getndelim2.h.
+       (getndelim2): Make non-static. Change return type to ssize_t.
+       * getline.h: Change argument names.
+       * getline.c: Include getndelim2.h instead of getndelim2.c.
+       * getnline.c: Include getndelim2.h.
+
+2003-07-17  Bruno Haible  <bruno@clisp.org>
+
+       * Makefile.am: Remove file.
+       * Makefile.in: Remove file.
+
+2003-07-17  Bruno Haible  <bruno@clisp.org>
+
+       * getnline.h: New file.
+       * getnline.c: New file.
+       * getndelim2.c: New file, extracted from getline.c.
+       (getndelim2): Renamed from getdelim2, with added nmax argument.
+       * getline.c: Include getndelim2.c.
+       (getdelim2): Moved out to getndelim2.c.
+       (getline, getdelim): Update.
+
+2003-07-15    <karl@gnu.org>
+
+       * vasnprintf.c: update from gettext.
+
+2003-07-15  Jim Meyering  <jim@meyering.net>
+
+       * makepath.c (make_path): Enclose diagnostic in _(...).
+
+2003-07-14  Paul Eggert  <eggert@twinsun.com>
+
+       * asnprintf.c, asprintf.c, config.charset, gettext.h,
+       localcharset.c, localcharset.h, mkdtemp.c, printf-args.c,
+       printf-args.h, printf-parse.c, printf-parse.h, ref-add.sin,
+       ref-del.sin, setenv.c, unsetenv.c, vasnprintf.c, vasnprintf.h,
+       vasprintf.c, vasprintf.h: Regenerate.  These files are now being
+       updated automatically by ../config/srclist-update.  This changes
+       their license from LPGL to GPL.
+
+2003-07-14  Jim Meyering  <jim@meyering.net>
+
+       Don't emit diagnostics.  Let callers do that.
+       * save-cwd.c: Don't include "error.h".
+       (save_cwd): Don't call error.  Ensure that errno is valid
+       when returning nonzero.
+
+       * save-cwd.h (restore_cwd): Update prototype.
+       * save-cwd.c (restore_cwd): Remove two parameters.
+       Simplify.  Don't call error upon failure.  Let callers do that.
+       (save_cwd): Mention that Irix 5.3 has the same problem as SunOS 4
+       when auditing is enabled.  But don't bother updating the #if.
+
+2003-07-14  Simon Josefsson  <jas@extundo.com>
+
+       * mempcpy.h: New file.
+       * mempcpy.c: New file.
+
+2003-07-14  Paul Eggert  <eggert@twinsun.com>
+
+       * ceill.c, expl.c, floorl.c, frexpl.c, ldexpl.c, mathl.h,
+       sincosl.c, sqrtl.c, trigl.c, trigl.h, poll.c, poll_.h, mkstemp.c,
+       unicodeio.c, unicodeio.h, unlocked-io.h:
+       Switch from LGPL to GPL.
+
+2003-07-11  Alexandre Duret-Lutz  <adl@gnu.org>
+
+       * obstack.h (__INT_TO_PTR): Revert change of 2003-03-13;
+       it breaks C++ compilation.
+       [!__GNUC__ || !__STDC__] (obstack_finish): Cast result to void*.
+
+2003-07-10  Jim Meyering  <jim@meyering.net>
+
+       * vasnprintf.c: Remove trailing blanks.
+       Make cpp indentation consistent.
+
+2003-07-09  Paul Eggert  <eggert@twinsun.com>
+
+       * alloca_.h, euidaccess.c, getpass.c, memrchr.c, obstack.h,
+       posixver.c, strftime.c, strnlen.c, strverscmp.c:
+       Switch from LGPL to GPL.
+
+2003-07-07  Paul Eggert  <eggert@twinsun.com>
+
+       * mktime.c: Fix some boundary cases and remove need for floating point.
+
+       Issue a compile-time diagnostic if time_t is floating point, or if
+       two's complement arithmetic is not in effect, or if arithmetic
+       right shift does not propagate the sign.  These assumptions were
+       all in the original code but they weren't checked.
+
+       (TIME_T_MIDPOINT, verify): New macros.
+       (__isleap): Remove; it has integer overflow problems.
+       (leapyear): New function, without those problems.
+       (ydhms_tm_diff): Remove; splitting into two parts.
+       (ydhms_diff): New function, containing the arithmetic part of
+       the old ydhms_tm_diff function.  Issue a compile-time
+       diagnostic if we are not using C99 integer division.
+       Avoid casts when possible.
+       (guess_time_tm): New function, containing the checking part of
+       the old ydhms_tm_diff function.  Return the new value, rather than
+       the difference between it and the old.  Accept a new argument T
+       so that *T specifies the old value.  Check for overflow in the result.
+
+       (__mktime_internal): Use a time_t offset, not a long int offset.
+       This undoes the 2003-06-04 change, which is no longer needed now
+       that we have better overflow checking.
+       (localtime_offset): Likewise.
+
+       (__mktime_internal): Avoid harmful overflow on hosts where time_t
+       and long are 64-bit but int is only 32-bit.
+       (ydhms_diff): Use long int to store year1 and yday1.
+       Issue a compile-time diagnostic if long int is not wide enough.
+
+       (__mktime_internal): Use long int to store adjusted year and yday.
+       Use plain C rather than preprocessor commands, if that doesn't
+       affect efficiency.
+       Check for overflow (and try to repair) after each probe
+       rather than checking only at the very end.  This avoids some bugs
+       (e.g., southern hemisphere, behind GMT, and GMT offset at minimum time
+       does not equal GMT offset at maximum time).
+       Use integer to check for overflow rather than floating point; this
+       is more portable to non-IEEE hosts, and is a tad faster.
+       When we detect that we are oscillating between two values,
+       don't check whether tm_isdst has the requested value, since
+       we already know the answer.  When tm_isdst has the wrong value,
+       use a different heuristic to find the right one, based on the
+       extreme values actually observed in practice in tz2003a,
+       rather than the (overly optimistic) "previous 3 calendar quarters".
+
+       (not_equal_tm, print_tm, check_result): Use "const T" rather than
+       "T const" to accommodate glibc style.
+       (check_result): Use less-confusing report format.  "long" -> "long int.
+       (main): Likewise.
+       Don't loop if the iteration overflows time_t.
+       Allow a negative step in the iteration.
+
+2003-07-01  Paul Eggert  <eggert@twinsun.com>
+
+       * xreadlink.c: Include <sys/types.h> unconditionally, instead of
+       having it depend on HAVE_SYS_TYPES_H.
+
+2003-06-25  Bruno Haible  <bruno@clisp.org>
+
+       * readlink.c: New file.
+
+2003-06-20  Bruno Haible  <bruno@clisp.org>
+
+       Assume C89, so PARAMS isn't needed.
+       * unicodeio.h (PARAMS): Remove.
+       * unicodeio.c: Don't use PARAMS.
+
+2003-06-18  Jim Meyering  <jim@meyering.net>
+
+       Merge changes from coreutils.
+       * readutmp.c: Include <string.h> and <stdlib.h> unconditionally.
+       Remove explicit declarations of xmalloc and realloc.
+       Include xalloc.h.
+       (read_utmp): Remove anachronistic cast of xmalloc.
+
+2003-06-17  Paul Eggert  <eggert@twinsun.com>
+
+       Assume C89, so PARAMS isn't needed.
+       * backupfile.h (PARAMS): Remove.  All uses removed.
+       * closeout.h, dirname.h, filemode.h, fsusage.h, getdate.h, getline.h,
+       group-member.h, hard-locale.h, hash.h, linebuffer.h, long-options.h,
+       makepath.h, memcasecmp.h, memcoll.h, modechange.h, mountlist.h,
+       path-concat.h, physmem.h, posixtm.h, quote.h, readutmp.h, same.h,
+       save-cwd.h, savedir.h, stdio-safer.h, strtoimax.c, strverscmp.h,
+       unistd-safer.h, version-etc.h, xalloc.h, xreadlink.h, xstrtod.h,
+       xstrtol.h: Likewise.
+       * filemode.h, hard-locale.h, memcoll.h, modechange.h, physmem.h,
+       same.h, strverscmp.h: Do not include config.h; no longer needed.
+       Anyway, config.h should always be included before any other file.
+
+2003-06-11  Simon Josefsson  <jas@extundo.com>
+
+       * sysexit_.h: New file.
+
+2003-05-20  Derek Price  <derek@ximbiot.com>
+
+       * stat.c [LSTAT]: Compile/use slash_aware_lstat only if it is necessary.
+
+2003-06-10  Simon Josefsson  <jas@extundo.com>
+
+       * strchrnul.h: New file.
+       * strchrnul.c: New file.
+
+2003-06-10  Simon Josefsson <jas@extundo.com>
+
+       * argp.h: New file, from glibc.
+       * argp-ba.c: New file, from glibc.
+       * argp-eexst.c: New file, from glibc.
+       * argp-fmtstream.c: New file, from glibc.
+       * argp-fmtstream.h: New file, from glibc.
+       * argp-fs-xinl.c: New file, from glibc.
+       * argp-help.c: New file, from glibc.
+       * argp-namefrob.h: New file, from glibc.
+       * argp-parse.c: New file, from glibc.
+       * argp-pv.c: New file, from glibc.
+       * argp-pvh.c: New file, from glibc.
+       * argp-xinl.c: New file, from glibc.
+
+2003-06-07  Jim Meyering  <jim@meyering.net>
+
+       * readtokens.h: Put `Free Software Foundation, Inc.'
+       in place of my name in the copyright comment.
+       Remove definition and uses of __P.
+
+       From coreutils.
+       * stat.c: Don't declare xmalloc explicitly.
+       Instead, include "xalloc.h".
+       * readtokens.c (readtokens): Remove anachronistic casts of xmalloc,
+       xrealloc, and xcalloc return values.
+       * xgetcwd.c (xgetcwd): Include "xgetcwd.h".
+       Improve comment.
+       * xgetcwd.h: Remove definition/uses of PARAMS.
+
+2003-06-06  Jim Meyering  <jim@meyering.net>
+
+       * stdbool_.h: Renamed from stdbool.h.in.
+
+2003-06-06  Jim Meyering  <jim@meyering.net>
+
+       Merge from coreutils.
+       * same.c: (same_name): Declare *_basename locals to be `const'.
+       Consolidate declarations and initializations of *_base* locals.
+
+       Merge from coreutils.
+       This avoids a core dump on systems without GNU putenv,
+       when running `env -u SOME_ALREADY_UNSET_VARIABLE'.
+       * putenv.c (__set_errno, LOCK, UNLOCK): Define.
+       (unsetenv): New static function, from GNU libc.
+       (rpl_putenv): Use it.
+
+       * modechange.c: Remove trailing blanks.
+
+       Merge from coreutils.
+       * fsusage.c: Remove declaration of statfs.
+       It conflicted with one from OSF/1 5.1 in <sys/mount.h>.
+
+       * posixtm.c: Include <stdbool.h> unconditionally.
+
+2003-06-05  Paul Eggert  <eggert@twinsun.com>
+
+       * mktime.c (__mktime_internal): When resolving a tm_isdst
+       mismatch, look in future quarters as well as past.  This fixes a
+       bug when processing fall-backwards gaps immediately after a long
+       period of daylight-saving time.
+
+       * mktime.c: Assume freestanding C89 or better.
+       (HAVE_LIMITS_H): Remove.  Assume it's 1.
+       (__P): Remove; not used.
+       (CHAR_BIT, INT_MIN, INT_MAX): Remove; <limits.h> defines them.
+       (mktime, not_equal_tm, print_tm, check_result,
+       main): Use prototypes.  Use const * where appropriate.
+       (main): Fix typo in testing code that uncovered by above changes.
+       (Local Variables): Remove -DHAVE_LIMITS_H from compile-command.
+
 2003-06-04  Paul Eggert  <eggert@twinsun.com>
 
 2003-06-04  Paul Eggert  <eggert@twinsun.com>
 
+       * mktime.c: Fix Debian bug 177940
+       <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=177940>.
+       (localtime_offset): Now long int, not time_t, because we want it
+       to be guaranteed to be signed.  All uses changed.
+       (__mktime_internal): If overflow would occur when adding offset,
+       don't add it.
+
+       Merge 'human' changes from coreutils.  Rewrite to support
+       locale-specific notations like thousands separators.
+       * human.c: Simplify authorship notice.
+       Include human.h immediately after config.h.
+       <sys/types.h>, <stdio.h>: Do not include; no longer needed.
+       <limits.h>: Do not include, since human.h does.
+       (SIZE_MAX, UINTMAX_MAX): New macros.
+       <strings.h>: Include if HAVE_STRINGS_H, not if !HAVE_STRING_H.
+       <locale.h>: Include if HAVE_LOCALE_H and HAVE_LOCALECONV.
+       (HUMAN_READABLE_SUFFIX_LENGTH_MAX): New macro.
+       (power_letter): Renamed from suffixes.
+       (generate_suffix_backwards): Remove.
+       (adjust_value): Now takes int style (because of human.h changes)
+       and long double value (for greater precision on some platforms).
+       (group_number): New function.
+       (human_readable): Use it.  Use integer options, not enum.
+       Put the options before the sizes in the arg list.
+       Support all the new options.
+       The old human_readable function has been removed;
+       use inttostr.h instead.
+       (human_readable, default_block_size, humblock):
+       Use uintmax_t, not int, for block sizes.
+       (human_readable_inexact, block_size_types): Remove.
+       (block_size_opts): New constant.
+       (human_options): Renamed from human_block_size, with new signature
+       that allows block sizes up to UINTMAX_MAX.  All callers changed.
+       * human.h: Add copyright and authorship notice.
+       Include <limits.h> and <stdbool.h> unconditionally.
+       (PARAMS): Remove.  All uses removed.
+       (LONGEST_HUMAN_READABLE): Add support for thousands separator.
+       (enum human_inexact_style): Remove tag; now a nameless enum.
+       (human_floor, human_ceiling, human_round_to_even): Now have
+       values 2, 0, 1 rather than -1, 1, 0.
+       (human_group_digits, human_suppress_point_zero, human_autoscale,
+       human_base_1024, human_SI, human_B): New constants.
+       (human_readable_inexact, human_block_size): Remove.
+       (human_readable): Size args are now uintmax_t, not int.
+       (human_options): New decl.
+
        * exclude.c: (new_exclude, add_exclude): Remove casts that are
        unnecessary now that we assume C89 or better.  This change
        imported from coreutils.
        * exclude.c: (new_exclude, add_exclude): Remove casts that are
        unnecessary now that we assume C89 or better.  This change
        imported from coreutils.
        posixtime failures better.
        Improve the test data (in comments only).
 
        posixtime failures better.
        Improve the test data (in comments only).
 
-2003-06-02  Jim Meyering  <jim@meyering.net>
-
-       * stdbool.h.in: Rename to stdbool.hin.
-
 2003-05-30    <karl@gnu.org>
 
        * mktime.c: update from libc.
 2003-05-30    <karl@gnu.org>
 
        * mktime.c: update from libc.
        http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00017.html
 
 2003-03-03  Paul Eggert  <eggert@twinsun.com>
        http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00017.html
 
 2003-03-03  Paul Eggert  <eggert@twinsun.com>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * mbswidth.h: Include <wchar.h>. Needed for UnixWare 7.1.1.
        Reported by John Hughes, see
 
        * mbswidth.h: Include <wchar.h>. Needed for UnixWare 7.1.1.
        Reported by John Hughes, see
        2001-12-20  Bruno Haible  <bruno@clisp.org>
 
                * setenv.c (__add_to_environ): Don't call realloc(NULL,...),
        2001-12-20  Bruno Haible  <bruno@clisp.org>
 
                * setenv.c (__add_to_environ): Don't call realloc(NULL,...),
-               use malloc instead. For SunOS4.
+               use malloc instead. For SunOS 4.
 
        2001-12-11  Bruno Haible  <bruno@clisp.org>
 
 
        2001-12-11  Bruno Haible  <bruno@clisp.org>
 
 2002-06-22  Jim Meyering  <meyering@lucent.com>
 
        * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
 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.
+       redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h.
 
 2002-06-22  Paul Eggert  <eggert@twinsun.com>
 
 
 2002-06-22  Paul Eggert  <eggert@twinsun.com>
 
        included.
 
        * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
        included.
 
        * regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
-        __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
+       __unbounded, and __ptrvalue.  Reported by Uwe H. Steinfeld.
 
 2001-11-30  Akim Demaille  <akim@epita.fr>
 
 
 2001-11-30  Akim Demaille  <akim@epita.fr>
 
 2001-11-18  Jim Meyering  <meyering@lucent.com>
 
        * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
 2001-11-18  Jim Meyering  <meyering@lucent.com>
 
        * tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
-       on SunOS4.
+       on SunOS 4.
 
        * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
        files will be created before anything else.
 
        * Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
        files will be created before anything else.
        * Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
 
        * regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
        * 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
+       doesn't conflict with sparc Solaris 7's definition in
        /usr/include/sys/int_types.h.
 
        * exclude.c: Use `""', not `<>' to #include non-system header files.
        /usr/include/sys/int_types.h.
 
        * exclude.c: Use `""', not `<>' to #include non-system header files.
 
        * argmatch.c: Include "quote.h".
        (argmatch_invalid): Remove explicit `' quotes.  Instead, use the
 
        * argmatch.c: Include "quote.h".
        (argmatch_invalid): Remove explicit `' quotes.  Instead, use the
-       quote function.  Reported by Göran Uddeborg.
+       quote function.  Reported by Göran Uddeborg.
 
 2001-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>
 
 
 2001-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>
 
 
 2001-01-16  Jim Meyering  <meyering@lucent.com>
 
 
 2001-01-16  Jim Meyering  <meyering@lucent.com>
 
-       * basename.c: Include <stdio.h>, needed by assert on SunOS4.
+       * basename.c: Include <stdio.h>, needed by assert on SunOS 4.
        From Bruno Haible.
 
 2001-01-14  Jim Meyering  <meyering@lucent.com>
        From Bruno Haible.
 
 2001-01-14  Jim Meyering  <meyering@lucent.com>
 
 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
 
 
 2000-07-05  Bruno Haible  <haible@clisp.cons.org>
 
-       * xgethostname.c (xgethostname): Protect against the SunOS5.5 bug
+       * xgethostname.c (xgethostname): Protect against the SunOS 5.5 bug
        by allocating a larger buffer. Test the gethostname return value for
        being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
        returns an error and ENAMETOOLONG isn't defined.
        by allocating a larger buffer. Test the gethostname return value for
        being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
        returns an error and ENAMETOOLONG isn't defined.
 2000-06-04  Jim Meyering  <meyering@lucent.com>
 
        * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
 2000-06-04  Jim Meyering  <meyering@lucent.com>
 
        * getugroups.c (getugroups): Cast -1 to gid_t, for systems like
-       SunOS4.1.4 for which gid_t is an unsigned type.
+       SunOS 4.1.4 for which gid_t is an unsigned type.
 
 2000-06-03  Jim Meyering  <meyering@lucent.com>
 
 
 2000-06-03  Jim Meyering  <meyering@lucent.com>
 
        Reported by Christian Krackowizer.
 
        * quotearg.c (ISASCII): Add #undef and move definition to follow
        Reported by Christian Krackowizer.
 
        * quotearg.c (ISASCII): Add #undef and move definition to follow
-       inclusion of wctype.h to work around solaris2.6 namespace pollution.
+       inclusion of wctype.h to work around Solaris 2.6 namespace pollution.
        (ISPRINT): Likewise.
        Reported by Tom Tromey.
 
        (ISPRINT): Likewise.
        Reported by Tom Tromey.
 
 
 2000-01-17  Jim Meyering  <meyering@lucent.com>
 
 
 2000-01-17  Jim Meyering  <meyering@lucent.com>
 
-       * interlock: Remove unused file.  Reported by François Pinard.
+       * interlock: Remove unused file.  Reported by François Pinard.
 
 2000-01-16  Paul Eggert  <eggert@twinsun.com>
 
 
 2000-01-16  Paul Eggert  <eggert@twinsun.com>
 
        alert, backslash, formfeed, and vertical tab unnecessarily in
        shell quoting style.
 
        alert, backslash, formfeed, and vertical tab unnecessarily in
        shell quoting style.
 
-Local Variables:
-version-control: never
-End:
+
+Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+  Free Software Foundation, Inc.
+Copying and distribution of this file, with or without modification,
+are permitted provided the copyright notice and this notice are preserved.