Avoid a memory allocation when possible.
[gnulib.git] / lib / ChangeLog
index 15e3e1e..08659a3 100644 (file)
@@ -1,3 +1,483 @@
+2004-10-07  Bruno Haible  <bruno@clisp.org>
+
+       * snprintf.c (snprintf): Avoid a memory allocation if the result fits
+       into the provided buffer.
+
+2004-10-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * diacrit.c, diacrit.h: Add GPL notice.
+
+       * atanl.c, logl.c: Add GPL notice, to match glibc's added LGPL notice.
+       * atanl.c (atanl): Keep the code as similar to glibc as possible.
+       * logl.c (logl): Keep the code as similar to glibc as possible.
+       This avoids a potential constant-folding bug.
+
+2004-10-05  Bruno Haible  <bruno@clisp.org>
+
+       * strsep.h: Don't declare strsep() if HAVE_STRSEP.
+
+2004-10-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xalloc.h (xmemdup): Renamed from xclone.  All uses changed.
+       * xmalloc.c (xmemdup): Likewise.
+       * xalloc.h (CCLONE, CLONE, NEW, XCALLOC, XMALLOC, XREALLOC,
+       XFREE): Remove these long-obsolescent macros.
+       * xmalloc.c (xstrdup): Implementation moved here from xstrdup.c
+       * xstrdup.c: Remove.
+
+       * regex.c (re_comp): Cast gettext return value to char *,
+       Problem reported by Martin Neitzel via Mark D. Baushke.
+       
+2004-10-04  Simon Josefsson  <jas@extundo.com>
+
+       * error.c, md5.c, regex.c: Use '#if USE_UNLOCKED_IO' instead of
+       '#ifdef USE_UNLOCKED_IO'.
+
+2004-10-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argmatch.c, closeout.c, error.c, exclude.c, getdate.y,
+       getndelim2.c, getpass.c, getusershell.c, linebuffer.c,
+       md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c,
+       regex.c, sha1.c, version-etc.c, yesno.c:
+       Include "unlocked-io.h" only if USE_UNLOCKED_IO.
+       * unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now
+       the includer's responsibility.
+
+       Sync from coreutils.
+
+       * modechange.c (mode_compile): Don't decrement a pointer that
+       points to the start of a string, as the C Standard says the
+       resulting behavior is undefined.
+
+       * backupfile.h (enum backuptype): Rename none -> no_backups,
+       simple -> simple_backups, numbered_existing ->
+       numbered_existing_backups, numbered -> numbered_backups
+       to avoid shadowing problems.  All uses changed.
+       * argmatch.c (enum backuptype) [defined TEST]: Likewise.
+       * backupfile.c (check_extension, numbered_backup):
+       Rename locals to avoid shadowing 'basename'.
+       * backupfile.h (VALID_BACKUP_TYPE): Don't evaluate arg more than
+       once.
+
+       * .cppi-disable: Add getopt_.h, getopt_int.h.
+       * .cvsignore: Add getopt.h.
+
+2004-10-04  Simon Josefsson  <jas@extundo.com>
+
+       * memmem.h: New file.
+       * memmem.c: New file, taken from glibc.
+
+2004-10-02  Jim Meyering  <jim@meyering.net>
+
+       * dirfd.h, getpagesize.h: Add copyright notice.
+
+2004-10-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * snprintf.c: Remove comments as to why each header is needed.
+
+2004-10-01  Yoann Vandoorselaere <yoann@prelude-ids.org>
+
+       * strsep.h: New file.
+       * strsep.c: New file.
+
+2004-10-01  Simon Josefsson  <jas@extundo.com>
+
+       * snprintf.c (snprintf): Handle size==0.
+
+2004-10-01  Simon Josefsson  <jas@extundo.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       * snprintf.c: Include <stdarg.h>, <stdlib.h>, <string.h>.
+       (snprintf): Declare 'args'.
+
+2004-09-30  Simon Josefsson  <jas@extundo.com>
+
+       * snprintf.h, snprintf.c: New files.
+
+2004-09-30  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * argp-help.c (canon_doc_option): Fixed coredump if *name==NULL
+       (hol_entry_help): Never translate an empty string.
+       Do not translate option tag (opt->name) if OPTION_NO_TRANS is set
+       * argp.h (OPTION_NO_TRANS): New option.
+
+2004-09-29  Oskar Liljeblad  <oskar@osk.mine.nu>
+
+       * xvasprintf.c: Include xalloc.h.
+       (xvasprintf): Use xalloc_die, not xmalloc_die.
+
+2004-09-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dummy.c: Change copyright notice to FSF, and license to GPL.
+
+2004-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argp-pvh.c (argp_program_version_hook): Provide initial value.
+       Problem reported by Bruno Haible in:
+       http://lists.gnu.org/archive/html/bug-tar/2004-09/msg00023.html
+
+2004-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * mempcpy.h: Wrap the entire include file inside #ifndef mempcpy,
+       in case some system header has #define'd it.  Problem reported by
+       Soeren D. Schulze in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2004-09/msg00017.html>.
+
+2004-09-08  Bruno Haible  <bruno@clisp.org>
+
+       * stdint_.h.in: New file, taken from GNU clisp.
+
+2004-09-08  Oskar Liljeblad  <oskar@osk.mine.nu>
+
+       * xvasprintf.h: New file.
+       * xvasprintf.c: New file.
+       * xasprintf.c: New file.
+
+2004-09-08  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (VASNPRINTF): Signal EOVERFLOW if the resulting length
+       is > INT_MAX.
+       * vasprintf.c (vasprintf): Don't test for length > INT_MAX any more.
+
+2004-08-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Import from coreutils.
+       * userspec.c: Don't use <alloca.h>, so that we don't use alloca on
+       strings on unbounded length.  alloca's performance benefits aren't
+       that important here.
+       (V_STRDUP): Remove.
+       (parse_with_separator): New function, with most of the internals
+       of the old parse_user_spec.  Allow user to omit both user and group,
+       for compatibility with FreeBSD.
+       Clone only the user name, not the entire spec.
+       Do not set *uid, *gid unless entirely successful.
+       Avoid memory leak in some failing cases.
+       Fix regression for USER.GROUP reported by Dmitry V. Levin in
+       <http://lists.gnu.org/archive/html/bug-coreutils/2004-08/msg00102.html>
+       (parse_user_spec): Rewrite to use parse_with_separator.
+
+2004-08-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argp-help.c, argp-parse.c: Use "gettext.h" instead of
+       its complicated substitute.
+       * argp-help.c: Include <errno.h>, for program_invocation_short_name
+       and program_invocation_name.
+       (__argp_basename) [!_LIBC]: Remove; the only use was
+       replaced by its body.
+       (__argp_short_program_name): Change condition from
+       !defined __argp_short_program_name to
+       ! (defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME),
+       to match argp-namefrob.h.
+       (__argp_failure): Don't assume strerror_r returns char *.
+       * argp-parse.c (N_): Define unconditionally.
+       (argp_default_options): Fill out initializers with 0 to avoid
+       gcc warnings.
+
+2004-08-12  Simon Josefsson  <jas@extundo.com>
+
+       * getopt.c, getopt1.c: Remove ELIDE_CODE hack.
+       * getopt_.h: Renamed from getopt.h.
+
+2004-08-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from coreutils.
+
+       * fnmatch.c (WIDE_CHAR_SUPPORT): Don't set to 1 if missing
+       wmemchr or wmemcpy.  Problem reported by Robert Dahlem
+       for Reliant Unix 5.43.
+
+       * obstack.c: Include <inttypes.h> and <stdint.h> if available.
+       (union fooround): Use uintmax_t, not long int.
+       The rest is a merge from libc:
+       [defined _LIBC]: Include <shlib-compat.h>.
+       (_obstack) [defined _LIBC]: Remove after 2.3.4.
+
+       * settime.c (settime): Recode to avoid warning with Sun Forte C 6U2.
+
+       * strverscmp.c: Convert to UTF-8.
+
+2004-08-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * obstack.h (obstack_empty_p):
+       Don't assume that chunk->contents is suitably aligned.
+       * obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk):
+       Likewise. Problem reported by Benno in
+       <http://sources.redhat.com/ml/libc-alpha/2004-08/msg00055.html>.
+
+       * chown.c (rpl_chown): Work even if the file is writeable but not
+       readable.  This could be improved further but it'd take some work.
+
+2004-08-08  Simon Josefsson  <jas@extundo.com>
+
+       * xgethostname.c: Don't include error.h (not used).
+
+       * getpass.h: Add.
+       * getpass.c: Include getpass.h first.
+
+2004-08-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xalloc-die.c: New files.
+       * xalloc.h (xalloc_fail_func, xalloc_msg_memory_exhausted): Remove.
+       All uses removed.
+       * xmalloc.c (xalloc_fail_func, xalloc_msg_memory_exhausted): Likewise.
+       Move inclusions of gettext.h, error.h, exitfail.h to xalloc-die.c.
+       (_, N_, xalloc_die): Move to xalloc-die.c.
+       * userspec.c (parse_user_spaec): Use xstrdup rather than strdup,
+       so that we needn't mess with xalloc_msg_memory_exhausted.
+
+       * sha1.h: Renamed from sha.h.
+       (SHA1_H): Renamed from _SHA_H.
+       (sha1_ctx): Renamed from sha_ctx.
+       (sha1_init_ctx): Renamed from sha_init_ctx.
+       (sha1_process_block): Renamed from sha_process_block.
+       (sha1_process_bytes): Renamed from sha_process_bytes.
+       (sha1_finish_ctx): Renamed from sha_finish_ctx.
+       (sha1_read_ctx): Renamed from sha_read_ctx.
+       (sha1_stream): Renamed from sha_stream.
+       (sha1_buffer): Renamed from sha_buffer.
+       * sha1.c: Likewise; renamed from sha.c.
+       Do not include <sys/types.h>.
+       Include <stddef.h> rather than <stdlib.h>.
+
+2004-08-08  Bruno Haible  <bruno@clisp.org>
+
+       * pathname.h (FILE_SYSTEM_PREFIX_LEN): Renamed from
+       FILESYSTEM_PREFIX_LEN.
+       * progreloc.c: Likewise.
+       * concatpath.c (concatenated_pathname): Use FILE_SYSTEM_PREFIX_LEN.
+
+2004-08-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from tar.
+       * argp-help.c (make_hol, hol_append): Don't assume that
+       SIZE_MAX is a valid preprocessor constant.
+       (__argp_basename): Change from "#ifndef _LIBC"
+       to "#ifndef __argp_short_program_name", so that
+       we don't compile these functions for tar.
+
+       More merges from coreutils.
+       * raise.c, readtokens0.h, readtokens0.c, strftime.h, utimens.h,
+       utimens.c, utimecmp.h, utimecmp.c, xnanosleep.h, xnanosleep.c,
+       yesno.h: New files.
+       * addext.c: Remove; no longer needed.
+       * yesno.c, argmatch.h, argmatch.c, backupfile.h, backupfile.c,
+       euidaccess.c, filemode.c, closeout.c, dup2.c, exclude.c,
+       fileblocks.c, filemode.c, fnmatch.c, fnmtahc_loop.c,
+       fopen-safer.c, fsusage.c, fsusage.h, ftruncate.c, full-write.c,
+       getdate.y, getloadavg.c, getugroups.c, hard-locale.c, hard-locale.h,
+       hash.c, human.c, human.h, lchown.c, lchown.h, makepath.c, makepath.h,
+       md5.c, md5.h, memchr.c, memcoll.c, memrchr.c, modechange.c,
+       modechange.h, mountlist.c, mountlist.h, nanosleep.c, posixtm.c,
+       putenv.c, quotearg.c, quotearg.h, readtokens.c, readutmp.c,
+       readutmp.h, rmdir.c, safe-read.c, save-cwd.c, savedir.c, setenv.c,
+       sig2str.c, stat.c, strtoimax.c, strverscmp.c, userspec.c, utime.c,
+       version-etc.c., xgethostname.c, xmemcoll.c, xreadlink.c, xstrtod.c,
+       xstrtod.h, xstrtoimax.c, xstrtol.c, xstrtol.h, xstrtoumax.c:
+       Import changes from coreutils.
+
+2004-08-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from coreutils.
+
+       * .gdb-history: Remove; this doesn't belong here.
+
+       * c-strtod.c, c-strtod.h, c-strtold.c, cycle-check.c,
+       cycle-check.h, dev-ino.h, canonicalize.h, canonicalize.c,
+       fcntl-safer.h, fcntl-safer.c, getcwd.c: New files.
+
+       * dirname.h: Include <stdbool.h>.
+       (FILE_SYSTEM_PREFIX_LEN): Renamed from FILESYSTEM_PREFIX_LEN,
+       for consistency with POSIX terminology.  All uses changed.
+       (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): New macros.
+       (strip_trailing_slashes): Use bool for booleans.
+       * stripslash.c (strip_trailing_slashes): Likewise.
+
+       * error.c: Work around bug in OpenBSD 3.4 sterror_r: it
+       sometimes returns a positive errno value even when it succeeds.
+       (print_errno_message) [!LIBC]: Fall back on strerror if
+       __strerror_r fails.
+
+       * path-concat.c (mempcpy): Don't define if a system header defines it.
+       Don't include stdio.h, stdlib.h, unistd.h, strdup.h.
+       (longest_relative_suffix): New function.
+       (path_concat): Use it.  Assume first argument is not NULL.
+       Port to DOS.  Omit redundant separators.
+       Report an error instead of returning NULL.
+       Use mempcpy instead of memcpy.
+       (xpath_concat): Remove: not declared or used.
+
+       * same.h: Include <stdbool.h>
+       (same_name): Return bool, not int.
+       * same.c (same_name): Likewise.
+       (errno): Don't declare; we assume C89 or better now.
+
+       * stat-macros (S_ISCTG, S_ISOFD, S_ISOFL): New macros,
+       if not already defined.
+
+       * xgetcwd.c (errno): Don't declare; we assume C89 or better now.
+       * dup-safer.c (errno): Likewise.
+
+2004-08-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fatal.c, fatal.h: Remove as the "fatal" module wasn't used or
+       working.
+
+2004-08-03  Simon Josefsson  <jas@extundo.com>
+
+       * strdup.h: Only use HAVE_DECL_STRDUP if defined.
+       * progname.h: Don't include stdbool.h.
+
+2004-08-02  Simon Josefsson  <jas@extundo.com>
+
+       * getsubopt.h: New file, with comments from Bruno Haible.
+       * getsubopt.c: New file, from glibc, but slightly modified based on
+       suggestions from Paul Eggert <eggert@cs.ucla.edu>.
+
+2004-08-01  Simon Josefsson  <jas@extundo.com>
+
+       * xgetdomainname.c: Include stdlib.h, for free().
+
+2004-07-16  Simon Josefsson  <jas@extundo.com>
+
+       * dummy.c: New file.
+
+2004-07-16  Bruno Haible  <bruno@clisp.org>
+
+       * backupfile.h: Add extern "C" for C++.
+       * closeout.h: Likewise.
+       * copy-file.h: Likewise.
+       * findprog.h: Likewise.
+       * full-write.h: Likewise.
+       * pathname.h: Likewise.
+       * progname.h: Likewise.
+       * stpcpy.h: Likewise.
+       * stpncpy.h: Likewise.
+       * strcase.h: Likewise.
+       * strstr.h: Likewise.
+       * xalloc.h: Likewise.
+
+       * mbswidth.h: Add extern "C" for C++.
+       Reported by Albert Chin-A-Young <china@thewrittenword.com>.
+
+2004-07-09  Simon Josefsson  <jas@extundo.com>
+
+       * getndelim2.c: Include stddef.h, for ptrdiff_t.  (FreeBSD 4.9
+       failed without this.)
+
+2004-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fchown-stub.c: New file.
+
+2004-06-24  Jim Meyering  <jim@meyering.net>
+
+       * obstack.h (obstack_base): Cast to (void *), per documentation.
+
+2004-06-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argz.c, argz_.h: New files, which are autoupdated from libtool.
+
+2004-06-01  Jim Meyering  <jim@meyering.net>
+
+       * calloc.c: New file.
+
+2004-06-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y (yylex): Allow space between sign and number.
+       Problem reported by Dan Jacobson.
+
+2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
+       and  Jim Meyering  <jim@meyering.net>
+
+       Merge from coreutils CVS.
+
+       * stat-macros.h: New file, with contents from file-type.h
+       and coreutils' system.h.
+       * file-type.c: Include "stat-macros.h".
+       * file-type.h (file_type): Move all macro definitions to new file,
+       stat-macros.h.
+
+       * chown.c (rpl_chown) [CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE]:
+       Wrap old code with this conditional.
+       [CHOWN_MODIFIES_SYMLINK]: Try to work around a chown
+       function that does not dereference symlinks.
+       * lchown.c (lchown) [CHOWN_MODIFIES_SYMLINK]: Just call chown.
+
+       * xreadlink.c: Include xreadlink.h first, to catch .h file
+       dependency problems.
+       (xreadlink): Accept new arg SIZE, for efficiency.
+       All decls and uses changed.
+       * xreadlink.h: Include <stddef.h>, for size_t.
+
+       * .cppi-disable: Add alloca_.h, allocsa.h, exit.h, getndelim2.h,
+       gettext.h, localcharset.h, strdup.h, strndup.h, strtoul.c, time_r.h.
+
+       * .cvsignore: Add alloca.h, fnmatch.h, poll.h, stdbool.h, sysexits.h.
+
+2004-05-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xmalloc.c (HAVE_MALLOC, HAVE_REALLOC): Do not require these
+       macros to be defined.
+       (xnmalloc_inline, xnrealloc_inline, xcalloc): Do not die if
+       the allocator returns NULL because the requested size is zero.
+
+2004-05-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * malloc/obstack.c (_obstack) [defined _LIBC]: Bring back this
+       var.  Add comment explaining why libc still defines it.  This
+       merges the following patch from glibc:
+       http://sources.redhat.com/ml/libc-alpha/2004-05/msg00157.html
+
+2004-05-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * obstack.c (_obstack): Remove unused variable.  It hasn't been
+       present in glibc since revision 1.1 of this file.
+       * obstack.h (_obstack_free, obstack_1grow, obstack_1grow_fast,
+       obstack_alignment_mask, obstack_alloc, obstack_base,
+       obstack_blank, obstack_blank_fast, obstack_chunk_size,
+       obstack_copy, obstack_copy0, obstack_finish, obstack_grow,
+       obstack_grow0, obstack_init, obstack_int_grow,
+       obstack_int_grow_fast, obstack_make_room, obstack_memory_used,
+       obstack_next_free, obstack_object_size, obstack_ptr_grow,
+       obstack_ptr_grow_fast, obstack_room): Remove declarations of
+       nonexistent functions.
+
+2004-05-17  Derek R. Price  <derek@ximbiot.com>
+           Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argp-help.c, argp-parse.c: Assume <alloca.h> rather than freecoding.
+
+2004-05-14  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (VASNPRINTF): Correctly handle the case of a precision
+       that consists of a '.' followed by an empty digit string.
+       Patch by Tor Lillqvist <tml@iki.fi>.
+
+2004-05-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port obstack to the AS/400, where pointers are 16 bytes wide and
+       you cannot cast an integer to a valid pointer.  This patch is
+       currently waiting to be integrated into glibc; see
+       <http://sources.redhat.com/ml/libc-alpha/2004-05/msg00073.html>.
+
+       * obstack.h (__PTR_TO_INT, __INT_TO_PTR): Remove.
+       All uses of __INT_TO_PTR (PTR_TO_INT ...) replaced by __PTR_ALIGN.
+       (__BPTR_ALIGN, __PTR_ALIGN): New macros.
+       (struct obstack): temp member is now a union of a pointer and
+       an integer, instead of an integer.  All integer uses changed.
+       This does not affect the physical layout of struct obstack,
+       except on hosts (like the AS/400) where the size or alignment of
+       void * is greater than that of ptrdiff_t.
+       (obstack_finish) [! (defined __GNUC__ && defined __STDC__ &&
+       __STDC__)]: Store temporary in pointer member of union, not
+       integer member.
+       * obstack.c: Include <stddef.h>, for offsetof.
+       (struct fooalign): Remove; it doesn't need a name.
+       (union fooround): Change double to long double, and add void *.
+       (DEFAULT_ALIGNMENT): Use offsetof to compute.
+       (DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Now an enum constant,
+       not a macro.  Hence the values are always int; so remove all
+       casts-to-int in uses.
+
 2004-05-16  Paul Eggert  <eggert@cs.ucla.edu>
            Derek Price  <derek@ximbiot.com>
 
 2004-05-16  Paul Eggert  <eggert@cs.ucla.edu>
            Derek Price  <derek@ximbiot.com>
 
        getline cleanup.  This changes the getndelim2 API: both order of
        arguments, and meaning of delim2 (now uses EOF, not 0, to indicate
        no delimiter).
        getline cleanup.  This changes the getndelim2 API: both order of
        arguments, and meaning of delim2 (now uses EOF, not 0, to indicate
        no delimiter).
-       
+
        * getline.c: Don't include stddef.h or stdio.h, since our
        interface does that.
        (getline): Always use getdelim, so that we don't have two
        * getline.c: Don't include stddef.h or stdio.h, since our
        interface does that.
        (getline): Always use getdelim, so that we don't have two
        alert, backslash, formfeed, and vertical tab unnecessarily in
        shell quoting style.
 
        alert, backslash, formfeed, and vertical tab unnecessarily in
        shell quoting style.
 
-Local Variables:
-version-control: never
-End:
+
+Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+  Free Software Foundation, Inc.
+Copying and distribution of this file, with or without modification,
+are permitted provided the copyright notice and this notice are preserved.