New module 'mbsspn'.
[gnulib.git] / ChangeLog
index 1f7c682..d5a390e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,871 @@
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       New module mbsspn.
+       * modules/mbsspn: New file.
+       * lib/mbsspn.c: New file.
+       * lib/string_.h (strspn): Add a conditional link warning.
+       (mbsspn): New declaration.
+       * m4/mbsspn.m4: New file.
+       * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
+       GNULIB_MBSCSPN.
+       * modules/string (string.h): Also substitute GNULIB_MBSSPN.
+       * MODULES.html.sh (Internationalization functions): Add mbsspn.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       New module mbspbrk.
+       * modules/mbspbrk: New file.
+       * lib/mbspbrk.c: New file.
+       * lib/string_.h (strpbrk): Add a conditional link warning.
+       (mbspbrk): New declaration.
+       * m4/mbspbrk.m4: New file.
+       * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
+       GNULIB_MBSPBRK.
+       * modules/string (string.h): Also substitute GNULIB_MBSPBRK.
+       * MODULES.html.sh (Internationalization functions): Add mbspbrk.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       New module mbscspn.
+       * modules/mbscspn: New file.
+       * lib/mbscspn.c: New file.
+       * lib/string_.h (strcspn): Add a conditional link warning.
+       (mbscspn): New declaration.
+       * m4/mbscspn.m4: New file.
+       * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
+       GNULIB_MBSCSPN.
+       * modules/string (string.h): Also substitute GNULIB_MBSCSPN.
+       * MODULES.html.sh (Internationalization functions): Add mbscspn.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       New module mbscasestr, reduced goal of strcasestr.
+       * modules/mbscasestr: New file.
+       * lib/mbscasestr.c: New file, copied from lib/strcasestr.c.
+       (mbscasestr): Renamed from strcasestr.
+       * lib/strcasestr.c: Don't include mbuiter.h.
+       (strcasestr): Remove support for multibyte locales.
+       * lib/string_.h (strcasestr): Don`t rename. Declare only if missing.
+       Change the conditional link warning.
+       (mbscasestr): New declaration.
+       * m4/mbscasestr.m4: New file.
+       * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Enable the replacement only if
+       the system does not have strcasestr. Set HAVE_STRCASESTR instead of
+       REPLACE_STRCASESTR.
+       (gl_PREREQ_STRCASESTR): Don't require gl_FUNC_MBRTOWC.
+       * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
+       HAVE_STRCASESTR instead of REPLACE_STRCASESTR.
+       (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSCASESTR.
+       * modules/string (string.h): Also substitute GNULIB_MBSCASESTR.
+       Substitute HAVE_STRCASESTR instead of REPLACE_STRCASESTR.
+       * modules/strcasestr (Files): Remove m4/mbrtowc.m4.
+       (Depends-on): Remove mbuiter.
+       * MODULES.html.sh (Internationalization functions): Add mbscasestr.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       Simplify handling of strncasecmp.
+       * lib/string_.h (strncasecmp): Remove test for GNULIB_STRCASE. Change
+       the conditional link warning.
+       * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
+       HAVE_STRCASECMP, not REPLACE_STRCASECMP.
+       (gl_STRING_MODULE_INDICATOR_DEFAULTS): Don't initialize GNULIB_STRCASE.
+       * modules/strcase (configure.ac): Don't invoke
+       gl_STRING_MODULE_INDICATOR.
+       * modules/string (string.h): Don't substitute GNULIB_STRCASE.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       New module mbscasecmp, reduced goal of strcasecmp.
+       * modules/mbscasecmp: New file.
+       * lib/mbscasecmp.c: New file, copied from lib/strcasecmp.c.
+       (mbscasecmp): Renamed from strcasecmp.
+       * lib/strcasecmp.c: Don't include mbuiter.h.
+       (strcasecmp): Remove support for multibyte locales.
+       * lib/string_.h (strcasecmp): Don`t rename. Declare only if missing.
+       Change the conditional link warning.
+       (mbscasecmp): New declaration.
+       * m4/mbscasecmp.m4: New file.
+       * m4/strcase.m4 (gl_FUNC_STRCASECMP): Enable the replacement only if
+       the system lacks strcasecmp. Set HAVE_STRCASECMP instead of
+       REPLACE_STRCASECMP.
+       (gl_PREREQ_STRCASECMP): Don't require gl_FUNC_MBRTOWC.
+       * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
+       GNULIB_MBSCASECMP.
+       * modules/string (string.h): Also substitute GNULIB_MBSCASECMP.
+       Substitute HAVE_STRCASECMP instead of REPLACE_STRCASECMP.
+       * modules/strcase (Files): Remove m4/mbrtowc.m4.
+       (Depends-on): Remove mbuiter.
+       * MODULES.html.sh (Internationalization functions): Add mbscasecmp.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       New module mbsstr. Remove module strstr.
+       * modules/mbsstr: New file.
+       * modules/strstr: Remove file.
+       * lib/mbsstr.c: Renamed from lib/strstr.c.
+       (mbsstr): Renamed from strstr.
+       * lib/string_.h (strstr): Remove declaration. Change the conditional
+       link warning.
+       (mbsstr): New declaration.
+       * m4/mbsstr.m4: New file.
+       * m4/strstr.m4: Remove file.
+       * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Don't initialize
+       REPLACE_STRSTR.
+       (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSSTR.
+       Don't initialize GNULIB_STRSTR.
+       * modules/string (string.h): Also substitute GNULIB_MBSSTR. Don't
+       substitute GNULIB_STRSTR and REPLACE_STRSTR.
+       * MODULES.html.sh (Internationalization functions): Add mbsstr.
+       (Support for systems lacking ANSI C 89): Remove strstr.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       New module mbsrchr.
+       * modules/mbsrchr: New file.
+       * lib/mbsrchr.c: New file.
+       * lib/string_.h (strrchr): Add a conditional link warning.
+       (mbsrchr): New declaration.
+       * m4/mbsrchr.m4: New file.
+       * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
+       GNULIB_MBSRCHR.
+       * modules/string (string.h): Also substitute GNULIB_MBSRCHR.
+       * MODULES.html.sh (Internationalization functions): Add mbsrchr.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       New module mbschr.
+       * modules/mbschr: New file.
+       * lib/mbschr.c: New file.
+       * lib/string_.h (strchr): Add a conditional link warning.
+       (mbschr): New declaration.
+       * m4/mbschr.m4: New file.
+       * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
+       GNULIB_MBSCHR.
+       * modules/string (string.h): Also substitute GNULIB_MBSCHR.
+       * MODULES.html.sh (Internationalization functions): Add mbschr.
+
+2007-02-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/stdbool_.h: Mention that bool bit-fields aren't supported.
+
+       * modules/stdarg (configure.ac-early): Require AC_PROG_CC_STDC.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       New module description section 'configure.ac-early'.
+       * gnulib-tool (sed_extract_prog): Recognize configure.ac-early.
+       (func_get_autoconf_early_snippet): New function.
+       (func_import, func_create_testdir): Use it. Remove special cases for
+       modules 'extensions' and 'lock'.
+       * modules/extensions (configure.ac-early): Require
+       gl_USE_SYSTEM_EXTENSIONS.
+       * modules/lock (configure.ac-early): Require gl_LOCK_EARLY.
+
+2007-02-04  Bruno Haible  <bruno@clisp.org>
+
+       Make use of gcj-4.3's -fsource and -ftarget option.
+       * m4/javacomp.m4 (gt_JAVACOMP): Test whether gcj is in version >= 4.3,
+       and if so try the options -fsource and -ftarget.
+       * lib/javacomp.c (compile_using_gcj): Add fsource_option,
+       source_version, ftarget_option, target_version arguments.
+       (is_envjavac_gcj43, is_envjavac_gcj43_usable): New functions.
+       (is_envjavac_oldgcj_14_14_usable): Renamed from
+       is_envjavac_gcj_14_14_usable.
+       (is_envjavac_oldgcj_14_13_usable): Renamed from
+       is_envjavac_gcj_14_13_usable.
+       (is_gcj_present): Update.
+       (is_gcj_43, is_gcj43_usable): New functions.
+       (is_oldgcj_14_14_usable): Renamed from is_gcj_14_14_usable. Update.
+       (is_oldgcj_14_13_usable): Renamed from is_gcj_14_13_usable. Update.
+       (compile_java_class): Test whether gcj is in version >= 4.3, and if so
+       try the options -fsource and -ftarget.
+
+2007-02-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/xalloc.h (x2nrealloc): Fix an unlikely bug in the overflow
+       checking code.  Set N = ceil (1.5 * N) rather than to a slightly
+       larger value.
+
+2007-02-03  Jim Meyering  <jim@meyering.net>
+
+        Give tools a better chance to allocate space for very large buffers.
+       * lib/xalloc.h (x2nrealloc): Use 3/2, not 2, as buffer size factor.
+
+       Make pwd and readlink work also when run with an unreadable parent dir
+       on systems with openat support.
+       * lib/getcwd.c (__getcwd) [HAVE_PARTLY_WORKING_GETCWD]: Use the system
+       provided getcwd function, even when we have openat support.
+       Reported by Dmitry V. Levin in <http://bugzilla.redhat.com/227168>.
+
+2007-02-02  Bruno Haible  <bruno@clisp.org>
+
+       * lib/string_.h (memmem, mempcpy, memrchr, stpcpy, stpncpy, strchrnul,
+       strdup, strndup, strnlen, strpbrk, strsep, strtok_r): Provoke a link
+       error only if GNULIB_POSIXCHECK is defined. Needed to avoid artificial
+       portability problems if one of these functions is only used on specific
+       platforms.
+       Reported by Paul Eggert.
+
+2007-02-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Avoid mempcpy in the regex code, as the string.h mempcpy stuff
+       is causing more trouble than it's curing.
+       * lib/regex_internal.h (__mempcpy): Remove.
+       * lib/regcomp.c (regerror): Rewrite to avoid the need for mempcpy
+       (and make the code a tad smaller to boot).
+       * m4/regex.m4 (gl_PREREQ_REGEX): Don't check for mempcpy.
+
+2007-02-02  Jim Meyering  <jim@meyering.net>
+
+       * modules/arpa_inet: Put AC_PROG_MKDIR_P in the configure.ac:
+       section, not in the Makefile.am: one.
+
+2007-02-02  Eric Blake  <ebb9@byu.net>
+
+       * lib/strchrnul.c: Always include config.h first.
+
+       * modules/mountlist (Depends-on): Revert 2007-01-31 change,
+       gnulib strstr is not necessary here.
+
+2007-02-02  Simon Josefsson  <simon@josefsson.org>
+
+       * m4/socklen.m4: Fix typo.
+
+2007-02-02  Eric Blake  <ebb9@byu.net>
+
+       * modules/arpa_inet (Makefile.am): Use MKDIR_P to avoid races.
+       * modules/netinet_in (Makefile.am): Likewise.
+
+2007-02-01  Bruno Haible  <bruno@clisp.org>
+
+       * lib/string_.h (GL_LINK_WARNING): New macro.
+       (strcasecmp, strstr, strcasestr): If provided by the system,
+       conditionally define as a macro that leads to a warning instead of to
+       an error.
+       (strncasecmp): Conditionally define as a macro that leads to a warning.
+
+2007-02-01  Jim Meyering  <jim@meyering.net>
+
+       Give tools a better chance to allocate space for very large buffers.
+       * lib/xalloc.h (x2nrealloc): Use 3/2, not 2, as buffer size factor.
+
+2007-02-01  Karl Berry  <karl@gnu.org>
+
+       * config/srclist.txt (strtok_r.c): lose sync, no more strtok_r.h.
+
+2007-02-01  Bruno Haible  <bruno@clisp.org>
+
+       * MODULES.html.sh (Unicode string functions): Update after 2007-01-27
+       renamings.
+
+2007-02-01  Eric Blake  <ebb9@byu.net>
+
+       * modules/regex (Depends-on): Revert dependence on mempcpy.
+       * lib/regex_internal.h [! _LIBC && !__mempcpy]: Undo string
+       module's definition of mempcpy.
+       Reported by Paul Eggert.
+
+2007-02-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/string_.h: If the gnulib module XYZ is not present, undefine
+       the symbol XYZ before redefining it.  This fixes a problem with
+       programs that don't use XYZ, when compiled on systems that define
+       XYZ to something else.
+
+2007-01-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/mkdir-p.c (make_dir_parents): Close a race condition that
+       occurs when "mkdir -m foo" creates a setgid directory that is (1)
+       writeable to group or other and (2) is intended to have a special
+       mode bit that is set or cleared.  In such a case, the directory
+       should be neither group- nor other-writeable until the special
+       mode bits are right.
+
+2007-01-31  Eric Blake  <ebb9@byu.net>
+
+       * modules/mountlist (Depends-on): Add strstr.
+
+       * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Correct m4 usage
+       bug.
+       * modules/string (Makefile.am): Remove redundant replacement.
+       * modules/regex (Depends-on): Add mempcpy.
+
+2007-01-31  Bruno Haible  <bruno@clisp.org>
+
+       New module description field 'Link'.
+       * gnulib-tool (func_usage): Document --extract-link-directive.
+       (sed_extract_prog): Recognize 'Link' directive.
+       (func_get_link_directive): New function.
+       (func_import): Show summary of link directives.
+       Handle --extract-link-directive option.
+       * modules/acl (Link): New section.
+       * modules/clock-time (Link): New section.
+       * modules/euidaccess (Link): New section.
+       * modules/gettext (Link): New section.
+       * modules/iconv (Link): New section.
+       * modules/lock (Link): New section.
+       * modules/nanosleep (Link): New section.
+       * modules/readline (Link): New section.
+
+2007-01-27  Bruno Haible  <bruno@clisp.org>
+
+       Enforce the use of gnulib modules for unportable <string.h> functions.
+       * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): New macro.
+       (gl_STRING_MODULE_INDICATOR_DEFAULTS): New macro.
+       (gl_HEADER_STRING_H_BODY): Require it.
+       * lib/string_.h: If the gnulib module XYZ is not present, redefine
+       the symbol XYZ to one that gives a link error.
+       * modules/string (Makefile.am): Also substitute the GNULIB_* variables.
+       * modules/memmem (configure.ac): Invoke gl_STRING_MODULE_INDICATOR.
+       * modules/mempcpy (configure.ac): Likewise.
+       * modules/memrchr (configure.ac): Likewise.
+       * modules/stpcpy (configure.ac): Likewise.
+       * modules/stpncpy (configure.ac): Likewise.
+       * modules/strcase (configure.ac): Likewise.
+       * modules/strcasestr (configure.ac): Likewise.
+       * modules/strchrnul (configure.ac): Likewise.
+       * modules/strdup (configure.ac): Likewise.
+       * modules/strndup (configure.ac): Likewise.
+       * modules/strnlen (configure.ac): Likewise.
+       * modules/strpbrk (configure.ac): Likewise.
+       * modules/strsep (configure.ac): Likewise.
+       * modules/strstr (configure.ac): Likewise.
+       * modules/strtok_r (configure.ac): Likewise.
+
+2007-01-31  Jean-Louis Martineau  <martineau@zmanda.com>  (tiny change)
+
+       * lib/gai_strerror.c (values): Add EAI_OVERFLOW.
+
+2007-01-30  Jim Meyering  <jim@meyering.net>
+
+       * lib/mpsort.c (mpsort): Remove spurious "return" in void function.
+
+2007-01-29  Bruno Haible  <bruno@clisp.org>
+
+       * lib/allocsa.h: Use '#if HAVE_*' instead of '#ifdef HAVE_*'.
+       * lib/execute.c: Likewise.
+       * lib/pipe.c: Likewise.
+       * lib/printf-args.h: Likewise.
+       * lib/printf-args.c: Likewise.
+       * lib/printf-parse.c: Likewise.
+       * lib/vasnprintf.c: Likewise.
+
+2007-01-29  Eric Blake  <ebb9@byu.net>
+
+       * lib/memrchr.c: Assume <string.h> unconditionally, to pull in
+       declaration.
+
+2007-01-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/strptime.h (strptime): Use 'restrict' for args where
+       POSIX requires this.
+       * lib/strptime.c (strptime): Likewise.
+       Change license notice from LGPL to GPL, since gnulib-tool will
+       change this as needed.
+       Include <config.h> if _LIBC is not defined, not if HAVE_CONFIG_H is
+       defined.
+       Include "strptime.h" first, to check interface.
+       Do not #undef _LIBC and _NL_CURRENT.
+       Do not include <stdlib.h>; no longer needed.
+       Include "time_r.h" and declare ptime_locale_status
+       only if _LIBC is not defined.
+       (__P): Remove unused macro.
+       (match_string): Bring back glibc version, but use it only if _LIBC
+       is defined.
+       (__strptime_internal): Compile tm_gmtoff code if _LIBC is defined, too.
+       Remove unnecessary assertion and abort() call.
+       Use #ifdef _NL_CURRENT rather than #if 0, for benefit of glibc.
+       * m4/strptime.m4: Fix serial number comment.
+       (gl_FUNC_STRPTIME): Require AC_C_RESTRICT, gl_TM_GMTOFF.
+       * modules/strptime (Files): Add m4/tm_gmtoff.m4.
+       (Depends-on): Add time_r.
+
+2007-01-29  Bruno Haible  <bruno@clisp.org>
+
+       * MODULES.html.sh (Support for systems lacking POSIX:2001): Add
+       strptime.
+       * modules/strptime (Depends-on): Add stdbool.
+       * lib/strptime.h: Include <time.h> always. Add comments.
+
+2007-01-29  Yoann Vandoorselaere  <yoann@prelude-ids.org>
+
+       * modules/strptime: New file.
+       * lib/strptime.h: New file.
+       * lib/strptime.c: New file.
+       * m4/strptime.m4: New file.
+
+2007-01-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * MODULES.html.sh: New module mpsort.
+       * lib/mpsort.c, lib/mpsort.h, m4/mpsort.m4, modules/mpsort: New files.
+
+       * lib/regex.h (_Restrict_): Renamed from __restrict, to avoid
+       a circularity problem with HP-UX ia64 reported by Bob Proulx in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2007-01/msg00394.html>.
+       All uses changed.
+       (_Restrict_arr_): Renamed from __restrict_arr, for similar reasons.
+       All uses changed.
+       * lib/regcomp.c, lib/regexec.c: Change all uses from __restrict
+       to _Restrict_.
+       * lib/regexec.c (regexec): Declare pmatch with _Restrict_arr_, so that
+       the parameter matches the prototype.
+
+2007-01-28  Jim Meyering  <jim@meyering.net>
+
+       * modules/sys_time (Makefile.am) [MOSTLYCLEANFILES]: Do use
+       sys/time.h here, reverting that part of the previous patch:
+       <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/8959>.
+
+2007-01-28  Bruno Haible  <bruno@clisp.org>
+
+       * modules/sys_time (Makefile.am): Build sys/time.h only when it's the
+       value of $(SYS_TIME_H).
+       [MOSTLYCLEANFILES]: Now that sys/time.h is created only when needed,
+       remove it conditionally, too. [added by Jim Meyering]
+       * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Set SYS_TIME_H.
+       * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY):
+       (gl_FUNC_GETTIMEOFDAY_CLOBBER): Set SYS_TIME_H when setting
+       GETTIMEOFDAY_REPLACEMENT to 1.
+
+2007-01-28  Bruno Haible  <bruno@clisp.org>
+
+       * m4/unistd_h.m4 (gl_HEADER_UNISTD_DEFAULTS): New macro.
+       (gl_HEADER_UNISTD): Require it. Don't set UNISTD_H to empty here.
+       * m4/fchdir.m4 (gl_FUNC_FCHDIR): Require gl_HEADER_UNISTD_DEFAULTS.
+       Set UNISTD_H instead of UNISTD_H2.
+       * modules/fchdir (BUILT_SOURCES): Drop $(UNISTD_H2).
+
+2007-01-28  Bruno Haible  <bruno@clisp.org>
+
+       * modules/mbchar (Makefile.am): Add mbchar.c to lib_SOURCES.
+       * m4/mbchar.m4 (gl_MBCHAR): Remove AC_LIBOBJ invocation.
+
+2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * gnulib-tool (func_emit_lib_Makefile_am, func_add_or_update)
+       (func_create_testdir): Ensure C locale for `grep' and `tr'
+       character ranges.
+       (func_create_megatestdir): Avoid one `grep'.  Fix bug in
+       ACLOCAL_AMFLAGS parsing state machine.
+
+2007-01-27  Bruno Haible  <bruno@clisp.org>
+
+       * modules/unistr/base: Update.
+
+2007-01-27  Bruno Haible  <bruno@clisp.org>
+
+       Rename u32-mbtouc -> u32-mbtouc-unsafe, u32-mbtouc-safe -> u32-mbtouc,
+       u32_mbtouc -> u32_mbtouc_unsafe, u32_mbtouc_safe -> u32_mbtouc.
+       * modules/unistr/u32-mbtouc-unsafe: Renamed from
+       modules/unistr/u32-mbtouc.
+       * lib/unistr/u32-mbtouc-unsafe.c: Renamed from lib/unistr/u32-mbtouc.c.
+       * lib/unistr.h: Update.
+       * lib/linebreak.c: Update.
+       * modules/unistr/u32-mbtouc: Renamed from
+       modules/unistr/u32-mbtouc-safe.
+       * lib/unistr/u32-mbtouc.c: Renamed from lib/unistr/u32-mbtouc-safe.c.
+       * lib/unistr.h: Update.
+       * lib/unistr/u32-to-u8.c: Update.
+       * lib/unistr/u32-to-u16.c: Update.
+
+2007-01-27  Bruno Haible  <bruno@clisp.org>
+
+       Rename utf16-ucs4 -> utf16-ucs4-unsafe, utf16-ucs4-safe -> utf16-ucs4,
+       u16_mbtouc -> u16_mbtouc_unsafe, u16_mbtouc_safe -> u16_mbtouc.
+       * modules/utf16-ucs4-unsafe: Renamed from modules/utf16-ucs4.
+       * lib/utf16-ucs4-unsafe.h: Renamed from lib/utf16-ucs4.h.
+       * lib/unistr/utf16-ucs4-unsafe.c: Renamed from lib/unistr/utf16-ucs4.c.
+       * modules/unistr/u16-mbtouc-unsafe: Renamed from
+       modules/unistr/u16-mbtouc.
+       * lib/unistr/u16-mbtouc-unsafe.c: Renamed from lib/unistr/u16-mbtouc.c.
+       * lib/unistr.h: Update.
+       * lib/linebreak.c: Update.
+       * modules/linebreak: Update.
+       * modules/utf16-ucs4: Renamed from modules/utf16-ucs4-safe.
+       * lib/utf16-ucs4.h: Renamed from lib/utf16-ucs4-safe.h.
+       * lib/unistr/utf16-ucs4.c: Renamed from lib/unistr/utf16-ucs4-safe.c.
+       * modules/unistr/u16-mbtouc: Renamed from
+       modules/unistr/u16-mbtouc-safe.
+       * lib/unistr/u16-mbtouc.c: Renamed from lib/unistr/u16-mbtouc-safe.c.
+       * lib/unistr.h: Update.
+       * lib/unistr/u16-to-u8.c: Update.
+       * modules/unistr/u16-to-u8: Update.
+       * lib/unistr/u16-to-u32.c: Update.
+       * modules/unistr/u16-to-u32: Update.
+
+2007-01-27  Bruno Haible  <bruno@clisp.org>
+
+       Rename utf8-ucs4 -> utf8-ucs4-unsafe, utf8-ucs4-safe -> utf8-ucs4,
+       u8_mbtouc -> u8_mbtouc_unsafe, u8_mbtouc_safe -> u8_mbtouc.
+       * modules/utf8-ucs4-unsafe: Renamed from modules/utf8-ucs4.
+       * lib/utf8-ucs4-unsafe.h: Renamed from lib/utf8-ucs4.h.
+       * lib/unistr/utf8-ucs4-unsafe.c: Renamed from lib/unistr/utf8-ucs4.c.
+       * modules/unistr/u8-mbtouc-unsafe: Renamed from
+       modules/unistr/u8-mbtouc.
+       * lib/unistr/u8-mbtouc-unsafe.c: Renamed from lib/unistr/u8-mbtouc.c.
+       * lib/unistr.h: Update.
+       * lib/striconveh.c: Update.
+       * modules/striconveh: Update.
+       * lib/linebreak.c: Update.
+       * modules/linebreak: Update.
+       * modules/utf8-ucs4: Renamed from modules/utf8-ucs4-safe.
+       * lib/utf8-ucs4.h: Renamed from lib/utf8-ucs4-safe.h.
+       * lib/unistr/utf8-ucs4.c: Renamed from lib/unistr/utf8-ucs4-safe.c.
+       * modules/unistr/u8-mbtouc: Renamed from modules/unistr/u8-mbtouc-safe.
+       * lib/unistr/u8-mbtouc.c: Renamed from lib/unistr/u8-mbtouc-safe.c.
+       * lib/unistr.h: Update.
+       * lib/striconveh.c: Update.
+       * modules/striconveh: Update.
+       * lib/unistr/u8-to-u16.c: Update.
+       * modules/unistr/u8-to-u16: Update.
+       * lib/unistr/u8-to-u32.c: Update.
+       * modules/unistr/u8-to-u32: Update.
+
+2007-01-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Sync from Libtool.
+       * lib/argz.c: Do not include strings.h nor memory.h, include
+       string.h unconditionally.  Patch by Simon Josefsson.
+
+2007-01-27  Bruno Haible  <bruno@clisp.org>
+
+       * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): New macro, extracted
+       from gl_HEADER_STRING_H_BODY.
+       (gl_HEADER_STRING_H_BODY): Require it.
+       * m4/memmem.m4 (gl_FUNC_MEMMEM): Require gl_HEADER_STRING_H_DEFAULTS.
+       * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Likewise.
+       * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Likewise.
+       * m4/stpcpy.m4 (gl_FUNC_STPCPY): Likewise.
+       * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
+       * m4/strcase.m4 (gl_FUNC_STRCASECMP, gl_FUNC_STRNCASECMP): Likewise.
+       * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
+       * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Likewise.
+       * m4/strdup.m4 (gl_FUNC_STRDUP): Likewise.
+       * m4/strndup.m4 (gl_FUNC_STRNDUP): Likewise.
+       * m4/strnlen.m4 (gl_FUNC_STRNLEN): Likewise.
+       * m4/strpbrk.m4 (gl_FUNC_STRPBRK): Likewise.
+       * m4/strsep.m4 (gl_FUNC_STRSEP): Likewise.
+       * m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
+       * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Likewise.
+
+2007-01-27  Bruno Haible  <bruno@clisp.org>
+
+       * gnulib-tool (func_emit_lib_Makefile_am): If $for_test is true, turn
+       check_PROGRAMS into noinst_PROGRAMS.
+       (func_emit_tests_Makefile_am): Likewise. Also don't initialize
+       check_PROGRAMS in this case.
+       (func_import): Set for_test to false.
+       (func_create_testdir): Set for_test to true.
+
+2007-01-27  Yoann Vandoorselaere <yoann.v@prelude-ids.com>
+           Bruno Haible  <bruno@clisp.org>
+
+       * modules/strcasestr (Files): Remove lib/strcasestr.h.
+       (Depends-on): Add string.
+       (Includes): Use <string.h> instead of strcasestr.h.
+       * modules/string (Makefile.am): Also substitute the value of
+       REPLACE_STRCASESTR.
+       * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Don't define strcasestr here;
+       assume strcasestr is declared in <string.h> not <strings.h>. Also
+       set REPLACE_STRCASESTR.
+       * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Provide a default value for
+       REPLACE_STRCASESTR.
+       * lib/strcasestr.h: Remove file.
+       * lib/strcasestr.c: Include <string.h> instead of strcasestr.h.
+       * lib/string_.h (strcasestr): New declaration.
+
+2007-01-27  Bruno Haible  <bruno@clisp.org>
+
+       * lib/string_.h: Use 'extern'.
+
+2007-01-27  Jim Meyering  <jim@meyering.net>
+
+       * lib/regex_internal.c (re_string_reconstruct): Remove declaration
+       of set-but-not-used local, "q".
+
+       * lib/mempcpy.c: Include <config.h> before <string.h>.
+       This fixes a compilation error on HP-UX, due to the system's
+       "restrict"-using mempcpy prototype.
+
+2007-01-26  Bruno Haible  <bruno@clisp.org>
+
+       Small optimization.
+       * lib/javacomp.c: Include c-strstr.h.
+        (is_envjavac_gcj): Use c_strstr instead of strstr.
+       * modules/javacomp (Depends-on): Add c-strstr, remove strstr.
+
+2007-01-26  Bruno Haible  <bruno@clisp.org>
+
+       * MODULES.html.sh (Unicode string functions): Add the new modules.
+
+       * modules/uniconv/u32-strconv-to-locale: New file.
+       * lib/uniconv/u32-strconv-to-locale.c: New file.
+
+       * modules/uniconv/u16-strconv-to-locale: New file.
+       * lib/uniconv/u16-strconv-to-locale.c: New file.
+
+       * modules/uniconv/u8-strconv-to-locale: New file.
+       * lib/uniconv/u8-strconv-to-locale.c: New file.
+
+       * modules/uniconv/u32-strconv-from-locale: New file.
+       * lib/uniconv/u32-strconv-from-locale.c: New file.
+
+       * modules/uniconv/u16-strconv-from-locale: New file.
+       * lib/uniconv/u16-strconv-from-locale.c: New file.
+
+       * modules/uniconv/u8-strconv-from-locale: New file.
+       * lib/uniconv/u8-strconv-from-locale.c: New file.
+
+       * modules/uniconv/u32-strconv-to-enc: New file.
+       * lib/uniconv/u32-strconv-to-enc.c: New file.
+       * modules/uniconv/u32-strconv-to-enc-tests: New file.
+       * tests/uniconv/test-u32-strconv-to-enc.c: New file.
+
+       * modules/uniconv/u16-strconv-to-enc: New file.
+       * lib/uniconv/u16-strconv-to-enc.c: New file.
+       * lib/uniconv/u-strconv-to-enc.h: New file.
+       * modules/uniconv/u16-strconv-to-enc-tests: New file.
+       * tests/uniconv/test-u16-strconv-to-enc.c: New file.
+
+       * modules/uniconv/u8-strconv-to-enc: New file.
+       * lib/uniconv/u8-strconv-to-enc.c: New file.
+       * modules/uniconv/u8-strconv-to-enc-tests: New file.
+       * tests/uniconv/test-u8-strconv-to-enc.c: New file.
+
+       * modules/uniconv/u32-strconv-from-enc: New file.
+       * lib/uniconv/u32-strconv-from-enc.c: New file.
+       * modules/uniconv/u32-strconv-from-enc-tests: New file.
+       * tests/uniconv/test-u32-strconv-from-enc.c: New file.
+
+       * modules/uniconv/u16-strconv-from-enc: New file.
+       * lib/uniconv/u16-strconv-from-enc.c: New file.
+       * modules/uniconv/u16-strconv-from-enc-tests: New file.
+       * tests/uniconv/test-u16-strconv-from-enc.c: New file.
+
+       * modules/uniconv/u8-strconv-from-enc: New file.
+       * lib/uniconv/u8-strconv-from-enc.c: New file.
+       * lib/uniconv/u-strconv-from-enc.h: New file.
+       * modules/uniconv/u8-strconv-from-enc-tests: New file.
+       * tests/uniconv/test-u8-strconv-from-enc.c: New file.
+
+       * modules/uniconv/u32-conv-from-enc: New file.
+       * lib/uniconv/u32-conv-from-enc.c: New file.
+       * modules/uniconv/u32-conv-from-enc-tests: New file.
+       * tests/uniconv/test-u32-conv-from-enc.c: New file.
+
+       * modules/uniconv/u16-conv-from-enc: New file.
+       * lib/uniconv/u16-conv-from-enc.c: New file.
+       * lib/uniconv/u-conv-from-enc.h: New file.
+       * modules/uniconv/u16-conv-from-enc-tests: New file.
+       * tests/uniconv/test-u16-conv-from-enc.c: New file.
+
+       * modules/uniconv/u8-conv-from-enc: New file.
+       * lib/uniconv/u8-conv-from-enc.c: New file.
+       * modules/uniconv/u8-conv-from-enc-tests: New file.
+       * tests/uniconv/test-u8-conv-from-enc.c: New file.
+
+       * modules/uniconv/base: New file.
+       * lib/uniconv.h: New file.
+
+2007-01-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/gnulib-tool.texi (Initial import): Update to match current
+       behavior with strdup module.
+       * lib/.cppi-disable: Remove strcase.h, strdup.h, strndup.h, strnlen.h.
+       * lib/memmem.h: Remove; all uses removed.  This is now done
+       by <string.h>.
+       * lib/mempcpy.h: Likewise.
+       * lib/memrchr.h: Likewise.
+       * lib/stpcpy.h: Likewise.
+       * lib/stpncpy.h: Likewise.
+       * lib/strcase.h: Likewise.
+       * lib/strchrnul.h: Likewise.
+       * lib/strdup.h: Likewise.
+       * lib/strndup.h: Likewise.
+       * lib/strnlen.h: Likewise.
+       * lib/strpbrk.h: Likewise.
+       * lib/strsep.h: Likewise.
+       * lib/strstr.h: Likewise.
+       * lib/strtok_r.h: Likewise.
+       * lib/string_.h: New file.
+       * lib/argp-namefrob.h: Don't include no-longer-existent include files.
+       Rely on <string.h> instead.
+       * lib/canon-host.c: Likewise.
+       * lib/chdir-long.c: Likewise.
+       * lib/concatpath.c: Likewise.
+       * lib/exclude.c: Likewise.
+       * lib/fchdir.c: Likewise.
+       * lib/getaddrinfo.c: Likewise.
+       * lib/getcwd.c: Likewise.
+       * lib/getsubopt.c: Likewise.
+       * lib/glob.c: Likewise.
+       * lib/hard-locale.c: Likewise.
+       * lib/iconvme.c: Likewise.
+       * lib/javacomp.c: Likewise.
+       * lib/mempcpy.c: Likewise.
+       * lib/memrchr.c: Likewise.
+       * lib/regex_internal.h: Likewise.
+       * lib/stpncpy.c: Likewise.
+       * lib/strcasecmp.c: Likewise.
+       * lib/strchrnul.c: Likewise.
+       * lib/strdup.c: Likewise.
+       * lib/striconv.c: Likewise.
+       * lib/striconveh.c: Likewise.
+       * lib/striconveha.c: Likewise.
+       * lib/strncasecmp.c: Likewise.
+       * lib/strndup.c: Likewise.
+       * lib/strnlen.c: Likewise.
+       * lib/strsep.c: Likewise.
+       * lib/strstr.c: Likewise.
+       * lib/strtok_r.c: Likewise.
+       * lib/userspec.c: Likewise.
+       * lib/w32spawn.h: Likewise.
+       * lib/xstrndup.c: Likewise.
+       * lib/mountlist.c (strstr): Remove decl.
+       * m4/string_h.m4: New file.
+       * m4/memmem.m4 (gl_FUNC_MEMMEM): Set HAVE_DECL_MEMMEM if necessary.
+       * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Set HAVE_MEMPCPY if necessary.
+       * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Set HAVE_MEMRCHR
+       * m4/stpcpy.m4 (gl_FUNC_STPCPY): Set HAVE_STPCPY if necessary.
+       * m4/stpncpy.m4 (gl_PREREQ_STPNCPY): Set HAVE_STPNCPY if necessary.
+       * m4/strcase.m4 (gl_FUNC_STRCASECMP):
+       Set REPLACE_STRCASECMP if necessary.
+       (gl_FUNC_STRNCASECMP): Set HAVE_DECL_STRNCASECMP if necessary.
+       * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Set HAVE_STRCHRNUL if necessary.
+       * m4/strdup.m4 (gl_FUNC_STRDUP): Set HAVE_DECL_STRDUP if necessary.
+       * m4/strndup.m4 (gl_FUNC_STRNDUP): Set HAVE_DECL_STRNLEN and
+       HAVE_DECL_STRDUP if necessary.
+       (gl_PREREQ_STRNLEN): Don't bother to check for strnlen decl,
+       since gl_FUNC_STRNDUP does that now.
+       * m4/strnlen.m4 (gl_FUNC_STRNLEN): Set HAVE_DECL_STRNLEN if necessary.
+       Check for decl here...
+       (gl_PREREQ_STRNLEN): ... not here.
+       * m4/strpbrk.m4 (gl_FUNC_STRPBRK): Set HAVE_STRPBRK if necessary.
+       * m4/strsep.m4 (gl_FUNC_STRSEP): Set HAVE_STRSEP if necessary.
+       * m4/strstr.m4 (gl_FUNC_STRSTR): Set REPLACE_STRSTR if necessary.
+       * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Set HAVE_DECL_STRTOK_R if
+       necessary.
+       * modules/string: New file.
+       * modules/memmem (Files): Remove special-purpose include file.
+       (Depends-on): Add string.
+       (Include): Include <string.h>, not the removed file.
+       * modules/mempcpy: Likewise.
+       * modules/memrchr: Likewise.
+       * modules/stpcpy: Likewise.
+       * modules/stpncpy: Likewise.
+       * modules/strcase: Likewise.
+       * modules/strchrnul: Likewise.
+       * modules/strdup: Likewise.
+       * modules/strndup: Likewise.
+       * modules/strnlen: Likewise.
+       * modules/strpbrk: Likewise.
+       * modules/strsep: Likewise.
+       * modules/strstr: Likewise.
+       * modules/strtok_r: Likewise.
+       * tests/test-dirname.c: Don't include "strdup.h", since
+       <string.h> now suffices.
+       * tests/test-memmem.c: Don't include "memmem.h", since
+       <string.h> now suffices.
+
+2007-01-25  Bruno Haible  <bruno@clisp.org>
+
+       * lib/striconveh.c (mem_cd_iconveh_internal): Ignore *lengthp if
+       *resultp is 0.
+
+       * lib/unistr/u16-to-u8.c (u16_to_u8): Fix u8_uctomb invocation.
+       * lib/unistr/u32-to-u8.c (u32_to_u8): Likewise.
+       * lib/unistr/u8-to-u16.c (u8_to_u16): Fix u16_uctomb invocation.
+       * lib/unistr/u32-to-u16.c (u32_to_u16): Likewise.
+
+       * modules/unistr/u8-to-u16 (Depends-on): Add missing modules.
+       * modules/unistr/u8-to-u32 (Depends-on): Add missing modules.
+       * modules/unistr/u16-to-u8 (Depends-on): Add missing modules.
+       * modules/unistr/u16-to-u32 (Depends-on): Add missing modules.
+       * modules/unistr/u32-to-u8 (Depends-on): Add missing modules.
+       * modules/unistr/u32-to-u16 (Depends-on): Add missing modules.
+
+2007-01-24  Bruno Haible  <bruno@clisp.org>
+
+       Don't AC_REQUIRE autoconf macros that invoke AC_LIBOBJ. See
+       <http://lists.gnu.org/archive/html/bug-gnulib/2006-10/msg00279.html>.
+       * m4/argp.m4 (gl_ARGP): Invoke, don't require, gl_GETOPT_SUBSTITUTE.
+       * m4/fts.m4 (gl_FUNC_FTS, gl_FUNC_FTS_LGPL): Invoke, don't require,
+       gl_FUNC_FTS_CORE.
+       (gl_FUNC_FTS_CORE): Invoke, don't require, gl_FUNC_OPENAT.
+       * m4/lstat.m4 (gl_FUNC_LSTAT): Invoke, don't require,
+       AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
+       * m4/memcmp.m4 (gl_FUNC_MEMCMP): Invoke, don't require, AC_FUNC_MEMCMP.
+       * m4/mktime.m4 (gl_FUNC_MKTIME): Invoke, don't require, AC_FUNC_MKTIME.
+       * m4/openat.m4 (gl_FUNC_OPENAT): Invoke, don't require,
+       gl_FUNC_FCHOWNAT.
+       * m4/strftime.m4 (gl_FUNC_GNU_STRFTIME): Invoke, don't require,
+       gl_FUNC_STRFTIME.
+       * m4/strtod.m4 (gl_FUNC_STRTOD): Invoke, don't require, AC_FUNC_STRTOD.
+       Reported by Ralf Wildenhues.
+
+2007-01-24  Bruno Haible  <bruno@clisp.org>
+
+       Drop AC_REQUIRE calls that are redundant with the module dependencies.
+       * m4/canon-host.m4 (gl_PREREQ_CANON_HOST): Don't require
+       gl_GETADDRINFO.
+       * m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG): Don't require AM_STDBOOL_H,
+       gl_FUNC_MEMPCPY, gl_FUNC_OPENAT, gl_FUNC_MEMRCHR.
+       * m4/openat.m4 (gl_PREREQ_OPENAT): Don't require gl_SAVE_CWD.
+
+2007-01-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Add test for glibc bug 361.
+       Don't use 'exit'; just return from 'main'.
+       (_AC_LIBOBJ_FNMATCH): Check for headers and functions just once.
+
+       * lib/fnmatch_.h: Readjust white space and comments to match
+       glibc, to avoid spurious diffs.
+
+2007-01-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/fnmatch_loop.c (internal_fnmatch) [!_LIBC]: #if-out the
+       2004-12-01 change by Jakub Jelinek, since this code won't compile
+       if !LIBC.  Problem reported by Bob Proulx.
+
+2007-01-23  Bruno Haible  <bruno@clisp.org>
+
+       * lib/striconveh.c: Include c-strcaseeq.h.
+       (mem_iconveh, str_iconveh): Use STRCASEEQ instead of c_strcasecmp.
+       * modules/striconveh (Depends-on): Add c-strcaseeq.
+
+2007-01-23  Bruno Haible  <bruno@clisp.org>
+
+       * MODULES.html.sh (String handling): Add streq, c-strcaseeq.
+
+       * modules/c-strcaseeq: New file.
+       * lib/c-strcaseeq.h: New file.
+
+       * modules/streq: New file.
+       * lib/streq.h: New file.
+
+2007-01-23  Bruno Haible  <bruno@clisp.org>
+
+       * modules/striconveha-tests: New file.
+       * tests/test-striconveha.c: New file.
+
+       * lib/striconveha.h: Include <stdbool.h>.
+       (mem_iconveha, str_iconveha): Add 'transliterate' argument.
+       * lib/striconveha.c: Include allocsa.h, strdup.h, c-strcase.h.
+       (mem_iconveha_notranslit): Renamed from mem_iconveha.
+       (mem_iconveha): New function.
+       (str_iconveha_notranslit): Renamed from str_iconveha.
+       (str_iconveha): New function.
+       * modules/striconveha (Depends-on): Add stdbool, allocsa, strdup,
+       c-strcase.
+
+2007-01-23  Bruno Haible  <bruno@clisp.org>
+
+       * lib/striconveha.c (mem_iconveha): Fix endless recursion. Try all
+       encodings without forgiving before trying any encoding with handler.
+       (str_iconveha): Try all encodings without forgiving before trying any
+       encoding with handler.
+
 2007-01-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        Import the following changes from libc.