From: Bruno Haible Date: Thu, 18 Jun 2009 08:16:21 +0000 (+0200) Subject: Skip linear-time test if it is redundant. X-Git-Tag: v0.1~5853 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=0b8ca8c3c9002537e86fc02e4e2584e483a01739;p=gnulib.git Skip linear-time test if it is redundant. --- diff --git a/ChangeLog b/ChangeLog index f0016770e..9ef6472a2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-06-18 Bruno Haible + + * 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 hash: check for resize before insertion diff --git a/m4/strcasestr.m4 b/m4/strcasestr.m4 index d641958ee..62991b160 100644 --- a/m4/strcasestr.m4 +++ b/m4/strcasestr.m4 @@ -7,17 +7,21 @@ dnl with or without modifications, as long as this notice is preserved. dnl Check that strcasestr is present and works. AC_DEFUN([gl_FUNC_STRCASESTR_SIMPLE], [ + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + dnl Persuade glibc 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 @@ dnl Additionally, check that strcasestr is efficient. 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 @@ AC_DEFUN([gl_FUNC_STRCASESTR], if test "$gl_cv_func_strcasestr_linear" != yes; then REPLACE_STRCASESTR=1 AC_LIBOBJ([strcasestr]) + gl_PREREQ_STRCASESTR fi fi ]) # gl_FUNC_STRCASESTR