+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>
+
+ * lib/xalloc.h (xnmalloc, xzalloc, xnrealloc, xclone): New decls.
+ (XMALLOC, XCALLOC, XREALLOC, XFREE, CCLONE, CLONE): Deprecate,
+ and define in terms of the other primitives.
+ * lib/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.
+ * lib/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.
(free): Remove decl.
* strchrnul.c (strchrnul): Define with a prototype.
- Fix bug: c_in was not converted to unsigned char before searching.
+ Fix bug: c_in was not converted to char before searching.
The following changes are not K&R related:
* exitfail.c: Include <stdlib.h> unconditionally.
- * fnmatch.h (__P): Remove. All uses changed to assume
+ * 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.