Add strtok_r.
[gnulib.git] / lib / ChangeLog
index 8b8266d..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.
 
        Merge some files from coreutils.  These changes were
        originally made by Jim Meyering.
-       * lib/acl.c: Include <sys/types.h> before <sys/stat.h>;
+       * acl.c: Include <sys/types.h> before <sys/stat.h>;
        many older Unixes require this.
-       * lib/alloca.c (alloca): Remove cast to argument of free;
+       * alloca.c (alloca): Remove cast to argument of free;
        no longer needed in C89.
-       * lib/alloca_.h, lib/regex.h: Fix white space to match
+       * alloca_.h, regex.h: Fix white space to match
        what GNU indent does.
 
 2003-08-05  Paul Eggert  <eggert@twinsun.com>
        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.