memmem, strstr, strcasestr: fix bug with long periodic needle
[gnulib.git] / ChangeLog
index 80e0736..19b5be8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,867 @@
+2010-10-05  Eric Blake  <eblake@redhat.com>
+
+       memmem, strstr, strcasestr: fix bug with long periodic needle
+       * lib/str-two-way.h (two_way_long_needle): Avoid bug with long
+       periodic needle having false positive.
+       * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Detect bug in glibc 2.12
+       and cygwin 1.7.7.
+       (gl_FUNC_MEMMEM): Be more pessimistic when cross-compiling.
+       * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE)
+       (gl_FUNC_STRCASESTR): Likewise.
+       * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise.
+       * tests/test-memmem.c (main): Expose the bug.
+       * tests/test-strcasestr.c (main): Likewise.
+       * tests/test-strstr.c (main): Likewise.
+       * tests/test-c-strcasestr.c (main): Likewise.
+       * doc/glibc-functions/memmem.texi (memmem): Document the bug.
+       * doc/posix-functions/strstr.texi (strstr): Likewise.
+       * doc/glibc-functions/strcasestr.texi (strcasestr): Likewise.
+       Reported via http://sourceware.org/bugzilla/show_bug.cgi?id=12092
+
+2010-10-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       parse-datetime: do some more renaming
+       * doc/parse-datetime.texi (Authors of parse_datetime): Call it
+       parse_datetime, not get_date.  Mention the renaming.
+       * lib/parse-datetime.y:  Call it parse_datetime, not getdate,
+       in comments.
+       * m4/bison.m4: Likewise.
+
+2010-10-05  Eric Blake  <eblake@redhat.com>
+
+       parse-datetime: better name than get_date
+       * NEWS: Reword the deprecation notice.
+       * modules/get_date: Rename to modules/parse-datetime.
+       * modules/get_date-tests: Rename to modules/parse-datetime-tests.
+       * m4/get_date.m4: Rename to m4/parse-datetime.m4.
+       * lib/get_date.y: Rename to lib/parse-datetime.y.
+       * tests/test-get_date.c: Rename to tests/test-parse-datetime.c.
+       * doc/get_date.texi: Rename to doc/parse-datetime.texi.
+       * doc/getdate.texi: Provide fallback wrapper.
+       * lib/getdate.h: Move guts, and wrap...
+       * lib/parse-datetime.h: ...new file.
+       * lib/parse-datetime.y (get_date): Rename...
+       (parse_datetime): ...to this.
+       * m4/parse-datetime.m4 (gl_GET_DATE): Rename...
+       (gl_PARSE_DATETIME): ...to this.
+       * doc/posix-functions/getdate.texi (get_date): Provide fallback
+       documentation.
+       * modules/getdate (Files): Provide fallback docs and header.
+       (Notice, Depends-on): Update references.
+       * tests/test-parse-datetime.c: Likewise.
+       * DEPENDENCIES: Likewise.
+       * MODULES.html.sh (Date and time <time.h>): Likewise.
+       * doc/parse-datetime.texi (Date input formats)
+       (Authors of parse_datetime): Likewise.
+       * modules/parse-datetime (Files, configure.ac, Makefile.am)
+       (Include): Likewise.
+       * modules/parse-datetime-tests (Files, Makefile.am): Likewise.
+       * gnulib-tool: Likewise.
+       * m4/bison.m4 (gl_BISON): Likewise.
+       Suggested by Bruno Haible.
+
+2010-10-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       more ports to Solaris tr, which needs [] around ranges
+       * gnulib-tool: Solaris tr needs [] around ranges.
+       * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
+       * tests/test-pipe-filter-gi1.c (main): Likewise.
+       * tests/test-pipe-filter-ii1.c (main): Likewise.
+
+2010-10-05  Eric Blake  <eblake@redhat.com>
+
+       bootstrap: fix Solaris regression
+       * build-aux/bootstrap (check_versions): Solaris tr still needs []
+       around ranges.
+       Reported by Pádraig Brady.
+
+       bootstrap: work with pkg-config
+       * build-aux/bootstrap (check_versions): Also transliterate - in
+       prerequisite name.
+       (print_versions): Be robust to any \ in $buildreq.  Avoid listing
+       prerequisites that were already found, to avoid confusion.
+       Reported by Justin Clift.
+
+       faccessat: remove unused wrappers
+       * lib/openat.h (accessat, euidaccesat): Delete, since the mere
+       presence of these wrappers dragged in -lgen on Solaris.
+       Reported by Clemens Brogi; fix suggested by Paul Eggert.
+
+2010-10-05  Jim Meyering  <meyering@redhat.com>
+
+       tests: require @PRAGMA_COLUMNS@ with each @PRAGMA_SYSTEM_HEADER@
+       * Makefile (sc_pragma_columns): New syntax-check rule.
+
+2010-10-04  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
+       * gnulib-tool (func_emit_lib_Makefile_am): When preparing for a libtool
+       library, put '-no-undefined' and the link dependencies into _LDFLAGS.
+       Reported by Bruce Korb and Eric Blake.
+
+2010-10-04  Bruno Haible  <bruno@clisp.org>
+
+       threadlib: Make option --with-libpth-prefix work.
+       * m4/threadlib.m4 (gl_THREADLIB_BODY): When testing whether pth works,
+       use $LIBPTH, not just -lpth.
+
+2010-10-04  Bruno Haible  <bruno@clisp.org>
+
+       Avoid line length limitation from HP NonStop system header files.
+       * m4/include_next.m4 (gl_INCLUDE_NEXT): Define also PRAGMA_COLUMNS.
+       * lib/arpa_inet.in.h: Use PRAGMA_COLUMNS.
+       * lib/ctype.in.h: Likewise.
+       * lib/dirent.in.h: Likewise.
+       * lib/errno.in.h: Likewise.
+       * lib/fcntl.in.h: Likewise.
+       * lib/float.in.h: Likewise.
+       * lib/getopt.in.h: Likewise.
+       * lib/iconv.in.h: Likewise.
+       * lib/inttypes.in.h: Likewise.
+       * lib/langinfo.in.h: Likewise.
+       * lib/locale.in.h: Likewise.
+       * lib/math.in.h: Likewise.
+       * lib/netdb.in.h: Likewise.
+       * lib/netinet_in.in.h: Likewise.
+       * lib/poll.in.h: Likewise.
+       * lib/pthread.in.h: Likewise.
+       * lib/pty.in.h: Likewise.
+       * lib/sched.in.h: Likewise.
+       * lib/se-selinux.in.h: Likewise.
+       * lib/search.in.h: Likewise.
+       * lib/signal.in.h: Likewise.
+       * lib/spawn.in.h: Likewise.
+       * lib/stdarg.in.h: Likewise.
+       * lib/stddef.in.h: Likewise.
+       * lib/stdint.in.h: Likewise.
+       * lib/stdio.in.h: Likewise.
+       * lib/stdlib.in.h: Likewise.
+       * lib/string.in.h: Likewise.
+       * lib/strings.in.h: Likewise.
+       * lib/sys_file.in.h: Likewise.
+       * lib/sys_ioctl.in.h: Likewise.
+       * lib/sys_select.in.h: Likewise.
+       * lib/sys_socket.in.h: Likewise.
+       * lib/sys_stat.in.h: Likewise.
+       * lib/sys_time.in.h: Likewise.
+       * lib/sys_times.in.h: Likewise.
+       * lib/sys_utsname.in.h: Likewise.
+       * lib/sys_wait.in.h: Likewise.
+       * lib/sysexits.in.h: Likewise.
+       * lib/termios.in.h: Likewise.
+       * lib/time.in.h: Likewise.
+       * lib/unistd.in.h: Likewise.
+       * lib/wchar.in.h: Likewise.
+       * lib/wctype.in.h: Likewise.
+       * modules/arpa_inet (Makefile.am): Substitute PRAGMA_COLUMNS.
+       * modules/ctype (Makefile.am): Likewise.
+       * modules/dirent (Makefile.am): Likewise.
+       * modules/errno (Makefile.am): Likewise.
+       * modules/fcntl-h (Makefile.am): Likewise.
+       * modules/float (Makefile.am): Likewise.
+       * modules/getopt-posix (Makefile.am): Likewise.
+       * modules/iconv-h (Makefile.am): Likewise.
+       * modules/inttypes (Makefile.am): Likewise.
+       * modules/langinfo (Makefile.am): Likewise.
+       * modules/locale (Makefile.am): Likewise.
+       * modules/math (Makefile.am): Likewise.
+       * modules/netdb (Makefile.am): Likewise.
+       * modules/netinet_in (Makefile.am): Likewise.
+       * modules/poll-h (Makefile.am): Likewise.
+       * modules/pthread (Makefile.am): Likewise.
+       * modules/pty (Makefile.am): Likewise.
+       * modules/sched (Makefile.am): Likewise.
+       * modules/search (Makefile.am): Likewise.
+       * modules/selinux-h (Makefile.am): Likewise.
+       * modules/signal (Makefile.am): Likewise.
+       * modules/spawn (Makefile.am): Likewise.
+       * modules/stdarg (Makefile.am): Likewise.
+       * modules/stddef (Makefile.am): Likewise.
+       * modules/stdint (Makefile.am): Likewise.
+       * modules/stdio (Makefile.am): Likewise.
+       * modules/stdlib (Makefile.am): Likewise.
+       * modules/string (Makefile.am): Likewise.
+       * modules/strings (Makefile.am): Likewise.
+       * modules/sys_file (Makefile.am): Likewise.
+       * modules/sys_ioctl (Makefile.am): Likewise.
+       * modules/sys_select (Makefile.am): Likewise.
+       * modules/sys_socket (Makefile.am): Likewise.
+       * modules/sys_stat (Makefile.am): Likewise.
+       * modules/sys_time (Makefile.am): Likewise.
+       * modules/sys_times (Makefile.am): Likewise.
+       * modules/sys_utsname (Makefile.am): Likewise.
+       * modules/sys_wait (Makefile.am): Likewise.
+       * modules/sysexits (Makefile.am): Likewise.
+       * modules/termios (Makefile.am): Likewise.
+       * modules/time (Makefile.am): Likewise.
+       * modules/unistd (Makefile.am): Likewise.
+       * modules/wchar (Makefile.am): Likewise.
+       * modules/wctype (Makefile.am): Likewise.
+
+2010-10-04  Bruno Haible  <bruno@clisp.org>
+
+       read-file tests: Avoid a test failure on NonStop Kernel.
+       * tests/test-read-file.c (main): Don't assume that /etc/resolv.conf is
+       a regular file.
+       Reported by Joachim Schmitz <schmitz@hp.com>.
+
+2010-10-03  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool: Fixes for --create-testdir with --libtool.
+       * gnulib-tool (func_get_automake_snippet): Don't augment
+       EXTRA_lib_SOURCES for the pt_chown module, since pt_chown.o goes into
+       an executable.
+       (func_create_testdir): Handle module 'alloca' like func_import.
+       Reported by Bruce Korb <bruce.korb@gmail.com>.
+
+2010-10-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Avoid some lines longer than 80 characters.
+       * lib/stdint.in.h: Break long comment lines.
+       * lib/math.in.h: Likewise.
+       (_GL_NUM_UINT_WORDS): New macro, for readability.
+       (gl_signbitf, gl_signbitd, gl_signbitl): Use it.
+       * lib/stdio.in.h: Break lines in _GL_WARN_ON_USE calls.
+       * lib/stdlib.in.h: Likewise.
+       * lib/spawn.in.h: Likewise.
+       * lib/sys_socket.in.h: Update an URL.
+       * lib/sys_stat.in.h: Break long line.
+
+2010-10-03  Bruno Haible  <bruno@clisp.org>
+            Joachim Schmitz  <schmitz@hp.com>  (tiny change)
+
+       acl: Add support for ACLs on NonStop Kernel.
+       * m4/acl.m4 (gl_FUNC_ACL): For Solaris, test for facl(), not for acl().
+       Check whether the function aclsort() exists.
+       * lib/acl-internal.h: For Solaris, test HAVE_FACL, not HAVE_ACL.
+       (acl_nontrivial) [HAVE_ACLSORT]: New declaration.
+       * lib/file-has-acl.c: For Solaris, test HAVE_FACL, not HAVE_ACL.
+       (acl_nontrivial [HAVE_ACLSORT]: New function.
+       (file_has_acl): Implement for NonStop Kernel.
+       * lib/set-mode-acl.c: For Solaris, test HAVE_FACL, not HAVE_ACL.
+       (qset_acl): Implement for NonStop Kernel.
+       * lib/copy-acl.c (qcopy_acl): Implement for NonStop Kernel.
+       * tests/test-sameacls.c: For Solaris, test HAVE_FACL, not HAVE_ACL.
+       (main): Implement for NonStop Kernel.
+       * tests/test-file-has-acl.sh (acl_flavor): Set to 'nsk' on NonStop
+       Kernel. Handle this flavor.
+       * tests/test-set-mode-acl.sh: Likewise.
+       * tests/test-copy-acl.sh: Likewise.
+       * tests/test-copy-file.sh: Likewise.
+
+2010-10-03  Bruno Haible  <bruno@clisp.org>
+
+       Info about ACLs on NonStop Kernel.
+       * doc/acl-resources.txt: Add info about NonStop Kernel.
+       References by Joachim Schmitz <schmitz@hp.com>.
+
+2010-10-02  Bruno Haible  <bruno@clisp.org>
+
+       Define missing EDQUOT on NonStop Kernel.
+       * lib/errno.in.h (EDQUOT): Assign a value if missing.
+       * lib/strerror.c (rpl_strerror): Handle missing EDQUOT.
+       * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether EDQUOT is
+       missing.
+       * doc/posix-headers/errno.texi: Mention the NSK bug.
+       * doc/posix-functions/strerror.texi: Mention the workaround on NSK.
+       Reported by Joachim Schmitz <schmitz@hp.com>.
+
+2010-10-02  Bruno Haible  <bruno@clisp.org>
+
+       Update doc for POSIX:2008.
+       * doc/posix-headers/*.texi [except ucontext.texi, sys_timeb.texi]:
+       Update URL of POSIX specification.
+
+2010-10-02  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool: In testdirs, use the newest available config.{guess.sub}.
+       * gnulib-tool (func_create_testdir): Use config.guess and config.sub
+       from gnulib, not from Automake.
+
+2010-10-02  Bruno Haible  <bruno@clisp.org>
+
+       New module 'system-posix'.
+       * modules/system-posix: New file.
+       * lib/stdlib.in.h: Include <sys/wait.h> only when the 'system-posix'
+       module is present.
+       * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize
+       GNULIB_SYSTEM_POSIX.
+       * modules/stdlib (Depends-on): Remove sys_wait.
+       (Makefile.am): Substitute GNULIB_SYSTEM_POSIX.
+       * doc/posix-functions/system.texi: Mention the new module.
+       * doc/posix-headers/stdlib.texi: Likewise.
+       * tests/test-stdlib.c: If GNULIB_TEST_SYSTEM_POSIX is not defined,
+       define test_sys_wait_macros to a no-op.
+       Reported by Sam Steingold <sds@gnu.org>.
+
+2010-09-30  Bruno Haible  <bruno@clisp.org>
+
+       More renaming from 'getdate' to 'get_date'.
+       * doc/get_date.texi: Renamed from doc/getdate.texi.
+       * modules/get_date (Files): Update.
+       * MODULES.html.sh (Date and time <time.h>): Update.
+       * DEPENDENCIES: Update.
+       * gnulib-tool: Update comment.
+       * m4/bison.m4 (gl_BISON): Likewise.
+       * m4/get_date.m4 (gl_GET_DATE): Likewise.
+
+2010-09-30  Justin Clift  <jclift@redhat.com>  (tiny change)
+
+       bootstrap: support ACLOCAL_FLAGS during aclocal
+       * build-aux/bootstrap (aclocal): Honor ACLOCAL_FLAGS, so the user
+       can add additional -I dir for third-party .m4 files.
+
+2010-09-30  Eric Blake  <eblake@redhat.com>
+
+       bootstrap: use glibtoolize on MacOS
+       * build-aux/bootstrap (check_versions): Convert libtool into
+       libtoolize.
+       (tool search): Move libtool check earlier, and look for
+       glibtoolize for MacOS.
+       (gnulib_tool_options): Auto-add --libtool when appropriate.
+       Reported by Justin Clift.
+
+       poll: fix typo that broke test on MacOS
+       * m4/poll.m4 (gl_FUNC_POLL): Add missing test.
+       Reported by Justin Clift.
+
+       getdate: rename to get_date
+       Note: getdate.h is not renamed, to minimize client impact.
+       * modules/getdate: Mark obsolete.  Move old contents...
+       * modules/get_date: ...to new module name.
+       * modules/getdate-tests: Move...
+       * modules/get_date-tests: ...here.
+       * m4/getdate.m4: Move...
+       * m4/get_date.m4: ...here, and rename gl_GETDATE to gl_GET_DATE.
+       * lib/getdate.y: Move...
+       * lib/get_date.y: ...here.
+       * tests/test-getdate.c: Move...
+       * tests/test-get_date.c: ...here.
+       * doc/posix-functions/getdate.texi (getdate): Update name.
+       * NEWS: Mention the change.
+
+2010-09-29  Bruno Haible  <bruno@clisp.org>
+
+       Separate the module 'waitpid' from the module 'sys_wait'.
+       * lib/sys_wait.in.h (waitpid): Declare only if the 'waitpid' module is
+       present.
+       * m4/sys_wait_h.m4 (gl_SYS_WAIT_MODULE_INDICATOR): Invoke
+       gl_MODULE_INDICATOR_FOR_TESTS.
+       (gl_SYS_WAIT_H_DEFAULTS): Initialize GNULIB_WAITPID.
+       * modules/sys_wait (Depends-on): Remove waitpid.
+       (Makefile.am): Substitute GNULIB_WAITPID.
+       * modules/waitpid (configure.ac): Invoke gl_SYS_WAIT_MODULE_INDICATOR.
+       * tests/test-sys_wait-c++.cc (GNULIB_NAMESPACE::waitpid): Check the
+       signature only if the 'waitpid' module is present.
+       * doc/posix-functions/waitpid.texi: Mention the 'waitpid' module.
+       * NEWS: Mention the change.
+       * modules/grantpt (Depends-on): Add waitpid.
+       * modules/wait-process (Depends-on): Likewise.
+
+2010-09-29  Bruno Haible  <bruno@clisp.org>
+
+       More tests for module 'sys_wait'.
+       * modules/sys_wait-c++-tests: New file.
+       * tests/test-sys_wait-c++.cc: New file.
+       * modules/sys_wait-tests (Depends-on): Add sys_wait-c++-tests.
+       Reported by Tatsuro MATSUOKA <tmacchant5@yahoo.co.jp>.
+
+2010-09-29  Bruno Haible  <bruno@clisp.org>
+
+       New module 'waitpid'.
+       * lib/waitpid.c: New file, extracted from lib/sys_wait.in.h.
+       * lib/sys_wait.in.h: Include <sys/types.h>, c++defs.h, warn-on-use.h.
+       Don't include <process.h>.
+       (waitpid): Declare only, using modern idiom.
+       * m4/waitpid.m4: New file.
+       * m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Check whether waitpid is declared.
+       * modules/waitpid: New file.
+       * modules/sys_wait (Depends-on): Add c++defs, warn-on-use, waitpid.
+       (Makefile.am): Update.
+       Reported by Tatsuro MATSUOKA <tmacchant5@yahoo.co.jp>.
+
+2010-09-28  Bruno Haible  <bruno@clisp.org>
+
+       poll: Assume ANSI C.
+       * lib/poll.c (poll): Use an ANSI C declaration.
+
+2010-09-28  Bruno Haible  <bruno@clisp.org>
+
+       poll-h: Create poll.h on all platforms.
+       * lib/poll.in.h: Use double-inclusion guard. Don't define POLL*,
+       struct pollfd, nfds_t, INFTIM when the system has <poll.h>.
+       * m4/poll_h.m4 (gl_POLL_H): Set HAVE_POLL_H. Invoke
+       gl_CHECK_NEXT_HEADERS. Don't set POLL_H.
+       (gl_REPLACE_POLL_H): Don't set POLL_H.
+       (gl_POLL_H_DEFAULTS): Don't initialize POLL_H.
+       * modules/poll-h (Depends-on): Add include_next.
+       (Makefile.am): Create poll.h unconditionally. Substitute also
+       HAVE_POLL_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, NEXT_POLL_H.
+
+2010-09-28  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'poll-h'.
+       * modules/poll-h-c++-tests: New file.
+       * tests/test-poll-h-c++.cc: New file.
+
+       Tests for module 'poll-h'.
+       * modules/poll-h-tests: New file.
+       * tests/test-poll-h.c: New file.
+
+2010-09-28  Bruno Haible  <bruno@clisp.org>
+
+       poll-h: Ensure POLL{RD,WR}{NORM,BAND} are defined on glibc platforms.
+       * modules/poll-h (Depends-on): Add 'extensions'.
+
+2010-09-28  Bruno Haible  <bruno@clisp.org>
+
+       New module 'poll-h'.
+       * lib/poll.in.h: Include c++defs.h and warn-on-use.h.
+       (poll): Use modern idiom.
+       * modules/poll-h: New file.
+       * modules/poll (Files): Remove lib/poll.in.h.
+       (Depends-on): Add poll-h.
+       (configure.ac): Invoke gl_POLL_MODULE_INDICATOR.
+       (Makefile.am): Move code for generation of poll.h to modules/poll-h.
+       * m4/poll_h.m4: New file.
+       * m4/poll.m4 (gl_FUNC_POLL): Require gl_POLL_H. Don't check for poll.h
+       here. Don't set POLL_H here. Instead, set HAVE_POLL and REPLACE_POLL
+       and invoke gl_REPLACE_POLL_H.
+       * lib/poll.c: Use common idiom.
+       * tests/test-poll.c: Likewise.
+       * doc/posix-headers/poll.texi: Mention the poll-h module.
+       Suggested by Eric Blake.
+
+2010-09-26  Bruno Haible  <bruno@clisp.org>
+
+       sys_wait: Implement WSTOPSIG.
+       * lib/sys_wait.in.h (WSTOPSIG): New macro.
+       Reported by Simon Josefsson.
+
+2010-09-26  Simon Josefsson  <simon@josefsson.org>
+
+       stdlib, sys_wait: Avoid compilation error on mingw.
+       * lib/sys_wait.in.h: Include <signal.h>, for SIGTERM.
+
+2010-09-26  Bruno Haible  <bruno@clisp.org>
+
+       stdlib tests: Avoid code duplication.
+       * modules/stdlib-tests (Files): Add tests/test-sys_wait.h.
+       * modules/sys_wait-tests (Files): Likewise.
+       * tests/test-sys_wait.h: New file, extracted from tests/test-stdlib.c.
+       * tests/test-stdlib.c: Include test-sys_wait.h.
+       (main): Invoke test_sys_wait_macros.
+       * tests/test-sys_wait.c: Include test-sys_wait.h.
+       (main): Invoke test_sys_wait_macros.
+
+2010-09-25  Simon Josefsson  <simon@josefsson.org>
+
+       * modules/getaddrinfo (Depends-on): Depend on the sockets module.
+       * lib/getaddrinfo.c (use_win32_p): Call gl_sockets_startup to make
+       sure Windows sockets are working before calling getaddrinfo.
+       * tests/test-getaddrinfo.c (main): Don't call WSAStartup here.
+       * doc/gnulib.texi (Windows sockets): Fix typo.
+
+2010-09-25  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'regex-quote'.
+       * modules/regex-quote-tests: New file.
+       * tests/test-regex-quote.c: New file.
+
+       New module 'regex-quote'.
+       * lib/regex-quote.h: New file.
+       * lib/regex-quote.c: New file.
+       * modules/regex-quote: New file.
+       Suggested by Reuben Thomas <rrt@sc3d.org>.
+
+2010-09-24  Bruno Haible  <bruno@clisp.org>
+
+       unistr/u8-strchr: Fix a test failure on i586 glibc systems.
+       * tests/unistr/test-strchr.h (test_strchr): Disable an invalid check.
+
+2010-09-23  Bruno Haible  <bruno@clisp.org>
+
+       setenv: Relax license.
+       * modules/setenv (License): Change to LGPLv2+, with consent by Eric
+       Blake.
+       Requested by Eric Blake.
+
+2010-09-22  Bruno Haible  <bruno@clisp.org>
+
+       termios: Relax license.
+       * modules/termios (License): Change to LGPLv2+.
+       Requested by Eric Blake.
+
+2010-09-22  Bruno Haible  <bruno@clisp.org>
+
+       threadlib: Allow the package to change the default to 'no'.
+       * m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): When
+       gl_THREADLIB_DEFAULT_NO is defined, change the default to 'no'.
+       Reported by Paul Eggert.
+
+2010-09-22  Pádraig Brady  <P@draigbrady.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       Fix endless loop in mbmemcasecoll.
+       * lib/mbmemcasecoll.c (apply_towlower): When mbrtowc returns 0, copy 1
+       byte.
+       * tests/test-mbmemcasecmp.h (test_ascii): Test embedded NULs.
+
+2010-09-22  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'memcoll'.
+       * modules/memcoll-tests: New file.
+       * tests/test-memcoll.c: New file, based on tests/test-memcmp.c.
+
+       memcoll, xmemcoll: Clarify size vs. length.
+       * modules/memcoll.c (memcoll0): Clarify specification.
+       * modules/xmemcoll.c (xmemcoll0): Likewise. Reduce by 1 the lengths
+       passed to collate_error.
+
+2010-09-22  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'memcasecmp'.
+       * modules/memcasecmp-tests: New file.
+       * tests/test-memcasecmp.c: New file, based on tests/test-memcmp.c.
+
+2010-09-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/pthread.in.h: Add split double-inclusion guard, and include
+       system <pthread.h> if there is one.  Use @@-style as in other
+       .in.h files.  Define PTHREAD_COND_INITIALIZER etc. only if system
+       pthread.h doesn't.
+       (pthread_mutexattr_destroy, pthread_mutexattr_init):
+       (pthread_mutexattr_settype, pthread_mutex_trylock):
+       New static inline functions, if there's no system <pthread.h>.
+       (pthread_spinlock_t, pthread_spin_init, pthread_spin_destroy):
+       (pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock):
+       Approximate with mutexes if the system lacks spinlocks, as in
+       MacOS.
+       * m4/pthread.m4 (gl_PTHREAD_CHECK): Require gl_PTHREAD_DEFAULTS.
+       Add gl_CHECK_NEXT_HEADERS for pthread.h, and support the usual
+       @@-style.  Check for spinlocks separately.
+       (gl_PTHREAD_DEFAULTS): New macro.
+       * modules/pthread: Redo to use a more typical style for in.h files.
+
+2010-09-21  Eric Blake  <eblake@redhat.com>
+
+       net_if: enhance tests
+       * tests/test-net_if.c (main): Move signature checks earlier.
+       Print failures to stderr.
+       * doc/posix-functions/if_freenameindex.texi (if_freenameindex):
+       Document the bug that we do not yet fix.
+
+2010-09-21  Reuben Thomas  <rrt@sc3d.org>
+
+       * doc/gnulib.texi (Out of memory handling): Rewrite section to be
+       about gnulib, not GSS.
+
+2010-09-21  Reuben Thomas  <rrt@sc3d.org>
+
+       * build-aux/pmccabe2html: Look for sources in src/ instead of lib/.
+       * build-aux/pmccabe2html: Set cut_dir properly, and add mode line
+       for Emacs.
+       * build-aux/pmccabe2html: Make Makefile.am example code more
+       cut-and-paste friendly.
+
+2010-09-21  Simon Josefsson  <simon@josefsson.org>
+
+       * tests/test-net_if.c: New file.
+       * modules/net_if-tests: New file.
+
+2010-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       pthread: add pthread_spin_destroy
+       * lib/pthread.in.h (pthread_spin_destroy): New function.
+
+2010-09-19  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool: Fix --help output.
+       * gnulib-tool (func_usage): Fix help message.
+       Reported by Reuben Thomas <rrt@sc3d.org>.
+
+2010-09-18  Jim Meyering  <meyering@redhat.com>
+
+       maint.mk: avoid unexpanded \n in two diagnostics
+       * top/maint.mk (sc_prohibit_always_true_header_tests):
+       Don't use a literal \n in a halt=... assignment.  It would not be
+       expanded, and the two \n bytes would appear in the diagnostic output
+       rather than the desired newline.  Use halt=$$(printf ... instead.
+       (sc_vulnerable_makefile_CVE-2009-4029): Likewise.
+
+2010-09-18  Bruno Haible  <bruno@clisp.org>
+
+       netinet_in: Doc tweak.
+       * doc/posix-headers/netinet_in.texi: Mention an affected platform.
+       Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.
+
+2010-09-18  Jim Meyering  <meyering@redhat.com>
+
+       init.sh: correct an outdated comment
+       * tests/init.sh (create_exe_shims_):  s/function/alias/
+
+       init.sh: don't let an ephemeral "*.exe" make us skip all dir entries
+       * tests/init.sh (find_exe_basenames_): Don't give up on a directory if
+       a file named "*.exe" is removed between the glob expansion and the
+       processing of that oddly named file.
+
+2010-09-17  Eric Blake  <eblake@redhat.com>
+
+       mirbsd: add some more support
+       * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): MirBSD is
+       in BSD family.
+       * m4/gc-random.m4 (gl_GC_RANDOM): MirBSD supports same random
+       devices as OpenBSD.
+       * m4/host-os.m4 (mirbsd): Add MirBSD.
+
+       tests: fix unportable assumption on sys/wait.h
+       * tests/test-sys_wait.c (main): Relax test.
+       * tests/test-stdlib.c (main): Likewise.
+
+       init.sh: accomodate directory with no .exes
+       * tests/init.sh: Accomodate directory containing only scripts.
+
+       tests: avoid compiler warning
+       * tests/test-stdlib.c (main): Use the variable.
+
+       fdutimens, fdutimensat: update signature, again
+       * lib/utimens.h (gl_futimens): Delete, and move signature...
+       (fdutimens): ...here.
+       (fdutimensat): Rearrange signature.
+       (lutimensat): Rename variable for clarity.
+       * lib/fdutimensat.c (fdutimensat): Update signature.
+       * lib/utimens.c (fdutimens): Likewise.
+       (gl_futimens): Delete.
+       (utimens, lutimens): Update callers.
+       * lib/futimens.c (futimens): Likewise.
+       * tests/test-fdutimensat.c: Likewise.
+       * tests/test-utimens.c: Likewise.
+       * tests/test-futimens.h: Update comment.
+       * NEWS: Mention this.
+       Suggested by Paul Eggert.
+
+2010-09-17  Bruno Haible  <bruno@clisp.org>
+
+       Take over the maintenance of some older macros from Autoconf.
+       * m4/error.m4 (AC_FUNC_ERROR_AT_LINE): New macro, from GNU Autoconf.
+       * m4/lstat.m4 (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): New macro, from
+       GNU Autoconf.
+       * m4/memcmp.m4 (AC_FUNC_MEMCMP): New macro, from GNU Autoconf.
+       * m4/mktime.m4 (AC_FUNC_MKTIME): Change comment.
+
+2010-09-17  Eric Blake  <eblake@redhat.com>
+
+       fdutimensat: drop atflag validation
+       * lib/fdutimensat.c (fdutimensat): Allow AT_SYMLINK_NOFOLLOW even
+       with valid fd, to close a race scenario where futimens is
+       unsupported and FILE was replaced by a symlink.
+       * tests/test-fdutimensat.c (do_fdutimens, main): Adjust test
+       accordingly.
+       Suggested by Paul Eggert.
+
+2010-09-16  Bruno Haible  <bruno@clisp.org>
+
+       unlockpt: Fix declaration within GNULIB_POSIXCHECK.
+       * lib/stdlib.in.h (unlockpt): Fix warning declaration.
+
+2010-09-16  Bruno Haible  <bruno@clisp.org>
+
+       login_tty: Fix detection of function on FreeBSD, OpenBSD, NetBSD.
+       * m4/pty.m4 (gl_FUNC_LOGIN_TTY): Augment LIBS while checking whether
+       login_tty exists.
+       Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.
+
+2010-09-16  Bruno Haible  <bruno@clisp.org>
+
+       login_tty: Make the replacement code work on BSD systems.
+       * lib/login_tty.c: Include <sys/ioctl.h>.
+       (login_tty): Use ioctl TIOCSCTTY when available.
+       * modules/login_tty (Depends-on): Add sys_ioctl.
+       Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.
+
+2010-09-16  Bruno Haible  <bruno@clisp.org>
+
+       login_tty: Stricter unit test.
+       * modules/login_tty-tests (Depends-on): Add tcgetsid.
+       * tests/test-login_tty.c (main): Also check the results of tcgetpgrp()
+       and tcgetsid() after login_tty.
+       Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.
+
+2010-09-16  Bruno Haible  <bruno@clisp.org>
+
+       New module 'tcgetsid'.
+       * lib/tcgetsid.c: New file.
+       * m4/tcgetsid.m4: New file.
+       * modules/tcgetsid: New file.
+       * modules/termios (Depends-on): Add c++defs, warn-on-use.
+       (Makefile.am): Ensure c++defs.h, warn-on-use.h get included. Substitute
+       GNULIB_TCGETSID, HAVE_TCGETSID.
+       * lib/termios.in.h: Include <sys/types.h>.
+       (tcgetsid): New declaration.
+       * m4/termios_h.m4 (gl_TERMIOS_H): Check whether tcgetsid is declared.
+       (gl_TERMIOS_H_DEFAULTS): Initialize GNULIB_TCGETSID, HAVE_TCGETSID.
+       * doc/posix-functions/tcgetsid.texi: Mention the new module.
+       * tests/test-termios-c++.cc: Check GNULIB_NAMESPACE::tcgetsid.
+
+2010-09-16  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'termios'.
+       * modules/termios-c++-tests: New file.
+       * modules/termios-tests: New file.
+       * tests/test-termios-c++.cc: New file.
+       * tests/test-termios.c: New file.
+
+       New module 'termios'.
+       * modules/termios: New file.
+       * lib/termios.in.h: New file.
+       * m4/termios_h.m4: New file.
+       * doc/posix-headers/termios.texi: Mention the new module.
+
+2010-09-16  Eric Blake  <eblake@redhat.com>
+
+       fdutimensat: add an atflag parameter
+       * lib/fdutimensat.c (fdutimensat): Add new parameter.
+       * lib/utimens.h (fdutimensat): Update prototype.
+       * tests/test-fdutimensat.c: Adjust test to match.
+       * NEWS: Document the change.
+       Suggested by Paul Eggert.
+
+2010-09-16  Bruno Haible  <bruno@clisp.org>
+
+       Fix typos in comments.
+       * lib/striconveh.h: Fix typo in comment.
+       * lib/login_tty.c (login_tty): Likewise.
+
+2010-09-15  Bruno Haible  <bruno@clisp.org>
+
+       stdlib: clarify MirBSD WEXITSTATUS bug
+       * lib/stdlib.in.h: Clarify the MirBSD bug regarding WEXITSTATUS.
+       * doc/posix-headers/stdlib.texi (stdlib.h): Likewise.
+
+2010-09-15  Eric Blake  <eblake@redhat.com>
+
+       stdlib: work around MirBSD WEXITSTATUS bug
+       * lib/stdlib.in.h (includes): Guarantee WEXITSTATUS.
+       * modules/stdlib (Depends-on): Add sys_wait.
+       * tests/test-sys_wait.c (main): Enhance test.
+       * tests/test-stdlib.c (main): Likewise.
+       * doc/posix-headers/stdlib.texi (stdlib.h): Document the bug.
+
+       docs: mention MacOS issue with WEXITSTATUS(constant)
+       * doc/posix-headers/sys_wait.texi (sys/wait.h): Document the
+       issue.
+       * doc/posix-headers/stdlib.texi (stdlib.h): Likewise.
+
+       strnlen: add tests
+       * modules/strnlen-tests: New file.
+       * tests/test-strnlen.c: Likewise.
+
+2010-09-14  Bruno Haible  <bruno@clisp.org>
+
+       unistr/base: Avoid link errors when module 'libunistring' is also used.
+       * lib/unistr.in.h (u8_mbtouc_unsafe, u16_mbtouc_unsafe,
+       u32_mbtouc_unsafe, u8_mbtouc, u16_mbtouc, u32_mbtouc, u8_mbtoucr,
+       u16_mbtoucr, u32_mbtoucr, u8_uctomb_aux, u16_uctomb_aux, u32_uctomb):
+       Declare also when HAVE_LIBUNISTRING is set.
+       Reported by Pádraig Brady <P@draigbrady.com>.
+
+2010-09-14  Eric Blake  <eblake@redhat.com>
+
+       test-rawmemchr: make more robust
+       * modules/rawmemchr-tests (Files): Add zerosize-ptr.h, mmap-anon.m4.
+       (Depends-on, configure.ac): Add needed prerequisites to use it.
+       * modules/memchr-tests (Files, Depends-on, configure.ac):
+       Likewise, to avoid implicit reliance on memchr module prereqs.
+       * tests/test-memchr.c (main): Ensure proper masking.
+       * tests/test-rawmemchr.c (main): Likewise.  Detect oversized
+       reads.
+
+       memchr: detect glibc Alpha bug
+       Avoids http://sourceware.org/bugzilla/show_bug.cgi?id=12019.
+       * m4/memchr.m4 (gl_FUNC_MEMCHR): Detect glibc 2.11.2 failure on
+       Alpha.
+       * doc/posix-functions/memchr.texi (memchr): Tweak wording.
+       * tests/test-memchr.c (main): Enhance test.
+       Reported by Nelson H. F. Beebe.
+
+2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fts, getcwd, glob: audit for dirfd returning -1
+       * lib/fts.c (opendir): Remove #define; no longer used.
+       (opendirat): New arg PDIR_FD.  All callers changed.
+       (fts_build, _opendir2): Use new opendirat to avoid the need for
+       dirfd, or for checking whether dirfd returns a negative value.
+       Don't use opendir; always use openat followed by fdopendir.
+       * lib/getcwd.c (__getcwd): Don't reset fd; fdopendir no longer clobbers
+       it.
+       * lib/glob.c (link_exists_p): Add comment explaining why dirfd never
+       returns -1 here.
+       * modules/fts (Depends-on): Remove dirfd.
+       * modules/getcwd (Depends-on): Likewise.
+
+2010-09-13  Eric Blake  <eblake@redhat.com>
+
+       float: fix broken MirBSD header
+       * m4/float_h.m4 (gl_FLOAT_H): MirBSD copied OpenBSD's bug.
+       * doc/posix-headers/float.texi (float.h): Document it.
+
+2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fts: use O_NOFOLLOW to avoid race condition when opening a directory
+       * lib/fts.c (opendirat): New arg extra_flags.
+       (__opendir2): Use it to avoid following symlinks when opening
+       a directory, if symlinks are not supposed to be followed.  See
+       <http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00213.html>.
+
+       fdopendir: preserve argument fd before returning
+       * lib/fdopendir.c: Adjust comments to say POSIX, not Solaris.
+       (fdopendir_with_dup, fd_clone_opendir): New static functions.
+       (fdopendir): Use them, arranging for FD to be open to the same
+       directory that it was when it started.  (It might be temporarily
+       closed while fdopendir is running, so this not thread- or
+       signal-safe.)  Be careful to do the right thing even when file
+       descriptors are scarce and dup fails with errno == EMFILE.  See
+       <http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00208.html>.
+
+2010-09-10  Paolo Bonzini  <bonzini@gnu.org>
+
+       regex: Pass the system regex if its only problem is 32-bit regoff_t.
+       * NEWS: Document change.
+       * m4/regex.m4: Disable test for regoff_t size.
+
+2010-09-13  Jim Meyering  <meyering@redhat.com>
+
+       fts: don't operate on an invalid file descriptor after failed dup
+       * lib/fts.c (fts_build): Don't call set_cloexec_flag on a
+       negative file descriptor.
+
+2010-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       savedir: add streamsavedir, deprecate fdsavedir
+       * NEWS: Mention deprecation of fdsavedir.
+       * lib/savedir.c (streamsavedir): New extern function, whose name
+       ends in "savedir" to be consistent with the others.  This differs
+       from savedirstream in that it doesn't close its argument.  The
+       next version of GNU tar will use this instead of fdsavedir, to
+       avoid some race conditions and conserve file descriptors.
+       (savedirstream): Reimplement as a wrapper around streamsavedir.
+       (fdsavedir): Add a comment deprecating this function.  As far as
+       I know, only GNU tar used it, and GNU tar doesn't need it any more.
+       * lib/savedir.h (streamsavedir): New decl.
+       (fdsavedir): Add a comment deprecating this.
+
+2010-09-10  Bruno Haible  <bruno@clisp.org>
+
+       langinfo: Fix last commit.
+       * m4/langinfo_h.m4 (gl_LANGINFO_H): Initialize
+       HAVE_LANGINFO_T_FMT_AMPM, HAVE_LANGINFO_YESEXPR.
+       Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+2010-09-10  Bruno Haible  <bruno@clisp.org>
+
+       relocatable-prog-wrapper: Fix compilation failure due to O_EXEC.
+       * lib/progreloc.c (O_EXEC): Define fallback.
+
 2010-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 
        fcntl-h: define O_CLOEXEC and O_EXEC if not defined; use new defines