X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FChangeLog;h=ea8a674cc79479b8f4a8a8144a9445c0fd60b068;hb=fac736731193084993688df404fd72a0afe560c4;hp=188afb76689a23a01a27cd6255d9706fd70ad9cf;hpb=dca1eba100e85c0bd42db59fc81dffa3390c7374;p=gnulib.git diff --git a/lib/ChangeLog b/lib/ChangeLog index 188afb766..ea8a674cc 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,570 @@ +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]: