X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FChangeLog;h=ea8a674cc79479b8f4a8a8144a9445c0fd60b068;hb=fac736731193084993688df404fd72a0afe560c4;hp=ad78dc7b5a77c096dd12164e5a94d502330e2373;hpb=92b5babed0ef62fb044a2b9b7e331b743158c304;p=gnulib.git diff --git a/lib/ChangeLog b/lib/ChangeLog index ad78dc7b5..ea8a674cc 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,1107 @@ +2003-12-28 Bruno Haible + + * wait-process.c (wait_subprocess): Add ignore_sigpipe argument. + * wait-process.c (wait_subprocess): Likewise. Handle SIGPIPE specially. + +2003-11-28 Bruno Haible + + * wait-process.c (cleanup_slaves): Use ANSI C declaration. + +2003-11-27 Bruno Haible + + * wait-process.c: On Windows, include windows.h. Needed on mingw. + +2003-11-17 Bruno Haible + + * wait-process.c (wait_process): Disable the 2003-10-31 waitid() patch. + +2003-11-24 Bruno Haible + + * xallocsa.h: New file, from GNU gettext. + * xallocsa.c: New file, from GNU gettext. + +2003-11-24 Bruno Haible + + * allocsa.h: New file, from GNU gettext. + * allocsa.c: New file, from GNU gettext. + +2003-11-24 Bruno Haible + + * eealloc.h: New file. + +2004-01-15 Jim Meyering + + 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 + + Merge from coreutils. + + * posixver.c: Include posixver.h. + + * same.c: Include , . + (_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 + + * 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 + + * config.charset: update from gettext-runtime. + +2003-12-03 Paul Eggert + + * getgroups.c (getgroups): xmalloc takes one argument, not two. + Bug reported by Alfred M. Szmidt. + +2003-11-29 Karl Berry + + * argp-{help.c,parse.c,namefrob.h}, argp.h: update from libc. + +2003-11-23 Paul Eggert + Bruno Haible + + * 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 + + * 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 + + * xmalloc.c (x2nrealloc_inline): Fix typos in comments: s/size/size_t/. + +2003-11-17 Bruno Haible + + * 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 + + 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 and . + (utime_null): Be sure to close `fd' and to preserve errno. + Reported by Geoff Collyer via Arnold Robbins. + +2003-11-16 Paul Eggert + Bruno Haible + + 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 + + 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 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 + + * xsize.h (xmax): New function. + (xsum, xsum3, xsum4): Declare as "pure" functions. + +2003-11-12 Paul Eggert + + * xalloc.h: Do not include or . + (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 + + * xstrtol.c (__xstrtol): Remove "break" immediately after + "return", to pacify some unknown compiler. Problem reported + by Joerg Schilling. + +2003-11-11 Bruno Haible + + * 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 + + * 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 + + * xalloc.h [HAVE_STDINT_H]: Include . + (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 + + * xsize.h: Include limits.h, to avoid a possible collision with + SIZE_MAX defined in on Solaris. + +2003-11-04 Bruno Haible + + * 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 + + * 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 + + * userspec.c: Include "userspec.h". + * userspec.h: New file. + +2003-10-31 Paul Eggert + + * 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 + + * hash.c: Include "xalloc.h" for use of xalloc_oversized. + + * linebuffer.c: Include for declaration of memset. + +2003-10-30 Paul Eggert + Bruno Haible + + * vasprintf.c: Include , . + (vasprintf): Fail if the resulting length doesn't fit in an 'int'. + +2003-10-29 Paul Eggert + + * xalloc.h (xalloc_oversized): Now a macro, not a function, + so that it works even if SIZE_MAX < N. Do not include ; + no longer needed. + * quotearg.c (quotearg_n_options): Use it. + * group-member.c: Include . + (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 + + * stdbool_.h: Better support for BeOS. + +2003-10-27 Paul Eggert + + * 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 + + * xalloc.h (xalloc_oversized): New static inline function, for + callers that want to do their own size-overflow checking. Include + , 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 + + Fix several address-calculation bugs in the hash modules, + plus some minor code cleanup. + + * hash.h: Include , for bool. + * hash.c: Don't include , 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 , for size_t. + * hash-pjw.c (hash_pjw): Likewise. + Switch to method described by Bruno Haible. + Include , for CHAR_BIT. + (SIZE_BITS): New macro. + +2003-10-21 Paul Eggert + + * 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 , 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 . + + * 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 + + * wait-process.h: New file, from GNU gettext. + * wait-process.c: New file, from GNU gettext. + +2003-10-19 Jim Meyering + + * vasnprintf.c (vasnprintf): Work around losing snprintf on HPUX 10.20. + +2003-10-16 Paul Eggert + + * getgroups.c: Include , . + (getgroups): First arg is int, not size_t. + Don't let 'free' mangle errno. + +2003-10-16 Jim Meyering + + * xmalloc.c: Include , for declarations of memset and memcpy. + +2003-10-15 Paul Eggert + + * exclude.c: Do not include or . + (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 + + 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 + + * 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 + + * 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 + + Merge getpass from libc, plus a few fixes. + + * getpass.c (HAVE_STDIO_EXT) [_LIBC]: Define to 1. + Include . + Include if HAVE_STDIO_H, otherwise define + __fsetlocking to empty. + [_LIBC]: Do not include "getline.h" or "unlocked-io.h", but + do include . + Do not include ; not needed. + [_LIBC]: Include . + (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 , so that the caller + doesn't have to include 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 + + * version-etc-2.h: Remove file. + * version-etc-2.c: Remove file. + +2003-09-25 Jim Meyering + Bruno Haible + + 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 + + * fatal-signal.h: New file, from GNU gettext. + * fatal-signal.c: New file, from GNU gettext. + +2003-10-04 Karl Berry + + * argp*: update from libc. + +2003-10-01 Larry Jones + + * getpass.c (getpass): Use a no-op fseek when switching from input to + output mode on the same stream. + +2003-09-29 Paul Eggert + + * strftime.c (tm_diff) [! HAVE_TM_GMTOFF]: + Fix arg typo in previous patch. + +2003-09-28 Jim Meyering + + * error.c: Correct cpp indentation. + +2003-09-27 Paul Eggert + + * 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 + + * error.c (error_tail): Move some declarations + into inner scope where the local variables are used. + +2003-09-26 Bruno Haible + + * 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 + + * 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 , . + (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 + + * argp-fmtstream.c, argp-help.c: update from libc. + +2003-09-25 Bruno Haible + + * 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 + + * xgetdomainname.h: New file. + * xgetdomainname.c: New file. + +2003-09-25 Simon Josefsson + Bruno Haible + + * getdomainname.h: New file. + * getdomainname.c: New file. + +2003-09-24 Paul Eggert + + * 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 + + * argp.h: update from libc. + +2003-09-16 Paul Eggert + + * 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 + + * 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 + + * fwriteerror.h: New file. + * fwriteerror.c: New file. + +2003-09-14 Jim Meyering + + * getloadavg.c: Correct cpp indentation. + * strdup.c: Likewise. + * vasnprintf.c: Likewise. + +2003-09-12 Paul Eggert + + * 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 or ; not + needed. + * strdup.c: Include , unconditionally. + (malloc, memcpy): Remove decls. + * strftime.c (HAVE_LIMITS_H, STDC_HEADERS) [defined _LIBC]: Remove. + (HAVE_MEMCPY) [defined emacs && !defined HAVE_BCOPY]: Remove. + Include , , , 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 , , + unconditionally. + (DBL_MAX, DBL_MIN, HUGE_VAL, NULL): Remove decls. + * strtoimax.c: Include unconditionally. + (strtoul, strtol): Remove decls. + * strtol.c (STDC_HEADERS, HAVE_LIMITS_H, NULL, ULONG_MAX, + LONG_MAX): Remove. + Include , , , 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 unconditionally. + * userspec.c: Include , unconditionally. + * xgethostname.c (main): Define with a prototype. + * xmalloc.c: Include "xalloc.h" first, to check interface. + Include unconditionally. + (calloc, malloc, realloc, free): Remove decls. + * xstrtod.c: Include "xstrtod.h" first, to check interface. + Include unconditionally. Sort include file names. + (strtod): Remove. + (xstrtod): Define with a prototype. + * xstrtol.c: Include , unconditionally. + (strtol, strtoul): Remove decls. + +2003-09-11 Paul Eggert + + * strndup.c: Don't include , . + Include , unconditionally. + Remove now-unnecessary cast to char *. + * strnlen.c: Include unconditionally. + * yesno.c (yesno): Define with a prototype. + +2003-09-10 Bruno Haible + + * strcspn.c: Include unconditionally. + * strpbrk.c: Include unconditionally. + * strstr.c: Include unconditionally. + * unicodeio.c: Include unconditionally. + * setenv.c: Include and unconditionally. + * unsetenv.c: Likewise. + * xreadlink.c: Include unconditionally. + * yesno.c: Include unconditionally. + (rpmatch): Add prototype. + +2003-09-10 Jim Meyering + + * error.c: Correct indentation of cpp directives. + +2003-09-09 Paul Eggert + + 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 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 unconditionally. + + * getusershell.c: Include unconditionally. + (getusershell, setusershell, endusershell, readname, main): + Define with prototypes. + + * group-member.c: Include group-member.h first. + Include unconditionally. + + * hard-locale.c: Include hard-locale.h first. + Include , unconditionally. + + * hash.c (free, malloc): Remove decls. + Include unconditionally. + + * human.c: Include , unconditionally. + (getenv): Do not declare. + + * idcache.c: Include unconditionally. + + * long-options.c: Include long-options.h first, to test interface. + Include unconditionally. + + * makepath.c: Include makepath.h first, to test interface. + Include and unconditionally. + + * linebuffer.c: Include . + (free): Remove decl. + + * malloc.c: Include , 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 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 , 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 unconditionally. + * memchr.c, memrchr.c: Include unconditionally. + * memchr.c: Include 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 . + Use types required by C89 in prototype. + + * mkdir.c: Include , 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 , unconditionally. + + * modechange.c: Include unconditionally. + (malloc): Remove decl. + + * mountlist.c: Include , 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 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 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 , unconditionally. + + * physmem.c (physmem_total, physmem_available, main): Define + with prototypes. + + * posixtm.c: Include , unconditionally. + (main): Define with a prototype. + + * posixver.c (getenv): Remove decl. + + * putenv.c (malloc): Returns void *, not char *. + Include unconditionally. + (strchr, memcpy, NULL): Do not define. + + * readtokens.c: Include readtokens.h first, to test interface. + Include , unconditionally. + (init_tokenbuffer): Define with a prototype. + + * regex.c (PARAMS): Remove. All uses removed. + All uses of _RE_ARGS removed, too. + Include , , , + 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 , unconditionally. + (free): Remove decl. + + * rpmatch.c: Include unconditionally. + + * same.c: Include , unconditionally. + (free): Remove decl. + + * save-cwd.c: Include unconditionally. + * xgetcwd.c: Likewise. + + * stat.c: Include , 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 , 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 + + * getndelim2.c: Assume stdlib.h per the C89 spec. + +2003-09-08 Paul Eggert + + Assume C89 or better; remove K&R cruft. + A few of these changes were first proposed by Derek Robert Price + in . + + * addext.c: Include unconditionally. + * backupfile.c: Include , unconditionally. + Don't declare getenv or malloc. + + * alloca.c: Include , 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 unconditionally. + + * bcopy.c: Include . + (bcopy): Define with prototype, using 'const' and 'void' and 'size_t'. + + * canon-host.c: Include , 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 , , unconditionally. + (VA_START): Remove; all uses changeed to va_start. + (exit, strerror): Remove decls. + (error_print_progname): Prototype uncondionally. + Don't include ; 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 , , 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 , unconditionally. + + * exitfail.c: Include unconditionally. + + * fnmatch_.h (__P): Remove. All uses changed to assume + prototypes. + * fnmatch.c: Include fnmatch.h first, to test interface. + Include , , 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 , unconditionally. + + * gethostname.c: Include . + (gethostname): Define with prototype. Length is size_t, not int. + +2003-09-08 Paul Eggert + + * 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 , . + (utime_null): Fix typo: 'st' was sometimes called 'sb'. + +2003-09-07 Paul Eggert + + * time_r.c (gmtime_r, localtime_r): Fix silly typo: missing arg to + copy_tm_result. Bug reported by Simon Josefsson in + . + +2003-09-06 Paul Eggert + + * 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 . + (__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 . + + * timegm.c: Switch to glibc implementation, with the following changes: + [defined HAVE_CONFIG_H]: Include . + [!defined _LIBC]: Include "timegm.h" rather than . + (__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 " out of #ifdef. + (timegm): Declare only if HAVE_DECL_TIMEGM. + +2003-09-03 Paul Eggert + + * human.c (human_readable): Fix bug that rounded 10501 to 10k. + Bug reported by Lute Kamstra in + . + + * 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 + + * 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 + + * argp.h: update from libc. + +2003-08-28 Bruno Haible + + * 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 + + * binary-io.h: Include , to avoid a compilation error when + MSVC7 is included later. + +2003-08-20 Bruno Haible + + * 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 * xstrdup.c: Assume exists.