[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: strstr
From: |
Bruno Haible |
Subject: |
Re: strstr |
Date: |
Thu, 18 Jun 2009 10:16:09 +0200 |
User-agent: |
KMail/1.9.9 |
In strcasestr.m4, there is no need to do the linear time check if gnulib is
going to override the function anyway.
Also, I prefer not to rely on AC_REPLACE_FUNCS when it makes the code harder
to understand. AC_REPLACE_FUNCS is a nice shorthand for the simple cases, but
here its use leads to duplicated code. Instead, use the idiom found in
m4/mbsrtowcs.m4 and elsewhere.
2009-06-18 Bruno Haible <address@hidden>
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Invoke AC_LIBOBJ only
in one place.
(gl_FUNC_STRCASESTR): Skip linear time test if strcasestr is going to
be replaced anyway.
--- m4/strcasestr.m4.orig 2009-06-18 10:08:10.000000000 +0200
+++ m4/strcasestr.m4 2009-06-18 10:01:52.000000000 +0200
@@ -7,17 +7,21 @@
dnl Check that strcasestr is present and works.
AC_DEFUN([gl_FUNC_STRCASESTR_SIMPLE],
[
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+
dnl Persuade glibc <string.h> to declare strcasestr().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_MEMCHR])
- AC_REPLACE_FUNCS([strcasestr])
+ AC_CHECK_FUNCS([strcasestr])
if test $ac_cv_func_strcasestr = no; then
HAVE_STRCASESTR=0
- gl_PREREQ_STRCASESTR
- elif test "$gl_cv_func_memchr_works" != yes; then
- REPLACE_STRCASESTR=1
+ else
+ if test "$gl_cv_func_memchr_works" != yes; then
+ REPLACE_STRCASESTR=1
+ fi
+ fi
+ if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then
AC_LIBOBJ([strcasestr])
gl_PREREQ_STRCASESTR
fi
@@ -27,7 +31,7 @@
AC_DEFUN([gl_FUNC_STRCASESTR],
[
AC_REQUIRE([gl_FUNC_STRCASESTR_SIMPLE])
- if test $ac_cv_func_strcasestr = yes; then
+ if test $HAVE_STRCASESTR = 1 && test $REPLACE_STRCASESTR = 0; then
AC_CACHE_CHECK([whether strcasestr works in linear time],
[gl_cv_func_strcasestr_linear],
[AC_RUN_IFELSE([AC_LANG_PROGRAM([[
@@ -80,6 +84,7 @@
if test "$gl_cv_func_strcasestr_linear" != yes; then
REPLACE_STRCASESTR=1
AC_LIBOBJ([strcasestr])
+ gl_PREREQ_STRCASESTR
fi
fi
]) # gl_FUNC_STRCASESTR
- Re: test-memchr crash, (continued)
- Re: test-memchr crash, Simon Josefsson, 2009/06/13
- Re: test-memchr crash, Eric Blake, 2009/06/16
- Re: test-memchr crash, Simon Josefsson, 2009/06/16
- Re: test-memchr crash, Eric Blake, 2009/06/16
- strstr (was: test-memchr crash), Eric Blake, 2009/06/16
- Re: strstr (was: test-memchr crash), Bruno Haible, 2009/06/17
- Re: strstr, Eric Blake, 2009/06/17
- Re: strstr, Eric Blake, 2009/06/17
- Re: strstr,
Bruno Haible <=
- Re: strstr, Bruno Haible, 2009/06/18
- Re: strstr, Eric Blake, 2009/06/18
- Re: test-memchr crash, Simon Josefsson, 2009/06/16