changeset 6234:8938a14f38c1

Fix redefinition problem: strstr may be defined as a macro in string.h.
author Bruno Haible <bruno@clisp.org>
date Thu, 15 Sep 2005 16:25:48 +0000
parents 8a2171e804c1
children 4de50f89b2ac
files lib/ChangeLog lib/strstr.h m4/ChangeLog m4/strstr.m4
diffstat 4 files changed, 19 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,7 @@
+2005-09-15  Derek Price  <derek@ximbiot.com>
+
+	* strstr.h: Include string.h. Define strstr as a macro here.
+
 2005-09-13  Derek Price  <derek@ximbiot.com>
 
 	* canon-host.c (canon_host_r): Set *cherror on memory allocation
--- a/lib/strstr.h
+++ b/lib/strstr.h
@@ -15,10 +15,20 @@
    along with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
+
+/* Include string.h: on glibc systems, it contains a macro definition of
+   strstr() that would collide with our definition if included afterwards.  */
+#include <string.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+/* No known system has a strstr() function that works correctly in
+   multibyte locales. Therefore we use our version always.  */
+#undef strstr
+#define strstr rpl_strstr
+
 /* Find the first occurrence of NEEDLE in HAYSTACK.  */
 extern char *strstr (const char *haystack, const char *needle);
 
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,7 @@
+2005-09-15  Derek Price  <derek@ximbiot.com>
+
+	* strstr.m4 (gl_FUNC_STRSTR): Don't define strstr here.
+
 2005-09-12  Derek Price  <derek@ximbiot.com>
 
 	Make canon-host require getaddrinfo.
--- a/m4/strstr.m4
+++ b/m4/strstr.m4
@@ -1,4 +1,4 @@
-# strstr.m4 serial 3
+# strstr.m4 serial 4
 dnl Copyright (C) 2002-2003, 2005 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -9,7 +9,6 @@
   dnl No known system has a strstr() function that works correctly in
   dnl multibyte locales. Therefore we use our version always.
   AC_LIBOBJ(strstr)
-  AC_DEFINE(strstr, rpl_strstr, [Define to rpl_strstr always.])
   gl_PREREQ_STRSTR
 ])