+2009-06-18 Bruno Haible <bruno@clisp.org>
+
+ * 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.
+
2009-06-18 Eric Blake <ebb9@byu.net>
hash: check for resize before insertion
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
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([[
if test "$gl_cv_func_strcasestr_linear" != yes; then
REPLACE_STRCASESTR=1
AC_LIBOBJ([strcasestr])
+ gl_PREREQ_STRCASESTR
fi
fi
]) # gl_FUNC_STRCASESTR