summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--lib/strcasestr.c6
-rw-r--r--lib/string_.h10
-rw-r--r--m4/strcasestr.m46
-rw-r--r--m4/string_h.m41
-rw-r--r--modules/strcasestr4
-rw-r--r--modules/string1
7 files changed, 37 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 5bec53c050..cf7107dc49 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+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'.
diff --git a/lib/strcasestr.c b/lib/strcasestr.c
index 6812b5de88..0a25f86f6b 100644
--- a/lib/strcasestr.c
+++ b/lib/strcasestr.c
@@ -1,5 +1,5 @@
/* Case-insensitive searching in a string.
- Copyright (C) 2005-2006 Free Software Foundation, Inc.
+ Copyright (C) 2005-2007 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2005.
This program is free software; you can redistribute it and/or modify
@@ -19,10 +19,10 @@
#include <config.h>
/* Specification. */
-#include "strcasestr.h"
+#include <string.h>
#include <ctype.h>
-#include <stddef.h> /* for NULL */
+#include <stddef.h> /* for NULL, in case a nonstandard string.h lacks it */
#if HAVE_MBRTOWC
# include "mbuiter.h"
diff --git a/lib/string_.h b/lib/string_.h
index 326d5da652..94d991cf06 100644
--- a/lib/string_.h
+++ b/lib/string_.h
@@ -138,6 +138,16 @@ extern char *strsep (char **restrict __stringp, char const *restrict __delim);
extern char *strstr (char const *__haystack, char const *__needle);
#endif
+/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive
+ comparison.
+ Note: This function may, in multibyte locales, return success even if
+ strlen (haystack) < strlen (needle) ! */
+#if @REPLACE_STRCASESTR@
+# undef strcasestr
+# define strcasestr rpl_strcasestr
+extern char *strcasestr (const char *haystack, const char *needle);
+#endif
+
/* Parse S into tokens separated by characters in DELIM.
If S is NULL, the saved pointer in SAVE_PTR is used as
the next starting point. For example:
diff --git a/m4/strcasestr.m4 b/m4/strcasestr.m4
index ae83c481d7..92a0f1554c 100644
--- a/m4/strcasestr.m4
+++ b/m4/strcasestr.m4
@@ -1,5 +1,5 @@
-# strcasestr.m4 serial 2
-dnl Copyright (C) 2005 Free Software Foundation, Inc.
+# strcasestr.m4 serial 3
+dnl Copyright (C) 2005, 2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -9,7 +9,7 @@ AC_DEFUN([gl_FUNC_STRCASESTR],
dnl No known system has a strcasestr() function that works correctly in
dnl multibyte locales. Therefore we use our version always.
AC_LIBOBJ(strcasestr)
- AC_DEFINE(strcasestr, rpl_strcasestr, [Define to rpl_strcasestr always.])
+ REPLACE_STRCASESTR=1
gl_PREREQ_STRCASESTR
])
diff --git a/m4/string_h.m4 b/m4/string_h.m4
index 91e5c67728..9fbdffdde2 100644
--- a/m4/string_h.m4
+++ b/m4/string_h.m4
@@ -38,4 +38,5 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY],
HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R])
REPLACE_STRCASECMP=0; AC_SUBST([REPLACE_STRCASECMP])
REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR])
+ REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR])
])
diff --git a/modules/strcasestr b/modules/strcasestr
index 016a26bfa2..ed7dea72da 100644
--- a/modules/strcasestr
+++ b/modules/strcasestr
@@ -2,13 +2,13 @@ Description:
strcasestr() function: case-insensitive search for a substring in a string.
Files:
-lib/strcasestr.h
lib/strcasestr.c
m4/strcasestr.m4
m4/mbrtowc.m4
Depends-on:
mbuiter
+string
configure.ac:
gl_FUNC_STRCASESTR
@@ -16,7 +16,7 @@ gl_FUNC_STRCASESTR
Makefile.am:
Include:
-"strcasestr.h"
+<string.h>
License:
LGPL
diff --git a/modules/string b/modules/string
index 54a5498e2c..313613f182 100644
--- a/modules/string
+++ b/modules/string
@@ -37,6 +37,7 @@ string.h: string_.h
-e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
-e 's|@''REPLACE_STRCASECMP''@|$(REPLACE_STRCASECMP)|g' \
-e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
< $(srcdir)/string_.h; \
} > $@-t
mv $@-t $@