+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>
+
+ * 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.
+
+ * mktime.c (__mktime_internal): Do not reject negative timestamps
+ arbitrarily. This is the same patch as 2003-05-28, but it got lost
+ in the 2003-05-30 sync from glibc.
+
+ .h files should stand alone, but we shouldn't include <sys/types.h>
+ if we can get away with just <stddef.h>.
+
+ * __fpending.h, addext.c, backupfile.c, exclude.c, getline.c,
+ malloc.c, putenv.c, realloc.c, strcasecmp.c: Include <stddef.h>
+ rather than <sys/types.h>, as we merely need size_t.
+ * dirname.h, memcoll.h, xalloc.h, xmemcoll.h: Include <stddef.h>,
+ to get size_t.
+ * hash.h, linebuffer.h, readtokens.h, stdio-safer.h, version-etc.h:
+ Include <stdio.h>, to get FILE.
+ * memcasecmp.c: Don't include <sys/types.h>, as we can assume
+ memcasecmp.h has included <stddef.h> and all we need is size_t.
+ * memcoll.c: Include "memcoll.h", which gets us size_t and checks
+ our interface, instead of including <sys/types.h>
+
+2003-06-02 Paul Eggert <eggert@twinsun.com>
+
+ [from coreutils]
+ Fix some minor time-related bugs with POSIX time arguments.
+ Some valid time stamps were being rejected (notably -1, and
+ time stamps before 1900 on 64-bit hosts). And some invalid
+ time stamps were being accepted, e.g. September 31.
+
+ * posixtm.h (posixtime): Return bool instead of time_t, so
+ that we can return (time_t) -1 successfully.
+ * posixtm.c: Likewise.
+ [HAVE_STDBOOL_H]: Include <stdbool.h>.
+ (bool, false, true) [!HAVE_STDBOOL_H]: New type.
+ (t): Remove static var.
+ (year, posix_time_parse): Now takes struct tm * arg to modify, instead
+ of static var. All uses changed.
+ (year): Do not reject years before 1900; they can occur with
+ 64-bit time_t.
+ (posix_time_parse): Do not check for out-of-range components;
+ that is now the caller's responsibility, since our checks were
+ only approximations.
+ (posixtime): Use mktime to check for out-of-range components,
+ since it knows them exactly.
+ If mktime returns (time_t) -1, check whether an error actually occurred
+ by invoking localtime on -1.
+ (main) [TEST_POSIXTIME]: Check for input data errors, and report
+ posixtime failures better.
+ Improve the test data (in comments only).
+
+2003-05-30 <karl@gnu.org>
+
+ * mktime.c: update from libc.
+
+2003-05-30 Bruno Haible <bruno@clisp.org>
+
+ * config.charset: Upgrade to gettext-0.12.1 and libiconv-1.9.1.
+ * localcharset.h: Likewise.
+ * localcharset.c: Likewise.
+
+2003-05-28 Paul Eggert <eggert@twinsun.com>
+
+ Assume the headers required for C89 freestanding compilers.
+ * addext.c, backupfile.c, fsusage.c, human.c, pathmax.h,
+ rpmatch.c, userspec.c, xreadlink.c, xstrtol.c: Include <limits.h>
+ without checking for HAVE_LIMITS_H.
+ * backupfile.c, fsusage.c, hash.c, human.c, safe-read.c, userspec.c,
+ xstrtol.c (CHAR_BIT) : Don't define, since <limits.h> is guaranteed
+ to do that.
+ * fatal.c: Include <stdarg.h> without checking for __STDC__.
+ * exclude.c: Include <stdbool.h> unconditionally.
+ * tempname.c: Include <stddef.h> unconditionally.
+ * hash.c: Include <limits.h>, since we no longer define CHAR_BIT.
+ * modechange.c, rpmatch.c (NULL): Don't define, since
+ <stddef.h> does that.
+ * quote.c: Dont include <stddef.h> or <sys/types.h>; not needed.
+ * safe-read.c (INT_MAX): Don't define, since <limits.h> does that.
+ * safe-read.c (TYPE_MINIMUM, TYPE_MAXIMUM): Remove; no longer needed.
+ * xstrtol.c: Likewise.
+ * safe-read.c: Remove TYPE_SIGNED; no longer needed.
+ * savedir.c: Include <stddef.h> instead of defining NULL.
+
+ * addext.c (addext): Use assignment rather than cast, to avoid
+ warnings on some platforms.
+
+ * mktime.c (__mktime_internal): Do not reject negative timestamps
+ arbitrarily.
+
+2003-05-10 Bruno Haible <bruno@clisp.org>
+
+ * linebreak.c (iconv_string_length): Don't return -1 just because the
+ string is longer than 4 KB.
+
+2003-05-12 Jim Meyering <jim@meyering.net>
+
+ * strftime.c (my_strftime): Let the `-' (no-pad) flag affect
+ the space-padded-by-default conversion specifiers, %e, %k, %l.
+
+2003-05-03 Bruno Haible <bruno@clisp.org>
+
+ Upgrade to Unicode-4.0.
+ * linebreak.c (nonspacing_table_data): Change width of U+00AD,
+ U+0350..U+0357, U+035D..U+035F, U+0600..U+0603, U+0610..U+0615,
+ U+0656..U+0658, U+0A01, U+0AE2..U+0AE3, U+0CBC, U+17B4..U+17B5,
+ U+17DD, U+1920..U+1922, U+1927..U+192B, U+1932, U+1939..U+193B
+ from 1 to 0. Change width of U+0CBF, U+0CC6, U+180E from 0 to 1.
+ (uc_width): Change width of U+4DC0..U+4DFF from 2 to 1. Change width
+ of U+2A6D7..U+2F7FF, U+2FA1E..U+2FFFD, U+30000..U+3FFFD from 1 to 2.
+ Change width of U+E0100..U+E01EF from 1 to 0.
+
+2003-04-25 Bruno Haible <bruno@clisp.org>
+
+ * copy-file.c: Include <stddef.h>, for size_t.
+
+2003-04-25 Jim Meyering <jim@meyering.net>
+
+ * copy-file.c (copy_file_preserving): Declare buf_size to be
+ of type size_t, not int.
+
+2003-04-11 Jim Meyering <jim@meyering.net>
+
+ Merge changes from Coreutils.
+
+ 2003-03-22 Jim Meyering <jim@meyering.net>
+
+ * strftime.c (widen): Cast alloca return value to proper type.
+
+ 2003-01-19 Ulrich Drepper <drepper@redhat.com>
+
+ From GNU libc.
+ * strftime.c (my_strftime): Handle very large width
+ specifications for numeric values correctly. Improve checks for
+ overflow.
+
+ 2003-01-19 Jim Meyering <jim@meyering.net>
+
+ * strftime.c (widen) [COMPILE_WIDE]: Merge nearly-identical definitions.
+ (nl_get_alt_digit) [! defined my_strftime]: Define.
+ (my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of
+ _nl_get_alt_digit and _nl_get_walt_digit.
+
+ * strftime.c (my_strftime): Merge in locale-related changes from libc.
+ These changes have no effect outside of _LIBC.
+
+2003-04-10 Bruno Haible <bruno@clisp.org>
+
+ * findprog.h: New file, from GNU gettext.
+ * findprog.c: New file, from GNU gettext.
+
+2003-04-05 Jim Meyering <jim@meyering.net>
+
+ Merge changes from Coreutils.
+
+ * exclude.h (PARAMS): Remove definition and uses.
+ * exclude.c: Remove uses of `PARAMS'.
+
+ * dirname.c [TEST_DIRNAME]: Update build instructions for test.
+ Add test-cases for DOS filenames. Declare program_name.
+ (main): Set up program_name. Patch by Rich Dawe.
+
+ * mountlist.c (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-04-04 Bruno Haible <bruno@clisp.org>
+
+ * linebreak.h: New file, from GNU gettext.
+ * linebreak.c: New file, from GNU gettext with slight modifications.
+ * lbrkprop.h: New file, from GNU gettext.
+
+2003-04-03 Bruno Haible <bruno@clisp.org>
+
+ * utf8-ucs4.h: New file, from GNU gettext.
+ * utf16-ucs4.h: New file, from GNU gettext.
+ * ucs4-utf8.h: New file, from GNU gettext.
+ * ucs4-utf16.h: New file, from GNU gettext.
+
+2003-04-02 Bruno Haible <bruno@clisp.org>
+
+ * binary-io.h: New file, from GNU gettext.
+
+2003-04-01 Bruno Haible <bruno@clisp.org>
+
+ * pathname.h: New file, from GNU gettext.
+ * concatpath.c: New file, from GNU gettext.
+
+2003-03-30 Bruno Haible <bruno@clisp.org>
+
+ * copy-file.c (copy_file_preserving): Don't set owner if the function
+ chown() doesn't exist.
+
+2003-03-28 Bruno Haible <bruno@clisp.org>
+
+ * copy-file.h: New file, from GNU gettext.
+ * copy-file.c: New file, from GNU gettext.
+
+2003-03-18 Jim Meyering <jim@meyering.net>
+
+ * quote.c (quote_n): Fix typo in comment.
+
+2003-03-14 Jim Meyering <jim@meyering.net>
+
+ Merge changes from Coreutils.
+ * obstack.h (obstack_object_size): Declare temporary, __o,
+ to be const, in order to avoid warnings.
+ (obstack_room): Likewise.
+ (obstack_empty_p): Likewise.
+
+2003-03-13 Paul Eggert <eggert@twinsun.com>
+
+ Merge changes from Bison.
+ * obstack.h: (__INT_TO_PTR) [__STDC__]: Cast result to
+ (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
+ when compiling Bison 1.875's `bitset bset = obstack_alloc
+ (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
+ * hash.c: Include <stdbool.h> unconditionally.
+
+2003-03-09 Paul Eggert <eggert@twinsun.com>
+
+ * argmatch.c (EXIT_FAILURE): Define if the system doesn't.
+ Reported by Bruce Becker; see:
+ 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>
+
+ * mbswidth.h: Include <wchar.h>. Needed for UnixWare 7.1.1.
+ Reported by John Hughes, see
+ http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html
+
+2003-02-19 Paolo Bonzino <bonzini@gnu.org>
+
+ * poll_.h: New file.
+ * poll.c: New file.
+
+2003-02-18 Paolo Bonzino <bonzini@gnu.org>
+
+ * mathl.h: New file.
+ * acosl.c: New file.
+ * asinl.c: New file.
+ * atanl.c: New file.
+ * ceill.c: New file.
+ * cosl.c: New file.
+ * expl.c: New file.
+ * floorl.c: New file.
+ * frexpl.c: New file.
+ * ldexpl.c: New file.
+ * logl.c: New file.
+ * sincosl.c: New file.
+ * sinl.c: New file.
+ * sqrtl.c: New file.
+ * tanl.c: New file.
+ * trigl.c: New file.
+ * trigl.h: New file.
+
+2003-02-17 Bruno Haible <bruno@clisp.org>
+
+ * mkdtemp.h: New file, from GNU gettext.
+ * mkdtemp.c: New file, from GNU gettext.
+
+2003-01-31 Bruno Haible <bruno@clisp.org>
+
+ * rename.c: #undef rename before defining rpl_rename.
+ * strnlen.c: #undef strnlen, define rpl_strnlen instead of strnlen.
+
+2003-01-30 Bruno Haible <bruno@clisp.org>
+
+ * printf-args.h: New file, from GNU gettext.
+ * printf-args.c: New file, from GNU gettext.
+ * printf-parse.h: New file, from GNU gettext.
+ * printf-parse.c: New file, from GNU gettext.
+ * vasnprintf.h: New file, from GNU gettext.
+ * vasnprintf.c: New file, from GNU gettext.
+ * asnprintf.c: New file, from GNU gettext.
+ * vasprintf.h: New file, from GNU gettext with modifications.
+ * vasprintf.c: New file, from GNU gettext.
+ * asprintf.c: New file, from GNU gettext.
+
+2003-01-29 Bruno Haible <bruno@clisp.org>
+
+ * stpncpy.h: New file, from GNU gettext with modifications.
+ * stpncpy.c: New file, from GNU gettext with modifications.
+
+2003-01-28 Bruno Haible <bruno@clisp.org>
+
+ * c-ctype.h: New file, from GNU gettext, with changes suggested by
+ Paul Eggert.
+ * c-ctype.c: New file, from GNU gettext, with changes suggested by
+ Paul Eggert.
+
+2003-01-27 Bruno Haible <bruno@clisp.org>
+
+ * xsetenv.h: New file, from GNU gettext.
+ * xsetenv.c: New file, from GNU gettext.
+
+2003-01-23 Bruno Haible <bruno@clisp.org>
+
+ * minmax.h: New file, from GNU gettext, with comments from Paul Eggert.
+
+2003-01-22 Bruno Haible <bruno@clisp.org>
+
+ * exit.h: New file, from GNU gettext.
+
+2003-01-11 Bruno Haible <bruno@clisp.org>
+
+ * stpcpy.h (stpcpy): Use ANSI C function declarations.
+ * strcase.h (strcasecmp, strncasecmp): Likewise.
+
+2003-01-14 Jim Meyering <jim@meyering.net>
+
+ * same.c (same_name): Tweak a comment.
+
+2003-01-11 Bruno Haible <bruno@clisp.org>
+
+ * same.c (same_name): Reorder tests so as to avoid calling stat()
+ when a string comparison is sufficient.
+
+2003-01-11 Bruno Haible <bruno@clisp.org>
+
+ * readtokens.c (readtoken): Cast character to 'unsigned char', not
+ 'unsigned int'.
+
+2003-01-11 Bruno Haible <bruno@clisp.org>
+
+ * hash-pjw.c: Add comment about low quality of this function.
+
+2003-01-12 Paul Eggert <eggert@twinsun.com>
+
+ Finish renaming getstr -> getdelim2 and readline -> readlinebuffer,
+ to avoid collisions with libcurses and libreadline.
+
+ * Makefile.am (libfetish_a_SOURCES): Remove getstr.c, getstr.h.
+ * getstr.h, getstr.c: Remove.
+ * getline.c: Include "getline.h", to check interface.
+ Move body of old getstr.c here: this defines MIN_CHUNK and
+ declares getdelim2, which is renamed from getstr.
+ (getline, getdelim): Adjust to renaming of getstr -> getdelim2.
+
+ * linebuffer.c (readlinebuffer): Renamed from readline.
+ All uses changed.
+ * linebuffer.h: Likewise.
+ (readline): Remove backward-compatibility macro.
+
+2003-01-12 Jim Meyering <jim@meyering.net>
+
+ * makepath.c: Don't test HAVE_ERRNO_H. It's not necessary.
+
+2003-01-10 Bruno Haible <bruno@clisp.org>
+
+ * alloca_.h: New file.
+ * getdate.y: Unconditionally include alloca.h.
+ * makepath.c: Likewise.
+ * setenv.c: Likewise.
+ * userspec.c: Likewise.
+
+2003-01-09 Bruno Haible <bruno@clisp.org>
+
+ * stdbool.h.in: New file.
+
+2003-01-08 Bruno Haible <bruno@clisp.org>
+
+ * safe-read.c: Include specification header first, to ensure its
+ selfcontainedness.
+ * full-write.c: Likewise.
+
+2003-01-08 Jim Meyering <jim@meyering.net>
+
+ * full-write.c: Undefine and define-away `const' after inclusion
+ of errno.h, not before. Suggestion from Bruno Haible.
+
+2003-01-07 Jim Meyering <jim@meyering.net>
+
+ * full-write.c: Rework so that it may serve to define full_read, too.
+ * full-read.c: Simply #define FULL_READ and include full-write.c.
+
+2003-01-06 Jim Meyering <jim@meyering.net>
+
+ * version-etc.c: Update year in translatable copyright string.
+
+2002-12-25 Bruno Haible <bruno@clisp.org>
+
+ * strtoimax.c: Include <stdint.h> as an alternative to <inttypes.h>.
+ * xstrtol.h: Likewise.
+ * xstrtoimax.c: Likewise.
+ * xstrtoumax.c: Likewise.
+ * human.h: Likewise.
+
+ * tempname.c: Include <inttypes.h> too. Avoids a compilation error
+ on systems that have <inttypes.h> but not <stdint.h>.
+
+2002-12-31 Paul Eggert <eggert@twinsun.com>
+
+ * memcoll.c (memcoll): Fall back on a simple algorithm using
+ memcmp if strcoll doesn't work.
+
+2002-12-23 Bruno Haible <bruno@clisp.org>
+
+ * localcharset.h: New file.
+ * localcharset.c: Include it.
+ * unicodeio.c: Likewise.
+
+2002-12-22 Bruno Haible <bruno@clisp.org>
+
+ * utime.c (utime_null): No need to call ftruncate if the file was
+ nonempty.
+
+2002-12-23 Bruno Haible <bruno@clisp.org>
+
+ * memcoll.c (STRCOLL): New macro.
+ (memcoll): Use it.
+
+2002-12-22 Bruno Haible <bruno@clisp.org>
+
+ * getstr.h (getstr): Define, to avoid clash with libcurses.
+ * linebuffer.h (readline): Define, to avoid clash with libreadline.
+
+2002-12-22 Bruno Haible <bruno@clisp.org>
+
+ * getdate.y (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE.
+
+2002-12-23 Bruno Haible <bruno@clisp.org>
+
+ * getline.h: Include <stddef.h>, for size_t.
+
+ * unicodeio.h: Include <stddef.h>, for size_t.
+ * unicodeio.c: Don't include <stddef.h>.
+
+2002-12-17 Bruno Haible <bruno@clisp.org>
+
+ * canon-host.c (strdup): Remove unused declaration.
+
+ * fsusage.c: Include full_read.h.
+ (get_fs_usage): Use full_read instead of safe_read.
+
+ * utime.c (utime_null): Use SAFE_READ_ERROR.
+
+2002-12-11 Bruno Haible <bruno@clisp.org>
+
+ * setenv.h: Rewritten to cope with systems that have setenv() but not
+ unsetenv().
+ * setenv.c, unsetenv.c: Taken from glibc-2.2.4 with the following
+ modifications:
+
+ 2002-12-11 Bruno Haible <bruno@clisp.org>
+
+ * setenv.c (alloca): Fall back to malloc.
+ (freea): New macro.
+ (setenv): Use freea() to free memory allocated with alloca().
+
+ 2002-11-13 Bruno Haible <bruno@clisp.org>
+
+ * setenv.c (compar_fn_t, __add_to_environ, setenv): Use ANSI C
+ function declarations.
+ * unsetenv.c (unsetenv): Likewise.
+
+ 2002-03-04 Bruno Haible <bruno@clisp.org>
+
+ Portability to AIX 4.3.3.
+ * unsetenv.c: New file, extracted from setenv.c.
+ * setenv.c: Move the unsetenv() function to unsetenv.c.
+
+ 2001-12-20 Bruno Haible <bruno@clisp.org>
+
+ * setenv.c (__add_to_environ): Don't call realloc(NULL,...),
+ use malloc instead. For SunOS 4.
+
+ 2001-12-11 Bruno Haible <bruno@clisp.org>
+
+ * setenv.c: Declare alloca.
+ (compar_fn_t): New typedef.
+ (KNOWN_VALUE, STORE_VALUE): Use it.
+
+ * Makefile.am (libfetish_a_SOURCES): Add setenv.c, unsetenv.c,
+ setenv.h.
+
+2002-12-10 Paul Eggert <eggert@twinsun.com>
+
+ Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.
+ * exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS):
+ Choose values that are less likely to collide with system fnmatch
+ options.
+ * exclude.c (FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not
+ defined (e.g., a pure POSIX system).
+ (EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME
+ instead of FNM_FILE_NAME, for compatibility with pure POSIX sytems.
+
+2002-12-06 Jim Meyering <jim@meyering.net>
+
+ * error.c: Be consistent: change `#ifndef _LIBC' to `#if !_LIBC'.
+
+ Merge in changes from libc's misc/error.c, in preparation
+ for the merge of gnulib's changes back into libc.
+
+ * error.c (_): Define only if not already defined.
+ Move definition to follow all #include directives.
+ Include unlocked-io.h only if !_LIBC.
+ [_LIBC]: Include <libio/libioP.h>.
+ [USE_IN_LIBIO]: Include <libio/iolibio.h>
+ (fflush): Tweak definition to use INTUSE.
+ (putc): Define.
+
+2002-12-05 Paul Eggert <eggert@twinsun.com>
+
+ * alloca.c [defined emacs]: Include "lisp.h".
+ (xalloc_die) [defined emacs]: New macro.
+ (free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE.
+ [! defined emacs]: Include <xalloc.h>.
+ (POINTER_TYPE) [!defined POINTER_TYPE]: New macro.
+ (pointer): Typedef to POINTER_TYPE *.
+ (malloc): Remove decl; we now always use xmalloc.
+ (alloca): Use old-style definition, since Emacs needs this.
+ Check for arithmetic overflow when computing combined size.
+
+2002-12-04 Paul Eggert <eggert@twinsun.com>
+
+ Do not generate unlocked-io.h automatically, since it's easier to
+ maintain it by hand.
+
+ * unlocked-io.h: New file, from GNU diffutils,
+ but with proper copyright notice and attribution.
+ * gen-uio: Remove.
+ * Makefile.am: Add copyright notice.
+ (libfetish_a_SOURCES): Add unlocked-io.h.
+ (BUILT_SOURCES, all-local): Remove unlocked-io.h.
+ (DISTCLEANFILES, io_functions): Remove macros.
+ (EXTRA_DIST): Remove gen_uio.
+ (unlocked-io.h): Remove rule.
+
+2002-12-04 Jim Meyering <jim@meyering.net>
+
+ Reflect the fact that stat.c and lstat.c are no longer generated.
+ * Makefile.am (BUILT_SOURCES): Remove stat.c and lstat.c.
+ (DISTCLEANFILES): Likewise.
+ (EXTRA_DIST): Likewise.
+ (all_local): Don't depend on stat.c or lstat.c.
+ (stat.c, lstat.c): Remove rules.
+ (EXTRA_DIST): Remove xstat.in.
+
+ * xstat.in: Remove file. Contents moved into stat.c.
+ * stat.c: New file. Contents mostly from xstat.in.
+ * stat.c: Rework so that it may serve to define rpl_lstat, too.
+ * lstat.c: New file. Simply #define LSTAT and include stat.c.
+
+ * safe-read.c: Rework so that it may serve to define safe_write, too.
+ * safe-write.c: Simply #define SAFE_WRITE and include safe-read.c.
+
+2002-12-03 Jim Meyering <jim@meyering.net>
+
+ * safe-read.c, safe-write.c: Change variable names and comments, but
+ not semantics, to minimize the differences between these two files.
+ (safe_read): Change comment to mention SAFE_READ_ERROR.
+
+ * safe-read.c (IS_EINTR): Define.
+ (safe_read): Use IS_EINTR in place of in-function cpp directives.
+
+2002-12-02 Bruno Haible <bruno@clisp.org>
+
+ * safe-write.c (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM):
+ Define, taken from safe-read.c.
+ (INT_MAX): Provide fallback.
+ (safe_write): Rewrite to iterate IFF the write fails with EINTR.
+ * safe-write.h (SAFE_WRITE_ERROR): Define.
+
+ * safe-read.c (EINTR): Remove definition.
+ (safe_read): Don't use EINTR if it is absent.
+
+2002-12-02 Jim Meyering <jim@meyering.net>
+
+ * safe-read.c (EINTR): Define.
+ (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
+ (INT_MAX): Provide fallback.
+ (safe_read): Rewrite to iterate IFF the read fails with EINTR.
+
+ * safe-read.h (SAFE_READ_ERROR): Define.
+
+2002-12-01 Jim Meyering <jim@meyering.net>
+
+ * safe-read.c: (safe_read): Also exit the loop when read returns zero.
+ (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define.
+
+2002-11-27 Paul Eggert <eggert@twinsun.com>
+
+ * hash.c (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
+ hash_rehash): Replace `if (limit <= value) abort ();' with
+ `if (! (value < limit)) abort ();', for readability.
+
+2002-11-26 <karl@gnu.org>
+
+ * strdup.c: copy from libc again, with jim's ok.
+ * .cppi-disable: re-add strdup.c
+
+2002-11-25 <karl@gnu.org>
+
+ * strtoll.c: copy from libc, meaning we now #include <strtol.c>
+ instead of "strtol.c".
+
+2002-11-25 Jim Meyering <jim@meyering.net>
+
+ * mktime.c: Sync from libc, now that it has the latest fix.
+
+2002-11-24 <karl@gnu.org>
+
+ * error.c, getopt.c, getopt.h, getopt1.c, obstack.c, regex.c,
+ regex.h, strdup.c, strtoll.c, tempname.c: change license to gpl.
+
+2002-11-24 Jim Meyering <jim@meyering.net>
+
+ Update from coreutils:
+
+ * mktime.c: Merge in changes from libc.
+
+ Avoid a link-time failure on some Linux systems.
+ * mktime.c (STATIC): Define to be empty (_LIBC) or `static' (otherwise).
+ (__mon_yday): Declare with the STATIC attribute.
+ (__mktime_internal): Likewise.
+ Based on a report from Greg Schafer.
+
+2002-11-23 Jim Meyering <jim@meyering.net>
+
+ * sig2str.c (str2signum, sig2str): Avoid a warning from gcc:
+ Use `unsigned', not `int', as type of index.
+
+ * xstat.in [@BEGIN_LSTAT_ONLY@]: Include <string.h>.
+
+ * fsusage.c: Remove unneeded parentheses around operands of `defined'.
+
+2002-11-22 Paul Eggert <eggert@twinsun.com>
+
+ * hash.c: Avoid use of <assert.h>, as the GNU Coding Standards
+ hint that one should use `if (! x) abort ();' rather than `assert
+ (x);', and anyway it's one less thing to worry about configuring.
+ (hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
+ hash_rehash, hash_insert): Use abort rather than assert.
+
+2002-11-22 Paul Eggert <eggert@twinsun.com>
+
+ * quotearg.h: Allow multiple inclusion by surrounding with
+ "#ifndef QUOTEARG_H_". Include <stddef.h>, for size_t,
+ so that we can be included first.
+ (PARAMS): Remove; we now assume C89 or later. All uses removed.
+ * quotearg.c: Include quotearg.h immediately after config.h.
+ No need to include stddef.h or sys/types.h any more.
+ Surround local include files with "", not "<>".
+ Assume HAVE_LIMITS_H unconditionally, as we assume C89.
+ Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
+ HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
+ (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
+ (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
+ (ISPRINT): Remove; no longer needed now that we assume C89.
+
+ (clone_quoting_options, quotearg_buffer, quotearg_n_options):
+ Preserve errno.
+
+ (quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
+ quotearg_char): Use SIZE_MAX rather than
+ (size_t) -1 when we are talking about "infinity".
+
+ (quotearg_buffer_restyled): Fix bug when quoting trigraphs.
+
+2002-11-22 Bruno Haible <bruno@clisp.org>
+
+ * safe-read.h: Assume C89. Add comments.
+ (safe_read): Change return type to size_t.
+ * safe-read.c (safe_read): Change return type to size_t. Handle byte
+ counts > SSIZE_MAX correctly.
+ * safe-write.h: New file.
+ * safe-write.c: New file.
+ * full-read.h: New file.
+ * full-read.c: New file.
+ * full-write.h: Assume C89. Add comments.
+ * full-write.c: Include safe-write.h.
+ (full_write): Rewritten to use safe_write.
+ Suggested by Jim Meyering and Paul Eggert.
+
+2002-11-21 Bruno Haible <bruno@clisp.org>
+
+ Remove case insensitive option matching.
+ * argmatch.h (argcasematch): Remove declaration.
+ (ARGCASEMATCH): Remove macro.
+ (__xargmatch_internal): Remove case_sensitive argument.
+ (XARGMATCH): Update.
+ (XARGCASEMATCH): Remove macro.
+ * argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
+ case_sensitive argument.
+ (argcasematch): Remove function.
+ (__xargmatch_internal): Remove case_sensitive argument.
+ (main): Use XARGMATCH instead of XARGCASEMATCH.
+
+ * xmalloc.c: Change compile-time error message. Add comment about
+ required autoconf version.
+
+2002-11-21 Jim Meyering <jim@meyering.net>
+
+ * strdup.c (strdup): Tweak comment and initial #if/#include.
+
+ Merge in changes from the coreutils.
+
+ 2002-09-25 Paul Eggert <eggert@twinsun.com>
+ * fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
+ (UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
+ (PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
+ int. Work more efficiently if X is the same width as uintmax_t.
+ Do not compare X to -1, to avoid bogus compiler warning.
+ (get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
+ Don't assume that f_frsize and f_bsize are the same type.
+
+ * mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning
+ on FreeBSD.
+
+ * makepath.c (make_path): Restore umask *before* creating the final
+ component.
+ (make_path): Minor reformatting.
+
+ * xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
+ and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
+
+ * mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
+ ones. At least on GNU/Linux systems, `auto' means something else.
+ From Michael Stone.
+
+2002-11-20 Paul Eggert <eggert@twinsun.com>
+
+ Merge argmatch cleanups from Bison. Assume C89.
+
+ * argmatch.c: Include config.h here, not in argmatch.h.
+ Include stdlib.h, for EXIT_FAILURE.
+ Always include <string.h>, since we assume C89.
+ (EXIT_FAILURE): Remove pre-C89 bug workaround.
+ * argmatch.h: Do not include <config.h> or <sys/types.h>.
+ Include <stddef.h> instead, since it's all we need for size_t.
+ (PARAMS): Remove. All uses removed.
+ (ARRAY_CARDINALITY): Do not bother to #undef.
+ (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
+ ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
+ Remove unnecessary parentheses.
+ (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
+ Insert necessary parentheses.
+ (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
+ (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
+
+2002-11-19 Bruno Haible <bruno@clisp.org>
+
+ * mbswidth.c: Include mbswidth.h right at the beginning.
+ * mbswidth.h: Include <stddef.h>, for size_t.
+
+ * mbswidth.h (PARAMS): Remove macro.
+ (mbswidth, mbsnwidth): Use ANSI C function declarations.
+ * mbswidth.c (mbswidth, mbsnwidth): Likewise.
+
+ * gcd.h (PARAMS): Remove macro.
+ (gcd): Use ANSI C function declarations.
+ * gcd.c (gcd): Likewise.
+
+2002-11-15 Bruno Haible <bruno@clisp.org>
+
+ * strcspn.c: Include <stddef.h>.
+ (strcspn): Use ANSI C function declaration. Change return type to
+ size_t. Use NULL.
+ * strpbrk.c: Minimize diffs to glibc. Include <stddef.h>.
+ (strpbrk): Use NULL.
+ * strpbrk.h (PARAMS): Remove macro.
+ (strpbrk): Use ANSI C function declaration.
+ * strstr.c: Don't include <sys/types.h>.
+ * strstr.h (PARAMS): Remove macro.
+ (strstr): Use ANSI C function declarations.
+
+2002-11-06 Bruno Haible <bruno@clisp.org>
+
+ * gcd.h (gcd): Change argument type to 'unsigned long'.
+ * gcd.c (gcd): Likewise.
+
+2002-11-05 Bruno Haible <bruno@clisp.org>
+
+ * gcd.h: New file, from gettext-0.11.5.
+ * gcd.c: New file, from gettext-0.11.5.
+
+2002-11-05 Bruno Haible <bruno@clisp.org>
+
+ * error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
+ * getopt.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
+ * obstack.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
+ * regex.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
+
+ * argmatch.c: Include gettext.h instead of <locale.h> and <libintl.h>.
+ * makepath.c: Include gettext.h instead of <locale.h> and <libintl.h>.
+
+ * closeout.c: Include gettext.h instead of <libintl.h>.
+ * human.c: Include gettext.h instead of <libintl.h>.
+ * quotearg.c: Include gettext.h instead of <libintl.h>.
+ * rpmatch.c: Include gettext.h instead of <libintl.h>.
+ * unicodeio.c: Include gettext.h instead of <libintl.h>.
+ * userspec.c: Include gettext.h instead of <libintl.h>.
+ * version-etc.c: Include gettext.h instead of <libintl.h>.
+ * xmalloc.c: Include gettext.h instead of <libintl.h>.
+ (textdomain): Remove definition.
+ * xmemcoll.c: Include gettext.h instead of <libintl.h>.
+
+ * long-options.c: Remove include of <libintl.h> and definition of _.
+ * same.c: Remove include of <libintl.h> and definition of _.
+
+2002-11-04 Bruno Haible <bruno@clisp.org>
+
+ * stpcpy.h: New file, from GNU gettext-0.11.5.
+ * strcase.h: New file, from GNU gettext-0.11.5.
+ * strpbrk.h: New file, from GNU gettext-0.11.5.
+ * strstr.h: New file, from GNU gettext-0.11.5.
+ * xgetcwd.h: New file, from GNU gettext-0.11.5.
+
+2002-05-09 Bruno Haible <bruno@clisp.org>
+
+ * config.charset: Update for newest glibc. Add canonical names
+ ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.
+
+2002-05-09 Bruno Haible <bruno@clisp.org>
+
+ * localcharset.c (get_charset_aliases): Add more Windows specific
+ aliases.
+
+2002-05-08 Owen Taylor <otaylor@redhat.com>
+
+ * config.charset: A few additions for Solaris.
+
+2001-12-05 Bruno Haible <bruno@clisp.org>
+
+ * localcharset.c (locale_charset): Don't return an empty string.
+
+2001-10-23 Bruno Haible <haible@clisp.cons.org>
+
+ * config.charset: msdos in uk_UA uses CP1125.
+
+2001-08-05 Bruno Haible <haible@clisp.cons.org>
+
+ Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
+ * localcharset.c (locale_charset): Declare as extern "C".
+
+2002-02-15 Bruno Haible <bruno@clisp.org>
+
+ * config.charset [msdosdjgpp]: For Russian, use CP866.
+
+2002-02-11 Bruno Haible <bruno@clisp.org>
+
+ * config.charset: Add support for NetBSD.
+
+2002-09-25 <karl@gnu.org>
+
+ * strdup.c: copy from libc/string (via ../config/srclist*).
+ * getopt*: copy from libc/posix.
+ * gettext.h: copy from gettext.
+ * .cppi-disable: add strdup.c, gettext.h.
+
+2002-07-01 Jim Meyering <meyering@lucent.com>
+
+ * c-stack.c: Include sys/time.h.
+ From Volker Borchert.
+
+2002-06-11 Paul Eggert <eggert@twinsun.com>
+
+ * fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
+ New macro. Use it uniformly instead of
+ (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
+ It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
+ reported by Vin Shelton.
+
+2002-06-22 Jim Meyering <meyering@lucent.com>
+
+ * fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
+ redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h.
+
+2002-06-22 Paul Eggert <eggert@twinsun.com>
+
+ * c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
+ Do not assume SA_SIGINFO behavior.
+ Bug reported by Jim Meyering on NetBSD 1.5.2.
+
+2002-06-22 Jim Meyering <meyering@lucent.com>
+
+ * c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
+
+ * exitfail.c, exitfail.h: Likewise.
+ * Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
+
+ * Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
+ of fnmatch.h.
+ (EXTRA_DIST): Add fnmatch_loop.c.
+ (libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
+
+ * fnmatch_loop.c: New file, from diffutils-2.8.2.
+ * fnmatch.c: Update from diffutils-2.8.2.
+ * fnmatch_.h: New file. From diffutils-2.8.2.
+ * fnmatch.h: Remove file.
+
+2002-06-18 Paul Eggert <eggert@twinsun.com>
+
+ * file-type.h: Report an error if neither S_ISREG nor
+ S_IFREG is defined, instead of using a test specific to glibc
+ 2.2. This should be safe, since POSIX requires S_ISREG and
+ Unix Version 7 had S_IFREG. We don't need to check for
+ <sys/types.h> since we don't use any symbols that it defines.
+
+2002-06-15 Jim Meyering <meyering@lucent.com>
+
+ * file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
+ For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
+ have been included before this file.
+
+2002-06-13 Richard Dawe <richdawe@bigfoot.com>
+
+ * Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
+ so that each temporary file name is unique and valid in the first
+ 8 characters, for operation under DOS.
+
+2002-06-15 Jim Meyering <meyering@lucent.com>
+
+ Work even with DJGPP 2.03, which lacks support for symlinks.
+ From Richard Dawe.
+ * xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
+ is defined.
+ * lchown.c (S_ISLNK): Likewise.
+
+2002-06-14 Jim Meyering <meyering@lucent.com>
+
+ * file-type.h: Use the version from diffutils-2.8.2.
+ * file-type.c: Likewise.
+
2002-05-27 Jim Meyering <meyering@lucent.com>
Fix a problem seen only on nonconforming systems whereby ls.c's
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-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 (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.
* 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-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>
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.
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>
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.
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>
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.