+2010-07-14 Paul R. Eggert <eggert@cs.ucla.edu>
+
+ getcwd: on Solaris, work better if ancestors are inaccessible
+ * lib/getcwd.c (__getcwd): If getcwd returns EINVAL for zero
+ buffer and size, try again with a large buffer. This works better
+ on Solaris, since its getcwd succeeds even if the path to the root
+ is inaccessible, and this is helpful in common cases such as .zfs
+ hidden directories. Problem reported by J Chapman Flack in
+ http://lists.gnu.org/archive/html/bug-tar/2010-06/msg00000.html
+ Use system getcwd if it's declared, not merely if it's partly
+ working; use the partly-working test only to avoid needless effort
+ if the system getcwd fails.
+ * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Omit
+ comment that was already obsolete and is now even more obsolete.
+ * modules/getcwd (Depends-on): Depend on strdup, since __getcwd
+ now might call strdup.
+
+2010-07-13 Paul R. Eggert <eggert@cs.ucla.edu>
+
+ pthread: Add enough so that coreutils/src/sort.c compiles.
+ * lib/pthread.in.h: Add self to author comment. Conditionalize on
+ _GL_PTHREAD_H, not PTHREAD_H_, for consistency with the rest of
+ gnulib. Include <sched.h> and <time.h>, as per POSIX.
+ Include <sys/types.h>, in case it defines pthread_t.
+ (pthread_t, pthread_attr_t, pthread_barrier_t, pthread_barrierattr_t):
+ (pthread_cond_t, pthread_condattr_t, pthread_key_t, pthread_mutex_t):
+ (pthread_mutexattr_t, pthread_once_t, pthread_rwlock_t):
+ (pthread_rwlockattr_t, pthread_spinlock_t):
+ New typedefs, if HAVE_PTHREAD_T is not defined.
+ (PTHREAD_COND_INITIALIZER, PTHREAD_MUTEX_INITIALIZER):
+ (PTHREAD_ONCE_INIT, PTHREAD_RWLOCK_INITIALIZER):
+ (PTHREAD_BARRIER_SERIAL_THREAD, PTHREAD_CANCEL_DEFERRED):
+ (PTHREAD_CANCEL_ASYNCHRONOUS, PTHREAD_CANCEL_ENABLE):
+ (PTHREAD_CANCEL_DISABLE, PTHREAD_CANCELED, PTHREAD_CREATE_JOINABLE):
+ (PTHREAD_CREATE_DETACHED, PTHREAD_INHERIT_SCHED):
+ (PTHREAD_EXPLICIT_SCHED, PTHREAD_MUTEX_DEFAULT, PTHREAD_MUTEX_NORMAL):
+ (PTHREAD_MUTEX_ERRORCHECK, PTHREAD_MUTEX_RECURSIVE):
+ (PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_ROBUST, PTHREAD_PRIO_NONE):
+ (PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT, PTHREAD_PROCESS_PRIVATE):
+ (PTHREAD_PROCESS_SHARED, PTHREAD_SCOPE_SYSTEM, PTHREAD_SCOPE_PROCESS):
+ New macros.
+ (pthread_cond_destroy, pthread_cond_init, pthread_cond_signal):
+ (pthread_cond_wait, pthread_exit, pthread_mutex_destroy):
+ (pthread_mutex_init, pthread_mutex_lock, pthread_mutex_unlock):
+ (pthread_spin_init, pthread_spin_lock, pthread_spin_trylock);
+ (pthread_spin_unlock): New dummy functions.
+ (pthread_create): Return EAGAIN; don't set errno.
+ * m4/pthread.m4 (gl_PTHREAD_CHECK): Check for pthread_t, and
+ require AC_C_INLINE.
+ * modules/pthread (Depends-on): Add sched, time.
+ (pthread.h): Use AM_V_GEN.
+
+2010-07-13 Bruno Haible <bruno@clisp.org>
+
+ striconveh: Don't malloc memory if the result buffer is sufficient.
+ * lib/striconveh.c (mem_cd_iconveh_internal): Use the provided result
+ buffer if its size is sufficient.
+ Reported by Ludovic Courtès <ludo@gnu.org>.
+
+2010-07-13 Bruno Haible <bruno@clisp.org>
+
+ strtod: Add safety check.
+ * lib/strtod.c (ldexp): Abort if this dummy replacement gets called.
+
+2010-07-12 Bruno Haible <bruno@clisp.org>
+
+ Unify tests that set gl_cv_func_ldexpl_no_libm.
+ * m4/ldexpl.m4 (gl_CHECK_LDEXPL_NO_LIBM): New macro, extracted from
+ gl_FUNC_LDEXPL.
+ (gl_FUNC_LDEXPL): Invoke it.
+ * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise.
+
+2010-07-12 Bruno Haible <bruno@clisp.org>
+
+ Unify tests that set gl_cv_func_ldexp_no_libm.
+ * m4/ldexp.m4: New file, based on m4/mathfunc.m4.
+ * m4/strtod.m4 (gl_PREREQ_STRTOD): Require gl_CHECK_LDEXP_NO_LIBM.
+ * modules/ldexp (Files): Remove m4/mathfunc.m4. Add m4/ldexp.m4.
+ (configure.ac): Simply invoke gl_FUNC_LDEXP.
+ * modules/strtod (Files): Add m4/ldexp.m4.
+
+2010-07-12 Bruno Haible <bruno@clisp.org>
+
+ Unify tests that set gl_cv_func_frexpl_no_libm.
+ * m4/frexpl.m4 (gl_CHECK_FREXPL_NO_LIBM): New macro, extracted from
+ gl_FUNC_FREXPL_NO_LIBM.
+ (gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): Invoke it.
+ * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise.
+
+2010-07-12 Bruno Haible <bruno@clisp.org>
+
+ Unify tests that set gl_cv_func_frexp_no_libm.
+ * m4/frexp.m4 (gl_CHECK_FREXP_NO_LIBM): New macro, extracted from
+ gl_FUNC_FREXP_NO_LIBM.
+ (gl_FUNC_FREXP, gl_FUNC_FREXP_NO_LIBM): Require it.
+ * m4/printf-frexp.m4 (gl_FUNC_PRINTF_FREXP): Likewise.
+
+2010-07-12 Paul R. Eggert <eggert@cs.ucla.edu>
+
+ memcoll: clarify sizes versus lengths, document better, and tweak perf
+ * lib/memcoll.c (strcoll_loop, memcoll0):
+ Improve quality of descriptive comments. Name variables
+ consistently as to whether they are lengths (which do not include
+ terminating null) versus sizes (which do).
+ * lib/xmemcoll.c (xmemcoll0): Likewise.
+ * lib/memcoll.c (strcoll_loop): Tweak the way that the diff is
+ returned when s1size == 0; this is easier to compile and saves
+ about 17% of memcoll's code space on x86-64 with GCC 4.1.2.
+
+2010-07-12 Bruno Haible <bruno@clisp.org>
+
+ Tests for module '_Exit'.
+ * modules/_Exit-tests: New file.
+ * tests/test-_Exit.sh: New file.
+ * tests/test-_Exit.c: New file.
+
+ New module '_Exit'.
+ * lib/stdlib.in.h (__attribute__): New macro.
+ (_Exit): New declaration.
+ * lib/_Exit.c: New file.
+ * m4/_Exit.m4: New file.
+ * m4/stdlib_h.m4 (gl_STDLIB_H): Check whether _Exit is declared.
+ (gl_STDLIB_H_DEFAULTS): Initialize GNULIB__EXIT and HAVE__EXIT.
+ * modules/stdlib (Makefile.am): Substitute GNULIB__EXIT and HAVE__EXIT.
+ * modules/_Exit: New file.
+ * tests/test-stdlib-c++.cc (_Exit): Check signature.
+ * doc/posix-functions/_Exit_C99.texi: Mention the new module.
+
+2010-07-12 Paul R. Eggert <eggert@cs.ucla.edu>
+
+ strtod: make it more-accurate typically, and don't require libm
+ * lib/strtod.c (_GL_ARG_NONNULL): Remove; no longer needed.
+ Include limits.h. Don't include string.h.
+ (HAVE_LDEXP_IN_LIBC, HAVE_RAW_DECL_STRTOD): Define to 0 if not defined.
+ (locale_isspace): New function, so that no casts are needed to
+ check whether *s is a space.
+ (ldexp): Provide an unused dummy if not available.
+ (scale_radix_exp, parse_number, underlying_strtod): New functions.
+ (strtod): Use them. This implementation prefers to use the
+ underlying strtod if available, falling back on our own code
+ only to fix known bugs. This is more likely to produce an
+ accurate result. Also, it avoids the use of libm functions.
+ * m4/strtod.m4 (gl_FUNC_STRTOD): Don't invoke _AC_LIBOBJ_STRTOD;
+ no longer needed. Invoke AC_LIBOBJ([strtod]); don't know why this
+ was absent, but it caused a test failure with coreutils.
+ (gl_PREREQ_STRTOD): Check wither ldexp can be used without linking
+ with libm.
+ * modules/strtod (Makefile.am, Link): libm is no longer needed.
+ * modules/strtod-tests (Makefile.am): Likewise.
+
+2010-07-11 Pádraig Brady <P@draigBrady.com>
+ Bruno Haible <bruno@clisp.org>
+
+ unistr/u8-strchr: Optimize ASCII argument case.
+ * lib/unistr/u8-strchr.c (u8_strchr): For ASCII arguments, use strchr.
+
+2010-07-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ (x)memcoll: minor tweaks
+ * lib/memcoll.c (strcoll_loop): Prefer the style where 'const'
+ is after the type that it qualifies.
+ (memcoll0): Likewise.
+ * lib/memcoll.h (memcoll0): Likewise.
+ * lib/xmemcoll.c (collate_error, xmemcoll0): Likewise.
+ * lib/xmemcoll.h (xmemcoll0): Likewise.
+ * lib/memcoll.c (memcoll0): Correct the comment. This function
+ differs from memcoll in that the NUL byte is part of the argument.
+ Omit the abort-checks, as performance is a real issue here. Plus,
+ the checks were wrong anyway (an off-by-one error). Omit local
+ variable 'diff', as it's a bit clearer that way.
+ * m4/memcoll.m4 (gl_MEMCOLL): Omit AC_FUNC_STRCOLL, as it's
+ no longer needed.
+
+2010-07-08 Chen Guo <chenguo4@yahoo.com>
+
+ (x)memcoll: speedup when input is known to be NUL delimited
+ * lib/memcoll.c: Include stdlib.
+ (memcoll0) New function.
+ (strcoll_loop) New function, refactored for use in both memcoll
+ and memcoll0.
+ * lib/memcoll.h: Add prototype for memcoll0.
+ * lib/xmemcoll.c: (xmemcoll0) New function.
+ (collate_error) New function, refactored for use in both xmemcoll
+ and xmemcoll0.
+ * lib/xmemcoll.h: Add prototype for xmemcoll0.
+ * m4/memcoll.m4: add inline invocation.
+
+2010-07-06 Pádraig Brady <P@draigBrady.com>
+
+ * build-aux/bootstrap: Remove any local translations
+ from the translation project synchronization directory,
+ so that local only translations are not distributed.
+
+2010-07-04 Bruno Haible <bruno@clisp.org>
+
+ fsusage: Clarify which code applies to which platforms.
+ * m4/fsusage.m4 (gl_FSUSAGE): Clarify which test succeeds on which
+ platform.
+ * lib/fsusage.c (get_fs_usage): Likewise.
+
+2010-07-04 Bruno Haible <bruno@clisp.org>
+
+ havelib: Fix bug when AC_LIB_FROMPACKAGE is used more than twice.
+ * m4/lib-link.m4 (AC_LIB_FROMPACKAGE): Use m4_defn.
+ Reported by Martin Lambers <marlam@marlam.de>.
+
+2010-07-04 Jim Meyering <meyering@redhat.com>
+
+ hash: once again explicitly disallow insertion of NULL
+ * lib/hash.c (hash_insert0): Reinstate just-removed test:
+ inserting a NULL pointer cannot work with these functions.
+ Add a comment with details.
+ This reverts part of the 2010-07-01 commit, 5bef1a35
+ "hash: extend module to deal with non-pointer keys".
+
+2010-07-01 Bruno Haible <bruno@clisp.org>
+
+ stdbool: Update doc.
+ * doc/posix-headers/stdbool.texi: Mention OpenBSD bug.
+ Info from Christian Weisgerber <naddy@mips.inka.de>.
+
+2010-07-01 Jim Meyering <meyering@redhat.com>
+
+ hash: extend module to deal with non-pointer keys
+ * lib/hash.c (hash_insert0): New interface, much like hash_insert
+ but that allows insertion of non-pointer entries.
+ Do not disallow an ENTRY value of NULL.
+ (hash_insert): This is now just a thin wrapper. Call hash_insert0.
+ * lib/hash.h (hash_insert0): Declare.
+
+2010-07-01 Christian Weisgerber <naddy@mips.inka.de> (tiny change)
+
+ gettext: Use AC_GNU_SOURCE as a fallback for AC_USE_SYSTEM_EXTENSIONS.
+ * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): When AC_USE_SYSTEM_EXTENSIONS is
+ not present (i.e. with autoconf 2.59 and when using gettextize, not
+ gnulib), require AC_GNU_SOURCE instead.
+
+2010-07-01 Ian Beckwith <ianb@erislabs.net>
+
+ idpriv-drop: Fix tests.
+ * tests/test-idpriv-drop.su.sh: Refer to the test-idpriv-drop program,
+ not to the test-idpriv-droptemp program.
+
+2010-06-29 Bruno Haible <bruno@clisp.org>
+
+ string: Fix syntax error with g++ 2.96.
+ * lib/string.in.h (__pure__): Remove definition.
+ (_GL_ATTRIBUTE_PURE): New macro.
+ (memchr, memmem, memrchr, rawmemchr, strchrnul, strnlen, strpbrk,
+ strstr, strcasestr): Use it instead of __attribute__ ((__pure__)).
+ Reported by Christian Weisgerber <naddy@mips.inka.de>.
+
+2010-06-28 Ian Beckwith <ianb@erislabs.net>
+
+ unitypes: Fix bug introduced on 2010-05-18.
+ * modules/unitypes (Files): Really add m4/libunistring-base.m4.
+
+2010-06-22 Eric Blake <eblake@redhat.com>
+
+ memmem: slight optimization
+ * lib/str-two-way.h (critical_factorization): Update comments.
+ Reduce work during factorization phase.
+ Reported by Carlos Bueno <carlos@bueno.org>.
+
+2010-06-21 Bruno Haible <bruno@clisp.org>
+
+ Fix HAVE_CALLOC_POSIX misnomer.
+ * lib/stdlib.in.h (calloc): Use REPLACE_CALLOC instead of
+ !HAVE_CALLOC_POSIX.
+ * m4/calloc.m4 (gl_REPLACE_CALLOC): Set REPLACE_CALLOC instead of
+ HAVE_CALLOC_POSIX.
+ * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_CALLOC
+ instead of HAVE_CALLOC_POSIX.
+ * modules/stdlib (Makefile.am): Substitute REPLACE_CALLOC instead of
+ HAVE_CALLOC_POSIX.
+
+ Use modern idiom for calloc() replacement.
+ * modules/calloc (configure.ac): Invoke gl_FUNC_CALLOC_GNU instead of
+ AC_FUNC_CALLOC.
+ * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Renamed from AC_FUNC_CALLOC.
+ Require gl_STDLIB_H_DEFAULTS. Invoke gl_REPLACE_CALLOC.
+ (gl_FUNC_CALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize
+ HAVE_CALLOC_POSIX. Invoke gl_REPLACE_CALLOC.
+ (gl_REPLACE_CALLOC): New macro.
+
+2010-06-21 Bruno Haible <bruno@clisp.org>
+
+ Fix HAVE_REALLOC_POSIX misnomer.
+ * lib/stdlib.in.h (realloc): Use REPLACE_REALLOC instead of
+ !HAVE_REALLOC_POSIX.
+ * m4/realloc.m4 (gl_REPLACE_REALLOC): Set REPLACE_REALLOC instead of
+ HAVE_REALLOC_POSIX.
+ * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_REALLOC
+ instead of HAVE_REALLOC_POSIX.
+ * modules/stdlib (Makefile.am): Substitute REPLACE_REALLOC instead of
+ HAVE_REALLOC_POSIX.
+
+ Use modern idiom for realloc() replacement.
+ * modules/realloc (configure.ac): Invoke gl_FUNC_REALLOC_GNU instead of
+ AC_FUNC_REALLOC.
+ * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): New macro, mostly copied from
+ Autoconf's AC_FUNC_REALLOC.
+ (gl_FUNC_REALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize
+ HAVE_REALLOC_POSIX. Invoke gl_REPLACE_REALLOC.
+ (gl_REPLACE_REALLOC): New macro.
+ Reported by Richard Lloyd <richard.lloyd@connectinternetsolutions.com>.
+
+2010-06-21 Bruno Haible <bruno@clisp.org>
+
+ Fix HAVE_MALLOC_POSIX misnomer.
+ * lib/stdlib.in.h (malloc): Use REPLACE_MALLOC instead of
+ !HAVE_MALLOC_POSIX.
+ * m4/malloc.m4 (gl_REPLACE_MALLOC): Set REPLACE_MALLOC instead of
+ HAVE_MALLOC_POSIX.
+ * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MALLOC
+ instead of HAVE_MALLOC_POSIX.
+ * modules/stdlib (Makefile.am): Substitute REPLACE_MALLOC instead of
+ HAVE_MALLOC_POSIX.
+
+ Use modern idiom for malloc() replacement.
+ * modules/malloc (configure.ac): Invoke gl_FUNC_MALLOC_GNU instead of
+ AC_FUNC_MALLOC.
+ * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): New macro, mostly copied from
+ Autoconf's AC_FUNC_MALLOC.
+ (gl_FUNC_MALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize
+ HAVE_MALLOC_POSIX. Invoke gl_REPLACE_MALLOC.
+ (gl_REPLACE_MALLOC): New macro.
+ Reported by Richard Lloyd <richard.lloyd@connectinternetsolutions.com>.
+
+2010-06-20 Richard Lloyd <richard.lloyd@connectinternetsolutions.com>
+
+ stdio.in.h: fix compilation failure when using HP-UX 11's C compiler
+ * lib/stdio.in.h: Remove excess _GL_CXXALIAS_RPL macro argument.
+ This macro takes 3 arguments, not 4.
+
+2010-06-15 Giuseppe Scrivano <gscrivano@gnu.org>
+
+ ipv6: fix detection under mingw
+ * m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Include <ws2tcpip.h> for struct
+ in6_addr.
+
+2010-06-14 Ben Pfaff <blp@cs.stanford.edu>
+
+ * m4/strtod.m4 (gl_FUNC_STRTOD): Factor out common code. Assume
+ that strtod() works when cross-compiling to a glibc version known
+ to work.
+
+2010-06-15 Bruno Haible <bruno@clisp.org>
+
+ * m4/strtod.m4 (gl_FUNC_STRTOD): Stop using AC_FUNC_STRTOD.
+
+2010-06-15 René Berber <r.berber@computer.org> (tiny change)
+
+ select: Correct timeout.
+ * lib/select.c (rpl_select): Compute wait_timeout correctly.
+
+2010-06-14 Thien-Thi Nguyen <ttn@gnuvola.org> (tiny change)
+
+ git-version-gen: init shell var to avoid env var influence
+ * build-aux/git-version-gen (v): Init shell var to empty.
+
+2010-06-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ priv-set: Don't assume that priv.h exists merely because getppriv does.
+ See Jan Andersen's bug report about AIX 5L in
+ http://lists.gnu.org/archive/html/bug-tar/2010-06/msg00019.html
+ * m4/priv-set.m4 (gl_PRIV_SET): Check for priv.h.
+ * lib/priv-set.c: Do nothing unless HAVE_PRIV_H.
+ * lib/priv-set.h: Likewise.
+ * tests/test-priv-set.c: Likewise.
+
+2010-06-13 Bruno Haible <bruno@clisp.org>
+
+ relocatable: Make it easier to test whether to install wrappers.
+ * m4/relocatable.m4 (gl_RELOCATABLE_BODY): New automake conditional
+ RELOCATABLE_VIA_WRAPPER.
+
+2010-06-13 Bruno Haible <bruno@clisp.org>
+
+ gnulib-tool: Display specified modules and dependencies differently.
+ * gnulib-tool (func_show_module_list): New function.
+ (func_import, func_create_testdir): Invoke it.
+ Reported by Thien-Thi Nguyen <ttn@gnuvola.org>.
+
+2010-06-13 Bruno Haible <bruno@clisp.org>
+
+ gnulib-tool: Align code of func_import and func_create_testdir.
+ * gnulib-tool (func_create_testdir): Rename variable saved_modules to
+ specified_modules.
+
+2010-06-12 Jim Meyering <meyering@redhat.com>
+
+ test-inttostr: avoid spurious failure on Solaris 9
+ * tests/test-inttostr.c (main): Skip the test when snprintf fails
+ to accept "%ju". Reported by Bruno Haible.
+
+2010-06-11 Jim Meyering <meyering@redhat.com>
+
+ test-sys_socket: mark variables as used more readably
+ * tests/test-sys_socket.c (main): Mark otherwise unused variables
+ as "used" explicitly via (void) statement casts. This is more
+ readable than using them in an artificial return expression.
+ Suggestion from Bruno Haible.
+
+2010-06-11 Bruno Haible <bruno@clisp.org>
+
+ Avoid some more warnings from "gcc -Wwrite-strings".
+ * tests/test-argp.c (test_optional): Change 5th and 6th argument type
+ to 'const char *'.
+ * tests/test-c-strstr.c (main): Add 'const' to variable declaration.
+ * tests/test-c-strcasestr.c (main): Likewise.
+ * tests/test-mbscasestr1.c (main): Likewise.
+ * tests/test-mbscasestr2.c (main): Likewise.
+ * tests/test-memmem.c (main): Likewise.
+ * tests/test-strstr.c (main): Likewise.
+ * tests/test-strcasestr.c (main): Likewise.
+
+2010-06-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ init.sh: change framework_failure_ to fail with status 99, not 1
+ * tests/init.sh (framework_failure_): Exit 99, not 1. This informs
+ automake's parallel-tests rule that this is an unexpected failure,
+ even if the test is listed in XFAIL_TESTS.
+