X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FChangeLog;h=3c38881940d88b96a163379f9986f7c06db23fc4;hb=08f44b5176b17c2f4d70e614b8b71a697165f0be;hp=32a2b80664ed490374cab53fbb26af1ff61fe6e1;hpb=b258c18a6f1cbb23ab21f55325ddaeccf9005cba;p=gnulib.git diff --git a/lib/ChangeLog b/lib/ChangeLog index 32a2b8066..3c3888194 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,823 @@ +2004-02-03 Bruno Haible + + * pipe.h: New file, from GNU gettext. + * pipe.c: New file, from GNU gettext. + +2004-01-27 Bruno Haible + + * 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 + + 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 + + * 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 + + 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 + + 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 + + * binary-io.h: Avoid warnings on Cygwin. + +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. @@ -132,6 +952,67 @@ * 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 @@ -198,7 +1079,7 @@ * exitfail.c: Include 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 , , unconditionally.