Import chamges from coreutils, so that the code now assumes
[gnulib.git] / lib / ChangeLog
index 07616d5..05f13df 100644 (file)
@@ -1,3 +1,658 @@
+2004-12-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Changes imported from coreutils.
+       * hard-locale.c: Assume <locale.h> exists.
+       Include "strdup.h".
+       (GLIBC_VERSION): New macro.
+       (hard_locale): Assume setlocale exists.
+       Rewrite to avoid #ifdef.
+       Use strdup rather than malloc + strcpy.
+       * human.c: Assume <locale.h> exists.
+       (human_readable): Assume localeconv exists.
+
+2004-12-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * mktime.c (__mktime_internal): If SEC_REQUESTED != SEC,
+       convert T2, not T.  (Imported from libc.)
+
+2004-11-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getcwd.c (is_ENAMETOOLONG): New macro.
+       (__getcwd.c): Don't restore errno; glibc doesn't.
+       [HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD]: Try system getcwd
+       first, falling back to our code only if its results look suspicious.
+       Ensure that the resulting buffer is only as large as necessary.
+
+       * readutmp.c: Include readutmp.h first.
+       Include <errno.h>, since readutmp.h no longer does that.
+       * readutmp.h: Don't include <errno.h>,
+       <sys/param.h>, <time.h>; not needed to establish interface.
+       (errno): Remove decl.
+       (HAVE_STRUCT_XTMP_UT_TYPE): Remove; no longer needed.
+       (UT_TYPE_EQ, UT_TYPE_NOT_DEFINED, UT_TYPE_BOOT_TIME,
+       UT_TYPE_USER_PROCESS, IS_USER_PROCESS): New macros.
+
+2004-11-28  Simon Josefsson  <jas@extundo.com>
+
+       * base64.h, base64.c: New file.
+
+2004-11-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getcwd.h: New file, which I forgot to check in on 2004-11-25.
+
+2004-11-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix problems reported by Scott S. Tinsley for HP-UX 11.11 using
+       HP's ANSI C compiler.
+       * fsusage.c (statvfs) [HAVE_SYS_STATVFS_H]: Remove decl.
+       Declaring int functions causes warnings on some modern systems and
+       shouldn't be needed to compile on ancient ones.
+       * same.c (MIN) [defined MIN]: Don't define, since it's already
+       defined.
+
+       * getcwd.c: Replace by a copy of glibc/sysdeps/posix/getcwd.c, but
+       with the following changes.
+       (__set_errno): Parenthesize properly.
+       Include <stdbool.h>.
+       (MIN, MAX, MATCHING_INO): New macros.
+       (__getcwd): Define with prototype, not K&R form.
+       Use heuristics to allocate default buffer on stack if possible.
+       If AT_FDCWD is defined, use openat and fstatat to avoid O(N**2)
+       behavior, and to avoid the PATH_MAX limit when computing
+       ../../../../...
+       Use MATCHING_INO to compare inode number to file.
+       Check for arithmetic overflow in size calculations.
+       Fix bug in reallocation of dot array that caused getcwd to fail
+       on directories nested deeper than 75.
+       Be more careful about saving errno on error.
+       Do not use realloc; use only free+malloc, as this is a bit
+       more flexible and avoids a needless copy operation.
+       Do not inspect st_dev and st_ino for symbolic links; POSIX
+       doesn't specify the latter.
+       Check for closedir errors.
+       Avoid needless casts.
+       Use "#ifdef weak_alias" around weak_alias, to be like other
+       glibc code.
+       The following changes to getcwd.c have effect only when used in
+       gnulib; they have no effect inside glibc proper.
+       (#pragma alloca) [defined _AIX && !defined __GNUC__]: Remove,
+       as alloca isn't used.
+       (alloca, __alloca): Likewise.
+       [!_LIBC]: Include "getcwd.h", "mempcpy.h".
+       Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
+       unconditionally, as gnulib assumes C89 or better.
+       Do not include <sys/param.h>.
+       (errno) [!defined __GNU_LIBRARY__ && !defined STDC_HEADERS]: Remove
+       no-longer-necessary 'extern int errno' decl; gnulib assumes C89 or
+       better.
+       (NULL) [!defined NULL]: Remove; we assume C89 or better.
+       Include <dirent.h> in a way that is compatible with modern Autoconf.
+       (_D_ALLOC_NAMELEN, _D_EXACT_NAMLEN):
+       New macros, if not already defined.
+       Include <unistd.h> if _LIBC, not if __GNU_LIBRARY__.
+       Use "_LIBC", not "defined _LIBC", for consistency.
+       (HAVE_MEMPCPY): Remove; no longer needed now that gnulib has
+       a mempcpy module.
+       (__lstat, __closedir, __opendir, __readdir) [!_LIBC]: New macros.
+       (GETCWD_RETURN_TYPE): Remove.  All uses replaced by char *.
+       * xgetcwd.c: David MacKenzie's old code was removed, so give
+       credit only to Jim Meyering and adjust the copyright dates.
+       Do not include <limits.h>, <stdio.h>, <sys/types.h>,
+       <stdlib.h>, <unistd.h>, "pathmax.h".
+       Instead, include "xgetcwd.h" (first) and "getcwd.h".
+       (INITIAL_BUFFER_SIZE): Remove.
+       (xgetcwd): Rely on getcwd, since we now depend on a reliable one.
+
+2004-11-23  Jim Meyering  <jim@meyering.net>
+
+       * getopt_.h: Remove trailing blanks.
+
+2004-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * utimens.c (__attribute__, ATTRIBUTE_UNUSED): New macros.
+       (futimens): New function, which uses futimes if available.
+       (futimens, utimens): Support timespec==NULL, with same semantics
+       as utime and utimens.
+       * utimens.h (futimens): New decl.
+
+2004-11-23  Jim Meyering  <jim@meyering.net>
+
+       * __fpending.c: Add comment.
+
+2004-11-23  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * lib/getopt_.h: Re-addition of __getopt_argv_const caused
+       redefinition warnings. To avoid them, include the defines
+       in `#if !defined __need_getopt ... #endif'. The only place
+       where __getopt_argv_const is used is in definitions
+       of getopt_long and getopt_long_only below, which are as well
+       protected by `#ifndef __need_getopt'.
+       [defined __GETOPT_PREFIX && !defined __need_getopt]: Undef
+       __need_getopt after including <stdio.h> and <unistd.h> These
+       headers might have defined it.
+
+2004-11-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getopt_.h (__GETOPT_CONCAT, __GETOPT_XCONCAT, __GETOPT_ID):
+       New macros.
+       (getopt, getopt_long, getopt_long_only, optarg, opterr, optind,
+       optopt): Use them instead of invoking ## directly; otherwise, the
+       symbols will be __GETOPT_PREFIXgetopt rather than rpl_getopt.
+
+2004-11-19  Bruno Haible  <bruno@clisp.org>
+
+       * strtok_r.c: Move comments from here...
+       * strtok_r.h: ... to here.
+
+2004-11-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * realloc.c (rpl_realloc): Call 'free' if n==0, since realloc
+       might fail.  Problem reported by Yoann Vandoorselaere.
+       * calloc.c (rpl_calloc): Defend against buggy calloc implementations
+       that mishandle size_t overflow.
+
+2004-11-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * canon-host.c: Include "strdup.h".
+       (canon_host): Use getaddrinfo if available, so that IPv6 works.
+       Use strdup instead of malloc/strcpy to duplicate strings.
+
+       * human.h (LONGEST_HUMAN_READABLE): Add 1 for space before unit.
+       (human_space_before_unit): New constant.
+       * human.c (human_readable): Support it.
+
+       * xgetcwd.c: Include <limits.h>, for PATH_MAX.
+       (xgetcwd): Set errno correctly when failing.
+       Work around Solaris 9 bug: getcwd sets errno==ERANGE even though
+       the failure is actually due to a PATH_MAX problem.
+
+       Further getopt changes to make it more likely that glibc will
+       buy the changes back.
+       * getopt.c (POSIXLY_CORRECT): New constant.
+       (getopt): Use it, so to preserve glibc semantic
+       * getopt1.c (getopt_long, getopt_long_only): Arg is char * const *
+       when compiling for libc.
+       * getopt_.h (__getopt_argv_const): Bring it back.
+       (getopt_long, getopt_long_only): Use it.
+
+       * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal):
+       New arg POSIXLY_CORRECT.  All callers changed.
+       (getopt): Argv is now char * const *, as per standard.
+       (_getopt_internal_r, _getopt_internal): Argv is now char **,
+       not char *__getopt_argv_const *.
+       * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
+       _getopt_long_only_r): Likewise.
+       * getopt_.h (getopt, getopt_long, geopt_long_only): Likewise.
+       * getopt_int.h (_getopt_internal, _getopt_internal_r,
+       _getopt_long_r, _getopt_long_only_r): Likewise.
+       * getopt_.h (__getopt_argv_const): Remove.
+       (getopt): Argv is now char * const *, as per standard.
+
+       * getdate.y (tORDINAL): New token.
+       (day, relunit): Allow it for relative times.
+       (relative_time_table): Use tORDINAL for ordinals.
+
+2004-11-15  Jim Meyering  <jim@meyering.net>
+
+       * closeout.c: Include "__fpending.h" once again.
+       Include <stdbool.h>.
+       (close_stdout): Don't fail just because stdout was closed initially,
+       since some programs don't write to stdout in the normal course of
+       operation (other than --version and --help), and we don't want this
+       function to make e.g. `touch file >&-' fail.
+       But do fail if it was closed and someone has tried to write to it.
+       E.g., `printf foo >&-' must fail.
+
+2004-11-11  Simon Josefsson  <jas@extundo.com>
+
+       * strtok_r.h, strtok_r.c: New file.
+
+2004-11-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getopt_.h (__getopt_argv_const): New macro, to be used so that
+       we can stop lying to compilers about the constness of argv when we
+       are compiled outside glibc.
+       (getopt, getopt_long, getopt_long_only): Use it.
+       * getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal,
+       getopt): Likewise.
+       * getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
+       _getopt_long_only_r): Likewise.
+       * getopt_int.h (_getopt_internal, _getopt_internal_r, _getopt_long_r,
+       _getopt_long_only_r): Likewise.
+
+       * getopt_.h [defined __GETOPT_PREFIX && !defined __need_getopt]:
+       Include <stdlib.h> and <stdio.h>, and <unistd.h> if available.
+       Then rename getopt to __GETOPT_PREFIX##getopt, and so forth for
+       the other external symbols.
+       (getopt) [!defined __GNU_LIBRARY]: Use prototype, not old-style
+       declaration, since the above renaming now works around collisions.
+
+2004-11-11  Jim Meyering  <jim@meyering.net>
+
+       * linebreak.c: Remove trailing blanks.
+       * alloca_.h: Likewise.
+       * acosl.c: Likewise.
+       * euidaccess.c: Likewise.
+       * allocsa.h: Likewise.
+
+2004-11-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * mktime.c (SHR): New macro, which is a portable
+       substitute for >> that should work even on Crays.
+       (TIME_T_MIDPOINT, ydhms_diff, __mktime_internal): Use it.
+       Problem reported by Mark D. Baushke in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2004-11/msg00071.html>.
+       * getdate.y (SHR): Likewise.
+       (tm_diff): Use it.
+       * strftime.c (SHR): Likewise.
+       (tm_diff): Use it.
+       * quotearg.c (struct quoting_options): Use unsigned int for
+       quote_these_too, so that right shifts are well defined.  All uses
+       changed.
+
+2004-11-10  Simon Josefsson  <jas@extundo.com>
+
+       * getaddrinfo.h, getaddrinfo.c: New files.
+
+2004-11-10  Jim Meyering  <jim@meyering.net>
+
+       Ensure that no close failure goes unreported.
+       * closeout.c (close_stdout): Always close stdout.  I.e., don't
+       return early when it seems there's nothing to flush.
+       Don't include __fpending.h.
+
+2004-11-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * strftime.c (DO_MULTIBYTE): Check for wchar.h, too.
+
+2004-11-05  Bruno Haible  <bruno@clisp.org>
+
+       * readlink.c: Include stddef.h, needed for size_t on Woe32.
+       Reported by Mark D. Baushke <mdb@cvshome.org>.
+
+2004-11-04  Bruno Haible  <bruno@clisp.org>
+
+       2004-09-11  Bruno Haible  <bruno@clisp.org>
+               * allocsa.valgrind: New file.
+       2004-02-06  Bruno Haible  <bruno@clisp.org>
+               * allocsa.h (sa_alignof): Define differently with HP-UX cc, to
+               avoid a bug of this cc on HP-UX 10.20 dealing with enums.
+               Reported by Christopher Seip <chris.seip@hp.com>.
+
+2004-11-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xreadlink.c (xreadlink): AIX and HP-UX readlink return -1
+       with errno == ERANGE if the buffer is too small.
+       Problem reported by Mark D. Baushke.
+
+2004-11-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xreadlink.c (MAXSIZE): New macro.
+       (xreadlink): Use it instead of SSIZE_MAX.  Ensure initial buffer
+       size does not exceed MAXSIZE.  Avoid cast.
+       As suggested by Mark D. Baushke in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2004-11/msg00009.html>,
+       if readlink fails with buffer size just under MAXSIZE, try again
+       with MAXSIZE.
+
+2004-11-02  Derek R. Price  <derek@ximbiot.com>
+       and  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y [!TEST]: Include <stdio.h>, since we use sprintf now.
+       (get_date): Overparenthesize to avoid GCC warning.
+
+2004-11-02  Bruno Haible  <bruno@clisp.org>
+
+       * setenv.h (unsetenv): Define as a macro if the system's unsetenv()
+       function returns void.
+
+2004-11-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/getpass.c (fflush_unlocked, flockfile, funlockfile)
+       (funlockfile, fputs_unlocked, putc_unlocked): Don't define if
+       already declared.
+
+2004-10-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y: Add support for TZ="foo" within a date string.
+       Fix some bugs near time_t boundaries.  Reject dates with
+       out-of-range components, e.g., "Sept 31".
+       Include <stdlib.h>, "setenv.h", "xalloc.h".
+       (ISDIGIT_LOCALE): Remove; unused.
+       Note that the TZ and time functions used here are not reentrant.
+       (mktime_ok, get_tz): New functions.
+       (TZBUFSIZE): New constant.
+       (get_date): Parse leading TZ="foo".  Reject out-of-range components;.
+       This requires that we sometimes generate our own TZ="XXX..." setting.
+
+2004-10-27  Derek R. Price  <derek@ximbiot.com>
+
+       * mktime.c (not_equal_tm): Remove redundant check.
+
+2004-10-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdate.y: Use Bison 1.875 features, and some minor
+       code cleanups.  This change does not affect semantics.
+       Don't include <stdlib.h>; no longer needed.
+       Don't include unlocked-io.h; only the "#if TEST" code uses
+       stdio, and performance isn't crucial there.
+       (PC, YYLEX_PARAM, YYPARSE_PARAM): Remove; replaced by
+       Bison 1.875 features as described below.
+       All uses of "PC." replaced by "pc->".
+       (YYSTYPE): Add a forward declaration.
+       (yylex, yyerror): Use full prototypes in forward decls.
+       Use "%pure-parser" rather than obsolescent "%pure_parser".
+       Use %parse-param and %lex-param instead of obsolescent
+       YYPARSE_PARAM and YYLEX_PARAM.
+       (meridian_table, month_and_day_table, time_units_table,
+       relative_time_table, time_zone_table, military_table,
+       lookup_zone, lookup_word, get_date):
+       Use NULL instead of 0 where appropriate.
+       (to_hour): Avoid abort (), to avoid a dependency on
+       stdlib.h.
+       (yyerror, yylex): Now accepts parser_control * arg.
+       (main) [TEST]: Use '\0' rather than 0 for char.
+
+2004-10-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getpagesize.c (getpagesize): Don't assume <sys/param.h> exists.
+       It's now the caller's responsibility to handle the case where
+       !HAVE_GETPAGESIZE && !defined getpagesize.
+
+       * mktime.c (leapyear): Arg is long int, not int.
+
+2004-10-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * argp-fs-xinl.c, argp-xinl.c: Update from glibc.
+
+2004-10-12  Simon Josefsson  <jas@extundo.com>
+
+       * getpass.c (fflush_unlocked, flockfile, funlockfile)
+       (fputs_unlocked, putc_unlocked) [!_LIBCS && !USE_UNLOCKED_IO]: Map
+       to real functions.
+
+2004-10-11  Yoann Vandoorselaere  <yoann@prelude-ids.org>
+
+       * vsnprintf.h: New file.
+       * vsnprintf.c: New file.
+
+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.
        * 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.
        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.