Add MD2 and hash fixes.
[gnulib.git] / lib / ChangeLog
index f886b7e..6a30f1e 100644 (file)
@@ -1,5 +1,929 @@
+2005-10-28  Simon Josefsson  <jas@extundo.com>
+
+       * gc.h: Add MD2 and RMD160 length defines.  Add prototypes.
+
+       * gc-libgcrypt.c: Add MD2 (which is not available through
+       libgcrypt).
+
+       * gc-gnulib.c: Add MD2.  Implement gc_hash_* API.
+
+       * md2.h, md2.c: New files.
+
+2005-10-24  Simon Josefsson  <jas@extundo.com>
+
+       * md4.h: Shrink buffer size, now that we changed the type.
+
+2005-10-22  Simon Josefsson  <jas@extundo.com>
+
+       * arcfour.h, arcfour.c: Use fixed size indices in the
+       arcfour_context struct (simplify test vector testing in GNU
+       Shishi).
+
+2005-10-22  Simon Josefsson  <jas@extundo.com>
+
+       * md4.c, md4.c: Simplify buffer handling visavi alignment,
+       suggested by Bruno Haible <bruno@clisp.org>.
+
+2005-10-22  Simon Josefsson  <jas@extundo.com>
+
+       * crc.h: Include stddef.h, for size_t.
+
+2005-10-21  Simon Josefsson  <jas@extundo.com>
+
+       * arctwo.h (arctwo_setkey): Protect variable in CPP macro,
+       suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
+
+2005-10-21  Simon Josefsson  <jas@extundo.com>
+
+       * rijndael-api-fst.c: Fix bugs in CBC mode for more than one
+       block.
+
+2005-10-21  Simon Josefsson  <jas@extundo.com>
+
+       * gc-gnulib.c: Support ARCTWO in CBC mode.
+
+2005-10-21  Simon Josefsson  <jas@extundo.com>
+
+       * hmac-md5.c (hmac_md5): Add comments, suggested by Bruno Haible
+       <bruno@clisp.org>.
+
+       * hmac-sha1.c (hmac_sha1): Likewise.
+
+       * crc.c (crc32_update): Actually use crc parameter, suggested by
+       Bruno Haible <bruno@clisp.org>.
+
+       * crc.h: Include stdint.h directly, suggested by Bruno Haible
+       <bruno@clisp.org>.
+
+2005-10-21  Simon Josefsson  <jas@extundo.com>
+
+       * des.h, des.c: New files.
+
+       * gc-gnulib.c: Support DES.c
+
+2005-10-21  Simon Josefsson  <jas@extundo.com>
+
+       * arctwo.h, arctwo.c: New files.
+
+       * gc-gnulib.c: Support ARCTWO.
+
+2005-10-21  Simon Josefsson  <jas@extundo.com>
+
+       * gc-libgcrypt.c (gc_cipher_open): Handle ECB.
+
+2005-10-19  Simon Josefsson  <jas@extundo.com>
+
+       * gc-gnulib.c: Support ARCFOUR.
+
+2005-10-19  Simon Josefsson  <jas@extundo.com>
+
+       * gc-gnulib.c: Implement gc_cipher_* API, currently only with AES
+       support.
+
+       * gc.h: Add ECB enum type.
+
+       * hmac-md5.c, hmac-sha1.c: Include memxor.h.
+
+2005-10-19  Simon Josefsson  <jas@extundo.com>
+
+       * gc.h, gc-gnulib.c, gc-libgcrypt.c: Support MD4. 
+
+2005-10-18  Simon Josefsson  <jas@extundo.com>
+
+       * md4.h, md4.c: New files, based on md5.?.
+
+2005-10-17  Simon Josefsson  <jas@extundo.com>
+
+       * gc-libgcrypt.c (gc_hmac_sha1): Fix assert.
+
+       * gc.h (gc_nonce, gc_pseudo_random, gc_random): Add prototypes.
+
+2005-10-17  Simon Josefsson  <jas@extundo.com>
+
+       * gc.h, gc-libgcrypt.c: Add more hash types/functions.
+
+2005-10-17  Simon Josefsson  <jas@extundo.com>
+
+       * gc.h, gc-libgcrypt.c: Add ciphers.
+
+2005-10-17  Simon Josefsson  <jas@extundo.com>
+
+       * sha1.c: Use uint32_t instead of md5_uint32.t
+
+       * sha1.h: Use stdint.h and uint32_t instead of md5_uint32 from
+       md5.h.
+
+       * md5.c: Use uin32_t.  Fix non-gcc UNALIGNED_P macro.
+
+       * md5.h: Use stdint.h and uint32_t.  Doc fix.
+
+2005-10-15  Simon Josefsson  <jas@extundo.com>
+
+       * rijndael-api-fst.h, rijndael-api-fst.c: New files.
+
+       * rijndael-alg-fst.h, rijndael-alg-fst.c: New files.
+
+2005-10-14  Simon Josefsson  <jas@extundo.com>
+
+       * arcfour.h, arcfour.c: New files.
+
+2005-10-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * obstack.c [defined _LIBC && defined USE_IN_LIBIO]: Don't
+       include <wchar.h>; no longer needed.
+
+2005-10-14  Jakub Jelinek  <jakub@redhat.com>
+       and  Ulrich Drepper  <drepper@redhat.com>
+
+       Import from libc.
+       * obstack.c (print_and_abort) [defined _LIBC]: Use __fxprintf
+       instead of inline stream orientation test and two separate
+       function calls.  Pay no attention to USE_IN_LIBIO.
+
+2005-10-14  Roland McGrath  <roland@redhat.com>
+
+       Import from libc.  [BZ #1331]
+       * obstack.h [!__STDC__] (obstack_int_grow_fast): Fix misnamed
+       macro argument.
+       Reported by Matej Vela <vela@debian.org>.
+
+2005-10-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * mkdir-p.c (make_dir_parents): Don't report an error if an
+       intermediate directory is in a read-only file system.  Problem
+       reported by Eric Blake.
+
+2005-10-13  Simon Josefsson  <jas@extundo.com>
+
+       * gc-pbkdf2-sha1.c (gc_pbkdf2_sha1): Optimize CEIL computation.
+       Move memory allocation outside of loop.
+
+2005-10-12  Simon Josefsson  <jas@extundo.com>
+
+       * gc-pbkdf2-sha1.c: New file.
+
+       * gc.h: Add gc_pbkdf2_sha1 prototype.
+
+2005-10-12  Simon Josefsson  <jas@extundo.com>
+
+       * gc.h, gc-gnulib.c, gc-libgcrypt.c: Use Gc_rc for return types,
+       suggested by Bruno Haible <bruno@clisp.org>.
+
+2005-10-12  Simon Josefsson  <jas@extundo.com>
+
+       * gc-libgcrypt.c (gc_hmac_sha1): New function.
+
+       * gc-gnulib.c (gc_hmac_sha1): New function.
+
+2005-10-12  Simon Josefsson  <jas@extundo.com>
+
+       * gc.h, gc-gnulib.c, gc-libgcrypt.c: Support SHA-1.
+
+2005-10-12  Simon Josefsson  <jas@extundo.com>
+
+       * gc-gnulib.c: Condition MD5 and HMAC-MD5 use on GC_USE_MD5 and
+       GC_USE_HMAC_MD5, respectively.
+
+       * gc-libgcrypt.c (gc_md5): Fix assert call.
+       (gc_md5): Fix typo.
+
+       * gc.h (gc_hash_buffer): Use gc_hash in prototype.
+
+       * gc-libgcrypt.c (gc_hash_buffer): Ditto.
+
+       * gc-gnulib.c (gc_hash_buffer): Ditto.
+
+2005-10-11  Bruno Haible  <bruno@clisp.org>
+
+       * c-strcasestr.h: New file, from GNU gettext.
+       * c-strcasestr.c: New file, from GNU gettext.
+
+2005-10-11  Bruno Haible  <bruno@clisp.org>
+
+       * c-strcase.h: New file, from GNU gettext.
+       * c-strcasecmp.c: New file, from GNU gettext.
+       * c-strncasecmp.c: New file, from GNU gettext.
+
+2005-10-11  Simon Josefsson  <jas@extundo.com>
+
+       * crc.h, crc.c: New files.
+
+       * gc.h (gc_hash_buffer): Add doc.
+
+2005-10-08  Simon Josefsson  <jas@extundo.com>
+
+       * gc.h: Add gc_hash and gc_hash_buffer.
+
+       * gc-gnulib.c (gc_hash_buffer): Add.  Reorder #include's.
+
+       * gc-libgcrypt.c (gc_hash_buffer): Add.
+
+2005-10-11  Bruno Haible  <bruno@clisp.org>
+
+       * strcasecmp.c: Include limits.h.
+       (strcasecmp): Avoid integer overflow on exotic platforms.
+       * strncasecmp.c: Include limits.h.
+       (strncasecmp): Avoid integer overflow on exotic platforms.
+       Reported by Paul Eggert.
+
+2005-10-06  Simon Josefsson  <jas@extundo.com>
+
+       * hmac-md5.c: New file.
+
+       * hmac.h: New file.
+
+2005-10-06  Simon Josefsson  <jas@extundo.com>
+
+       * memxor.c (memxor): Avoid casts and warnings.
+
+2005-10-05  Derek Price  <derek@ximbiot.com>
+
+       * getdelim.c (SIZE_MAX): New macro, if not already defined.
+
+2005-10-05  Simon Josefsson  <jas@extundo.com>
+
+       * memxor.c (memxor): Fix compiler error.
+
+       * md5.h (MD5_DIGEST_SIZE, MD5_BLOCK_SIZE): Add, see also
+       <http://sourceware.org/bugzilla/show_bug.cgi?id=1423>.
+
+       * memxor.h, memxor.c: New files.
+
+       * getaddrinfo.h: Don't protect sys/types.h with HAVE_SYS_TYPES_H,
+       we assume all systems have it, suggested by Jim Meyering
+       <jim@meyering.net>.  Remove HAVE_SYS_SOCKET_H test too, to see if
+       any systems lack sys/socket.h; mingw32 is known to lack it, but we
+       don't support it yet anyway.  Also remove HAVE_NETDB_H test, for
+       same reasons.
+
+2005-10-04  Bruno Haible  <bruno@clisp.org>
+
+       * verify.h (verify_true): Provide alternative definition for C++.
+
+2005-10-04  Simon Josefsson  <jas@extundo.com>
+
+       * getaddrinfo.h: Move sys/types.h include first, reported by "Mark
+       D. Baushke" <mdb@gnu.org>.
+
+2005-10-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getdelim.c: Include getdelim.h first.  Include <limits.h>.
+       (SSIZE_MAX): New macro, if not already defined.
+       (getdelim): Fix buffer overrun on 64-bit hosts with lines longer
+       than 2 GiB.
+
+2005-10-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * exclude.c: Include verify.h.
+       (verify): Remove.  All callers changed to use verify.h's version.
+       * strtoimax.c: Likewise.
+       * utimecmp.c: Likewis.e
+
+       Sync from coreutils.
+       * .cppi-disable: Add getaddrinfo.h, getdelim.h, getline.h, getpass.c
+       mbchar.h, mbuiter.h, strcase.h, strnlen.h, strnlen1.h.
+       * .cvsignore: Add fts.h, search.h, t-fpending.
+       * settime.c (settime): Fix { typo in previous patch.  Also, don't
+       bother returning ENOSYS if settimeofday or stime fails; just let
+       them return whatever errno they want to return.
+       * utimens.c: Include unistd.h, for dup2.
+       (futimens): Fix typo: HAVE_FUTIMESAT was misspelled in an #if.
+       (futimens) [! HAVE_FUTIMESAT]: If !file, set errno before returning -1.
+
+2005-10-02  Jim Meyering  <jim@meyering.net>
+
+       Sync from coreutils.
+       * fts-cycle.c [HAVE_CONFIG_H]: Include <config.h>.
+       * openat-die.c: Use `#ifdef HAVE_CONFIG_H', not `#if HAVE_CONFIG_H'.
+       * openat.c (fdopendir): Do not define if HAVE_FDOPENDIR.
+       Remove AT_FDCWD test.
+       Do not consume the fd unless successful.
+       * openat.h (fdopendir): Do not define if HAVE_FDOPENDIR.
+       * settime.c (settime): Move the HAVE_STIME block `up' into an #elif
+       block, so that we don't even try to compile it if settimeofday is
+       available.  This works around a compilation failure on OSF1 V5.1,
+       due to stime requiring a `long int*' while tv_sec is `int'.
+
+2005-09-30  Eric Blake  <ebb9@byu.net>  (tiny change)
+
+       * getdelim.c (getdelim): Remove unused variables.
+
+2005-10-01  Simon Josefsson  <jas@extundo.com>
+
+       * getaddrinfo.h: Protect #include's of sys/socket.h and netdb.h.
+       Only define struct addrinfo if !HAVE_STRUCT_ADDRINFO.  Protect
+       AI_* and EAI_* definitions.  Protect function declarations.
+
+2005-09-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xtime.h (XTIME_PRECISION): Now of type int, not long long int,
+       so that the code works even with ancient cpp.  Portability problem
+       with GCC 2.7.2.1 reported by Thomas M.Ott.
+
+2005-09-27  Jim Meyering  <jim@meyering.net>
+
+       * getcwd.c: Change #ifdef<TAB>HAVE_CONFIG_H to #ifdef HAVE_CONFIG_H.
+
+       * intprops.h (signed_type_or_expr__): Define.
+       (INT_STRLEN_BOUND) [__GNUC__]: Use a slightly tighter bound
+       for unsigned types.
+
+2005-09-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * verify.h (verify_expr): Remove, replacing with:
+       (verify_true): New macro that returns true instead of void.
+       (verify_type__): Remove.
+       (verify): Use verify_true rather than verify_type__.
+
+2005-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * utimens.c (ENOSYS): Define if not already defined.
+       (futimens): Support having a null PATH if the file descriptor
+       is nonnegative.
+
+       * regex_internal.h (__GNUC_PREREQ, always_inline, inline, pure):
+       Remove.
+       (__attribute): Define to empty unless GCC 3.1 or later.
+       This works around a core dump on OpenBSD 3.4, which has GCC
+       2.95.3, which dumps core when given __attribute__(()).  It also
+       simplifies other tests, since we really don't want to bother with
+       worrying about which ancient version of GCC supported what.
+       Original problem reported by Yoann Vandoorselaere, with part of
+       the fix suggested by Derek Price.
+
+2005-09-24  Jim Meyering  <jim@meyering.net>
+
+       * verify.h (verify_type__): Use `unsigned int' as the bitfield type
+       so we can once again use a positive bitfield width of 1 -- now we
+       don't have to explain why we were using a bitfield width of 2.
+
+2005-09-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getaddrinfo.c [HAVE_NETINET_IN_H]: Include <netinet/in.h>.
+       Problem reported by Eric Blake.
+       (getaddrinfo): Initialize se so that it's not garbage.
+       Redo internal storage allocation so that it doesn't make unportable
+       assumptions about alignment.
+       Fix a memory leak.
+
+       * utimens.c (futimens): Use futimesat if available.
+       Prefer it to futimes since it doesn't have the futimes bug.
+
+       * verify.h (GL_CONCAT0, GL_CONCAT): Remove.
+       (verify): Don't use the __LINE__ trick, as it doesn't work in general.
+       Instead, declare a function that returns a pointer to an array,
+       and use verify_type__ to declare the size of the array.
+       Problem and germ of a solution reported by Bruno Haible.
+       (verify_type__): Use 2, not 1, for bitfield size, to avoid
+       a warning with Irix 6.5 cc.  Problem reported by Bruno Haible.
+
+2005-09-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Sync from coreutils.
+
+       * .cppi-disable: Add regcomp.c, regex_internal.c, regex_internal.h,
+       stat-time.h.
+       * argmatch.h: Include verify.h
+       (ARGMATCH_VERIFY): Use verify rather than rolling our own.
+       (ARGMATCH_ASSERT): Remove; unused.
+       * canonicalize.c: Assume STDC_HEADERS.
+       * exclude.c: Include "strcase.h".
+       * regex_internal.h [!defined _LIBC]: Likewise.
+       * getusershell.c: Include stdio--.h rather than stdio.h
+       and stdio-safer.h.
+       (getusershell): Call fopen, not fopen_safer.
+       * save-cwd.c: Include fcntl--.h rather than fcntl.h.
+       Do not include unistd-safer.h.
+       (save_cwd): Don't call fd_safer; no longer needed
+       now that we include fcntl--.h.
+
+       * getdate.y (relative_time): New type.
+       (RELATIVE_TIME_0): New constant.
+       (parser_control): Use relative_time instead of doing it ourselves.
+       (%union): Add new relative_time rel member.
+       (tYEAR_UNIT, tMONTH_UNIT, tHOUR_UNIT, tMINUTE_UNIT, tSEC_UNIT):
+       Now typeless.
+       (relunit, relunit_snumber): Now of type rel.
+       (zone, rel, relunit, get_date): Adjust to above changes.
+
+       * getloadavg.c: Include fcntl--.h rather than fcntl.h.
+       Do not include unistd-safer.h.
+       (getloadavg): Don't call fd_safer; no longer needed
+       now that we include fcntl--.h.
+
+       * mkdir-p.c (ENOSYS): Define to EEXIST if not defined.
+       (make_dir_parents): Treat ENOSYS like EEXIST.
+
+       Improve quality of diagnostics on restore_cwd failure.
+       * mkdir-p.h (make_dir): Remove.  All uses replaced by mkdir.
+       (make_dir_parents): Last arg is now int * (for errno), not bool *.
+       * mkdir-p.c (make_dir, make_dir_parents): Likewise.
+       Rewrite "mkdir -p" algorithm to avoid the need for "stat"
+       each time through the loop.  Do not diagnose restore_cwd failure;
+       that is the caller's job (and perhaps the caller does not care).
+
+       * mkdir-p.c (CLEANUP_CWD, CLEANUP): Remove.
+       (make_dir_parents): Revamp to avoid need for CLEANUP_CWD, CLEANUP.
+       If the file already exists but is not a directory, don't bother
+       to try to make its parents.
+       Close potential file descriptor leak if we can't chdir("/") (!).
+       Don't always return true if chdir($PWD) fails; return true only
+       if the requested action was done successfully (except for the
+       chdir($PWD)).
+       Don't log final directory unless we actually made it.
+       Refactor to avoid duplicate code to fix up permissions.
+       Don't attempt to fix up parent permissions if chdir($PWD) fails.
+
+       * strftime.c (my_strftime): Rewrite the previous change slightly,
+       to make it a bit faster and (I hope) clearer.
+       * strftime.c (my_strftime): Add support for %:z, %::z, %:::z.
+       Fix bug in formats like %2N.
+
+       * verify.h: New file.
+
+2005-09-22  Jim Meyering  <jim@meyering.net>
+
+       Sync from coreutils.
+
+       * backupfile.c: Use ARGMATCH_VERIFY, just in case.
+
+       * posixtm.c (posixtime) [lint]: Initialize *all* of tm0, not just
+       the .tm_year member, since otherwise gcc-4.0 would now warn about
+       tm_zone, tm_gmtoff, tm_isdst, tm_yday, tm_wday.
+
+       * quotearg.c (quotearg_n_options): Change code to be suboptimal, in
+       order to avoid an unsuppressible warning from gcc on 64-bit systems.
+
+       * getdate.y (get_date): Undo part of the 2005-04-04 change, so that
+       the command "date -d'2005-03-27 +1 day'" succeeds once again, even
+       when run in a time zone for which daylight savings time is in effect
+       for the starting date.
+
+       * mkdir-p.c (make_dir_parents): Don't let a failed chdir($PWD)
+       stop us from restricting permissions of just-created absolute-named
+       directories.
+       * mkdir-p.c (CLEANUP_CWD): Return *true*, not false when failing
+       to restore initial working directory.
+       * mkdir-p.c (make_dir_parents): New parameter: different_working_dir,
+       to tell caller if/when we change the working directory and are
+       unable to return to the initial one.
+       * mkdir-p.h (make_dir_parents): Update prototype.
+       * mkdir-p.c (CLEANUP_CWD): Change one more `return 1' to
+       `return false'.  This fixes a bug introduced on 2004-07-30.
+
+       * openat.c (fdopendir): Be sure to close the supplied
+       file descriptor before returning.  This makes our replacement
+       implementation a little closer to Solaris's, where fdopendir
+       ties the file descriptor to the returned DIR* pointer.
+       * openat.c (unlinkat): New function.
+       * openat.h (unlinkat): Add prototype.
+       * openat-die.c (openat_save_fail): Rename from openat_save_die.
+       (openat_restore_fail): Rename from openat_restore_die.
+       * openat.c, openat.h: Reflect s/_die/_fail/ renaming.
+
+       Provide an alternative to exiting immediately upon save_cwd or
+       restore_cwd failure.  Now, an application can arrange e.g.,
+       to perform a longjump in that case.
+       * openat.c: Include dirname.h.
+       Use IS_ABSOLUTE_FILE_NAME rather than testing for leading slash.
+       (rpl_openat, fdopendir, fstatat): Call openat_save_die
+       and openat_restore_die rather than calling error directly.
+       Don't include "error.h" or "exitfail.h"; they're no longer needed.
+
+       * openat-die.c (openat_save_die, openat_restore_die): New file.
+       * openat.h (openat_save_die, openat_restore_die): Declare and define.
+
+       * strftime.c [FPRINTFTIME] (fprintftime): Provide a new interface:
+       size_t fprintftime (FILE *fp, char const *fmt, struct tm const *tm,
+                           int utc, int nanoseconds);
+       Background:
+       date should not have to allocate a megabyte of virtual memory to
+       handle a format argument like +%1048575T.  When implemented with
+       strftime, it must allocate such a buffer, use strftime to fill it
+       in, print it, then free it.
+       With fprintftime, it simply prints everything and exits.
+       With no need for memory allocation, that's one fewer way to fail.
+       * strftime.c (my_strftime): Parse the colons of %:::z *after* the
+       optional field width, not before, so we accept %9:z, not %:9z.
+       (my_strftime): Be sure to use L_('x') for literals.
+
+       * backupfile.c, canon-host.c, canonicalize.c, chown.c, cloexec.c:
+       * dup-safer.c, dup2.c, euidaccess.c, fd-safer.c, fileblocks.c:
+       * fopen-safer.c, fsusage.c, ftruncate.c, getcwd.c, getcwd.h:
+       * getloadavg.c, getopt_.h, getpagesize.h, getugroups.c, group-member.c:
+       * human.h, idcache.c, mkdir-p.c, mountlist.c, nanosleep.c, pathmax.h:
+       * physmem.c, posixver.c, putenv.c, raise.c, safe-read.c, same.c:
+       * save-cwd.c, setenv.c, settime.c, tempname.c, unlinkdir.c:
+       * unsetenv.c, userspec.c, xgethostname.c, xreadlink.c:
+       Assume HAVE_UNISTD_H, i.e., include <unistd.h> unconditionally.
+
+       * chown.c, cloexec.c, dup-safer.c, dup2.c, fsusage.c, getcwd.c:
+       * getloadavg.c, mountlist.c, openat.h, save-cwd.c, tempname.c:
+       Assume HAVE_FCNTL_H (i.e., include <fcntl.h> unconditionally,
+       and don't include <sys/file.h>).
+
+2005-09-22  Eric Blake  <ebb9@byu.net>  (tiny change)
+
+       Sync from coreutils.
+
+       * getloadavg.c (getloadavg) [__CYGWIN__]: Port to cygwin.
+       [__linux__]: Allocate a big enough buffer for /proc/loadavg.
+       [!LDAV_DONE]: Avoid unused variable warning.
+
+2005-09-21  Bruno Haible  <bruno@clisp.org>
+
+       * unicodeio.h (unicode_to_mb): New declaration.
+
+2005-09-20  Derek Price  <derek@ximbiot.com>
+
+       * getaddrinfo.c: Don't include <netdb.h> included from getaddrinfo.h.
+
+2005-09-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Use a consistent style for including <config.h>.
+       * __fpending.c, acl.c, argmatch.c,
+       argp-help.c, argp-parse.c,
+       argp-pvh.c, backupfile.c, basename.c, c-stack.c,
+       calloc.c, check-version.c, cloexec.c, closeout.c, copy-file.c,
+       creat-safer.c, cycle-check.c, dirfd.c, dirname.c, dup-safer.c,
+       dup2.c, euidaccess.c, exclude.c, exitfail.c, fatal-signal.c,
+       fd-safer.c, file-type.c, fileblocks.c, filemode.c,
+       filenamecat.c, findprog.c, fnmatch.c, fopen-safer.c, free.c,
+       fsusage.c, ftruncate.c, full-write.c, fwriteerror.c,
+       getaddrinfo.c, getcwd.c, getdelim.c, getline.c, getlogin_r.c,
+       getndelim2.c, getnline.c, getopt1.c, getpass.c, group-member.c,
+       hard-locale.c, hash-pjw.c, hash.c, human.c, idcache.c,
+       inet_ntop.c, isdir.c, long-options.c, malloc.c, memcasecmp.c,
+       memcmp.c, memcoll.c, memcpy.c, memmove.c, mkdir-p.c,
+       modechange.c, mountlist.c, open-safer.c, physmem.c,
+       pipe-safer.c, pipe.c, poll.c, posixver.c, progname.c,
+       progreloc.c, putenv.c, quote.c, quotearg.c, readline.c,
+       readlink.c, realloc.c, regex.c, rename.c, rmdir.c, rpmatch.c,
+       safe-read.c, same.c, save-cwd.c, savedir.c, sig2str.c,
+       strcspn.c, strerror.c, stripslash.c, strncasecmp.c, strndup.c,
+       strnlen.c, strnlen1.c, strsep.c, strstr.c, strtod.c,
+       strtoimax.c, strtol.c, strverscmp.c, tempname.c, time_r.c,
+       userspec.c, utimecmp.c, version-etc-fsf.c,
+       version-etc.c, wait-process.c, xalloc-die.c, xgetcwd.c,
+       xmalloc.c, xmemcoll.c, xnanosleep.c, xreadlink.c, xsetenv.c,
+       xstrndup.c, xstrtoimax.c, xstrtol.c, xstrtoumax.c, yesno.c:
+       Standardize inclusion of config.h.
+       * __fpending.h, dirfd.h, getdate.h, human.h,
+       inttostr.h:  Removed inclusion of config.h from header files.
+       * inttostr.c:  Adjusted in-tree users.
+       * timespec.h: Remove superfluous warning to include config.h.
+       * atexit.c, chdir-long.c chown.c, fchown-stub.c, getgroups.c,
+       gettimeofday.c, lchown.c, lstat.c, mkdir.c, mkstemp.c,
+       nanosleep.c, openat.c, raise.c, readtokens0.c, readutmp.c,
+       unlinkdir.c: Guard inclusion of config.h with HAVE_CONFIG_H.
+
+2005-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * stat-time.h: New file.
+       * timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP, CTIME_CMP):
+       (MTIME_CMP, TIMESPEC_NS): Remove.  Now done by stat-time.h,
+       in a different way.
+       (timespec_cmp): New function.
+       * utimecmp.c: Include stat-time.h.
+       (SYSCALL_RESOLUTION): Depend on whether various struct stat
+       members exist, not on the obsolescent ST_MTIM_NSEC.
+       (utimecmp): Use the new stat-time functions rater than TIMESPEC_NS.
+
+2005-09-15  Derek Price  <derek@ximbiot.com>
+           Paul Eggert  <eggert@cs.ucla.edu>
+
+       * regcomp.c, regexec.c, regex_internal.c: Back out previous
+       changes, consolidating in...
+       * regex_internal.h: ...this file.
+
+2005-09-15  Derek Price  <derek@ximbiot.com>
+
+       * regex_internal.h: Blank `pure' for GNUC < 3.
+       * regex_internal.c: Ditto, using this...
+       (__GNUC_PREREQ): ...new macro.
+       * regcomp.c, regexec.c: Blank `always_inline' for GNUC < 3.1 using...
+       (__GNUC_PREREQ): ...this new macro.
+
+       * strstr.h: Include string.h. Define strstr as a macro here.
+
+2005-09-13  Derek Price  <derek@ximbiot.com>
+
+       * canon-host.c (canon_host_r): Set *cherror on memory allocation
+       failure.
+       Reported by Jim Meyering  <jim@meyering.net>.
+
+2005-09-13  Jim Meyering  <jim@meyering.net>
+
+       * canon-host.c: Filter through gnu indent and reword comments slightly.
+       * canon-host.h (ch_strerror_r): Tweak cpp indentation and spacing.
+
+2005-09-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>  (tiny change)
+
+       * lib/base64.c: Typo.
+       (base64_encode): Put b64str in initialized data section.
+
+2005-09-12  Derek Price  <derek@ximbiot.com>
+
+       Return usable errors from canon-host.
+       * canon-host.h: New file.
+       * canon-host.c (canon_host): Wrap...
+       (canon_host_r): ...this new function, which now relies exclusively on
+       getaddrinfo.
+       (ch_strerror): New function.
+       (last_cherror): New global.
+       * getaddrinfo.c: Move include of getaddrinfo.h first to test interface.
+       (getaddrinfo): Add AI_CANONNAME functionality.  Don't do arithmetic on
+       void *.
+       (freeaddrinfo): Free ai->ai_canonname when set.
+
+2005-09-12  Derek Price  <derek@ximbiot.com>
+           Paul Eggert  <eggert@cs.ucla.edu>
+
+       * glob-libc.h: Renamed from glob_.h.  The new version is
+       taken from libc's glob.h, except with '#ifdef __GLOB_GNULIB'
+       protecting things that should be done only in gnulib contexts.
+       * glob_.h: New file, containing only the glob things needed for
+       gnulib.
+       (GLOB_PREFIX): Remove.  All uses changed to look for __GLOB_GNULIB.
+       (__GLOB_CONCAT, __GLOB_XCONCAT, __GLOB_ID): Remove; no longer needed.
+       (glob, globfree, glob_pattern_p): Now defined simply in terms of
+       rpl_glob, rpl_globfree, rpl_glob_pattern_p.
+       (__GLOB_GNULIB): New macro, to keep the glob.h changes clearer
+       and to respect the namespace rules better.
+
+2005-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge glibc and coreutils changes into gnulib, plus a few
+       extra fixes.
+       * md5.c: Use #error rather than a string.
+       (CYCLIC): New macro, from glibc source.  Use it instead of rol.
+       * md5.h (__GNUC_PREREQ, __THROW): Define if not defined already.
+       (__attribute__): Define to empty for non recent-GCC.
+       (__md5_buffer, __md5_finish_ctx, __md5_init_ctx, __md5_process_block):
+       (__md5_process_bytes, __md5_read_ctx, __md5_stream):
+       Renamed from their non-__ counterparts, with new macros replacing
+       them if not _LIBC.  Add __THROW attribute.
+       (rol): Remove.
+       (struct md5_ctx): Align buffer if using GCC.
+       * sha1.h (struct sha1_ctx): Likewise.
+       * sha1.c (SWAP): Renamed from the NOTSWAP.  All uses changed.
+       The old name was backwards.
+       (NOTSWAP): Remove; not used.
+       (rol): New macro, moved here from md5.h.
+       (sha1_process_block): Remove a FIXME that doesn't make sense.
+
+2005-09-12  Derek Price  <derek@ximbiot.com>
+
+       * gai_strerror.c: Include config.h when available.  Include
+       getaddrinfo.h before other headers to test interface.
+       Reported by Larry Jones <lawrence.jones@ugs.com>.
+
+2005-09-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * glob.c (glob, globfree, __glob_pattern_p): Use old-style function
+       definitions, since that's the preferred style in glibc.
+       Fix a minor spacing issue, and update copyright notice to match glibc's.
+
+2005-09-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * regex_internal.h (bitset_not): Add parens to avoid gcc -Wall warning.
+
+2005-09-06  Simon Josefsson  <jas@extundo.com>
+
+       * getpass.c (getpass): Fix typo, test for HAVE_TCSETATTR and not
+       TCSETATTR.  Reported by Derek Price <derek@ximbiot.com>.
+
+2005-09-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Change bitset word type from unsigned int to unsigned long int,
+       as this has better performance on typical 64-bit hosts.
+       Port bitset code to hosts with unusual word sizes.
+       * regcomp.c (build_equiv_class, build_charclass, build_range_exp):
+       (build_collating_symbol):
+       Prefer bitset to re_bitset_ptr_t in prototypes, when the actual
+       argument is a bitset.  This is merely a style issue, but it makes
+       it clearer that an entire array is expected.
+       (re_compile_fastmap_iter, init_dfa, init_word_char, optimize_subexps):
+       * regcomp.c (lower_subexp, parse_bracket_exp, built_charclass_op):
+       Port to the case where bitset_word is not the same as unsigned int.
+       * regex_internal.h (bitset_set, bitset_clear, bitset_contain):
+       (bitset_not, bitset_merge, bitset_set_all, bitset_mask):
+       Likewise.
+       * regexec.c (check_dst_limits_calc_pos_1, check_subexp_matching_top):
+       (build_trtable, group_nodes_into_DFAstates):
+       Likewise.
+       * regcomp.c (re_compile_fastmap_iter, utf8_sb_map, optimize_utf8):
+       Don't assume that SBC_MAX is a multiple of BITSET_WORD_BITS.
+       * regex_internal.h (bitset_set_all, bitset_not): Likewise.
+       * regexec.c (group_nodes_into_DFAstates): Likewise.
+       * regcomp.c (utf8_sb_map): Don't assume UINT_MAX == 0xffffffff.
+       * regcomp.c (optimize_subexps, lower_subexp):
+       Work even if bitset_word has holes in its bitwise representation.
+       * regex_internal.h (BITSET_WORD_BITS): Likewise.
+       * regexec.c (check_dst_limits_calc_pos_1, check_subexp_matching_top):
+       Likewise.
+       * regex_internal.c (re_string_reconstruct):
+       Don't assume UCHAR_MAX == 255.
+       * regex_internal.h (bitset_set_all): Likewise.
+       * regex_internal.h (BITSET_WORD_BITS): Renamed from UINT_BITS.
+       All uses changed.
+       (BITSET_WORDS): Renamed from BITSET_UINTS.  All uses changed.
+       (bitset_word): New type, replacing 'unsigned int' for bitset uses.
+       All uses changed.
+       (BITSET_WORD_MAX): New macro.
+       (bitset_set, bitset_clear, bitset_contain, bitset_empty):
+       (bitset_set_all, bitset_copy):  Now inline functions, not macros.
+       (bitset_empty, bitset_copy):
+       Prefer sizeof (bitset) to multiplying it out ourselves.
+       (bitset_not_merge): Remove; unused.
+       (bitset_contain): Return bool, not unsigned int with one bit on.
+       All callers changed.
+       * regexec.c (build_trtable): Don't assume bitset has no stricter
+       alignment than re_node_set; do this by defining a new internal
+       type struct dests_alloc and using it to allocate memory.
+
+2005-09-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Check for arithmetic overflow when calculating sizes, to prevent
+       some buffer-overflow issues.  These patches are conservative, in the
+       sense that when I couldn't determine whether an overflow was possible,
+       I inserted a run-time check.
+       * regex_internal.h (re_xmalloc, re_xrealloc, re_x2realloc): New macros.
+       (SIZE_MAX) [!defined SIZE_MAX]: New macro.
+       (re_alloc_oversized, re_x2alloc_oversized, re_xnmalloc):
+       (re_xnrealloc, re_x2nrealloc): New inline functions.
+       * lib/regcomp.c (init_dfa, analyze, build_range_exp, parse_bracket_exp):
+       (build_equiv_class, build_charclass): Check for arithmetic overflow
+       in size expression calculations.
+       * lib/regex_internal.c (re_string_realloc_buffers):
+       (build_wcs_upper_buffer, re_node_set_add_intersect):
+       (re_node_set_init_union, re_node_set_insert, re_node_set_insert_last):
+       (re_dfa_add_node, register_state): Likewise.
+       * lib/regexec.c (re_search_stub, re_copy_regs, re_search_internal):
+       (prune_impossible_nodes, push_fail_stack, set_regs, check_arrival):
+       (build_trtable, extend_buffers, match_ctx_init, match_ctx_add_entry):
+       (match_ctx_add_subtop, match_ctx_add_sublast): Likewise.
+
+2005-09-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * glob.c (GET_LOGIN_NAME_MAX): Renamed from LOGIN_NAME_MAX,
+       to avoid a collision with bits/local_lim.h in glibc.
+       All uses changed.  Problem reported by Dmitry V. Levin in
+       <http://sources.redhat.com/bugzilla/show_bug.cgi?id=1060>.
+
+       * regex_internal.c (build_wcs_upper_buffer): Fix portability
+       bugs in int versus size_t comparisons.
+       (re_string_context_at): Fix bug where the code assumed that
+       Idx is signed.
+
+       Use bool where appropriate.
+       * regcomp.c (re_set_fastmap): ICASE arg is bool, not int.
+       All callers changed.
+       (calc_eclosure_iter): Likewise, for ROOT arg.
+       (parse_bracket_element): Likewise, for ACCEPT_HYPHEN arg.
+       (build_charclass_op): Likewise, for NON_MATCH arg.
+       * regex_internal.c (re_string_allocate, re_string_construct):
+       (re_string_construct_common): Likewise, for ICASE arg.
+       * regexec.c (re_search_2_stub, re_search_stub):
+       Likewise, for RET_LEN arg.
+       (check_matching): Likewise, for FL_LONGEST_MATCH arg.
+       (set_regs): Likewise, for FL_BACKTRACK arg.
+       * regcomp.c (re_compile_fastmap_iter, optimize_utf8):
+       (duplicate_node_closure, calc_inveclosure, calc_eclosure):
+       (calc_eclosure_iter, parse_bracket_exp):
+       Use bool for internal variables that are booleans.
+       * regexec.c (re_search_internal, check_matching, proceed_next_node):
+       (set_regs, build_sifted_states, sift_states_bkref):
+       (check_arrival_add_next_nodes, check_arrival_expand_ecl_sub):
+       (expand_bkref_cache, build_trtable, group_nodes_into_DFAstates):
+       (find_collation_sequence_value):
+       Likewise.
+       * regex_internal.c (re_node_set_insert, re_node_set_insert_last):
+       (re_node_set_compare):
+       Return bool, not int. All callers changed.
+       * regexec.c (check_halt_node_context, check_dst_limits):
+       (build_trtable, check_node_accept): Likewise.
+       * regex_internal.h: Include stdbool.h.
+
+       Fix bugs uncovered when converting to bool.
+       * regcomp.c (calc_eclosure_iter): Check for storage allocation
+       failure instead of charging ahead blindly.
+       * regex_internal.c (register_state): Likewise.
+       * regexec.c (re_search_2_stub): Use simpler method than boolean
+       for freeing internal storage.
+       (group_nodes_into_DFA_states): Use unsigned int, not int, for
+       bitset pieces used as boolean, to avoid undefined behavior
+       on hosts that do int overflow checking.
+
+2005-08-31  Derek Price  <derek@ximbiot.com>
+
+       * getdelim.c (getdelim): Return EOF on EOF.
+       Reported by Larry Jones <lawrence.jones@ugs.com>.
+
 2005-08-31  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * regex_internal.c (re_string_reconstruct): Don't assume buffer
+       lengths fit in regoff_t; this isn't true if regoff_t is the same
+       width as size_t.
+       * regex.c (re_search_internal): 5th arg is LAST_START
+       (= START + RANGE) instead of RANGE.  This avoids overflow
+       problems when regoff_t is the same width as size_t.
+       All callers changed.
+       (re_search_2_stub): Check for overflow when adding the
+       sizes of the two strings.
+       (re_search_stub): Check for overflow when adding START
+       to RANGE; if it occurs, substitute the extreme value.
+
+2005-08-31  Jim Meyering  <jim@meyering.net>
+
+       * regcomp.c (search_duplicated_node): Make first pointer arg
+       a pointer-to-const.
+       * regex_internal.c (create_ci_newstate, create_cd_newstate):
+       (register_state): Likewise.
+       * regexec.c (search_cur_bkref_entry, check_dst_limits):
+       (check_dst_limits_calc_pos_1, check_dst_limits_calc_pos):
+       (group_nodes_into_DFAstates): Likewise.
+
+2005-08-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       On 64-bit hosts (where size_t is 64 bits and int is 32 bits), the
+       old glibc regex code mishandles strings longer than 2**31 bytes.
+       This patch fixes this when the regex code is used in gnulib
+       (i.e., outside glibc).
+
+       This patch should not affect the use of the regex code inside
+       glibc.  No doubt this problem also needs to be handled for glibc
+       as well, but the result will be an incompatible change to the
+       glibc ABI, and the old ABI will have to be supported too.  That
+       can be the the subject for another patch.
+
+       * regex.h (_REGEX_LARGE_OFFSETS): New feature-test macro,
+       governing whether the rest of this patch is active.  By default,
+       the macro is disabled and the patch has no effect.
+       (regoff_t) [defined _REGEX_LARGE_OFFSETS]: Define to off_t, not int.
+       (__re_idx_t, __re_size_t, __re_long_size_t): New types.
+       (struct re_pattern_buffer, re_search, re_search_2, re_match):
+       (re_match_2, re_set_registers): Use the new types.
+       * regex_internal.h (Idx, re_hashval_t): New types.
+       (REG_MISSING, REG_ERROR, REG_VALID_INDEX, REG_VALID_NONZERO_INDEX):
+       New macros.
+       (re_node_set, re_charset_t, re_token_t, re_string_realloc_buffers):
+       (re_string_context_at, bin_tree_t, re_dfastate_t):
+       (struct re_state_table_entry, state_array_t, re_sub_match_last_t):
+       (re_sub_match_top_t, re_match_context_t, re_sift_context_t):
+       (struct re_fail_stack_ent_t, struct re_fail_stack_t, struct re_dfa_t):
+       (re_string_char_size_at, re_string_wchar_at):
+       (re_string_elem_size_at):
+       Use the new types and macros to port to 64-bit hosts.
+       Use unsigned types for internal values, so that the code
+       mostly works even for arrays larger than SSIZE_MAX.
+       * regcomp.c (re_compile_internal, init_dfa, duplicate_node):
+       (search_duplicated_node, calc_eclosure_iter, fetch_number):
+       (parse_reg_exp, parse_branch, parse_expression, parse_sub_exp):
+       (build_equiv_class, build_charclass, re_compile_fastmap_iter):
+       (free_dfa_content, create_initial_state, optimize_utf8, analyze):
+       (optimize_subexps, calc_first, link_nfa_nodes, duplicate_node_closure):
+       (calc_inveclosure, parse_dup_op, build_range_exp):
+       (build_collating_symbol, parse_bracket_exp, build_charclass_op):
+       (fetch_number, create_token_tree, mark_opt_subexp):
+       Likewise.
+       * regex_internal.c (re_string_construct_common, create_ci_newstate):
+       (create_cd_newstate, re_string_allocate, re_string_construct):
+       (re_string_realloc_buffers, build_wcs_upper_buffer):
+       (re_string_skip_chars, build_upper_buffer, re_string_translate_buffer):
+       (re_string_reconstruct, re_string_peek_byte_case):
+       (re_string_fetch_byte_case, re_string_context_at):
+       (re_node_set_alloc, re_node_set_init_1, re_node_set_init_2):
+       (re_node_set_init_copy, re_node_set_add_intersect):
+       (re_node_set_init_union, re_node_set_merge, re_node_set_insert):
+       (re_node_set_insert_last, re_node_set_compare, re_node_set_contains):
+       (re_node_set_remove_at, re_dfa_add_node, calc_state_hash):
+       (re_acquire_state, re_acquire_state_context, register_state):
+       Likewise.
+       * regex.c (match_ctx_init, match_ctx_add_entry, search_cur_bkref_entry):
+       (match_ctx_add_subtop, match_ctx_add_sublast, sift_ctx_init):
+       (re_search_internal, re_search_2_stub, re_search_stub)
+       (re_copy_regs, check_matching, check_halt_state_context, update_regs):
+       (push_fail_stack, sift_states_iter_mb, build_sifted_states):
+       (update_cur_sifted_state, check_dst_limits):
+       (check_dst_limits_calc_pos_1, check_dst_limits_calc_pos):
+       (check_subexp_limits, sift_states_bkref, merge_state_array):
+       (check_subexp_matching_top, get_subexp, get_subexp_sub):
+       (find_subexp_node, check_arrival, check_arrival_add_next_nodes):
+       (check_arrival_expand_ecl, check_arrival_expand_ecl_sub):
+       (expand_bkref_cache, check_node_accept_bytes):
+       (group_nodes_into_DFAstates, check_node_accept, regexec, re_match):
+       (re_search, re_match_2, re_search_2, prune_impossible_nodes):
+       (acquire_init_state_context, check_halt_node_context):
+       (proceed_next_node, pop_fail_stack, set_regs, free_fail_stack_return):
+       (sift_states_backward, clean_state_log_if_needed):
+       (sub_epsilon_src_nodes, add_epsilone_src_nodes, merge_state_with_log):
+       (find_recover_state, transit_state_sb, transit_state_mb):
+       (transit_state_bkref, build_trtable, match_ctx_clean):
+       Likewise.
+       * regcomp.c (parse_dup_op): Add an extra test if Idx is unsigned,
+       to work around an assumption that REG_MISSING is negative.
+
        * regcomp.c (re_comp) [defined _REGEX_RE_COMP || defined _LIBC]:
        (seek_collating_symbol_entry) [defined _LIBC]:
        (lookup_collation_sequence_value) [defined _LIBC]:
 
 2004-09-08  Bruno Haible  <bruno@clisp.org>
 
-       * stdint_.h.in: New file, taken from GNU clisp.
+       * stdint_.h: New file, taken from GNU clisp.
 
 2004-09-08  Oskar Liljeblad  <oskar@osk.mine.nu>
 
        * exclude.c (bool): Declare, perhaps by including stdbool.h.
        (<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
        (<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
-       Include if available.
+       Include if available.
        (<xalloc.h>): Include
        (SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
        (verify): New macro.  Use it to verify that EXCLUDE macros do not