*** empty log message ***
[gnulib.git] / m4 / regex.m4
index bb201ed..3047d4d 100644 (file)
@@ -1,54 +1,51 @@
-#serial 4
+#serial 5
 
 dnl Initially derived from code in GNU grep.
 dnl Mostly written by Jim Meyering.
 
 
 dnl Initially derived from code in GNU grep.
 dnl Mostly written by Jim Meyering.
 
-AC_DEFUN(jm_WITH_REGEX,
+dnl Usage: jm_INCLUDED_REGEX([lib/regex.c])
+dnl
+AC_DEFUN(jm_INCLUDED_REGEX,
   [
   [
-    AC_REQUIRE([AM_GLIBC])
-
     dnl Even packages that don't use regex.c can use this macro.
     dnl Of course, for them it doesn't do anything.
 
     dnl Even packages that don't use regex.c can use this macro.
     dnl Of course, for them it doesn't do anything.
 
-    # By default, don't use the included regex.c on systems with a version
-    # of glibc 2 that's new enough to pass the following run test.
-    # If cross compiling, assume the test would fail and use the included
-    # regex.c.  The failing regular expression is from `Spencer ere test
-    # #75' in grep-2.2f.
+    # Assume we'll default to using the included regex.c.
     ac_use_included_regex=yes
 
     ac_use_included_regex=yes
 
-    if test "$ac_cv_glibc" = yes; then
-      # Without this run-test, on older glibc2 systems we'd end up
-      # using the buggy system regex.
-      AC_CACHE_CHECK([for working re_compile_pattern],
-                     jm_cv_func_working_re_compile_pattern,
-       AC_TRY_RUN(
-         changequote(<<, >>)dnl
-         <<
+    # However, if the system regex support is good enough that it passes the
+    # the following run test, then default to *not* using the included regex.c.
+    # If cross compiling, assume the test would fail and use the included
+    # regex.c.  The failing regular expression is from `Spencer ere test #75'
+    # in grep-2.3.
+    AC_CACHE_CHECK([for working re_compile_pattern],
+                  jm_cv_func_working_re_compile_pattern,
+      AC_TRY_RUN(
+       changequote(<<, >>)dnl
+       <<
 #include <stdio.h>
 #include <regex.h>
 #include <stdio.h>
 #include <regex.h>
-           int
-           main ()
-           {
-             static struct re_pattern_buffer regex;
-             const char *s;
-             re_set_syntax (RE_SYNTAX_POSIX_EGREP);
-             /* Add this third left square bracket, [, to balance the
-                three right ones below.  Otherwise autoconf-2.14 chokes.  */
-             s = re_compile_pattern ("a[[:]:]]b\n", 9, &regex);
-             /* This should fail with _Invalid character class name_ error.  */
-             exit (s ? 0 : 1);
-           }
-         >>,
-         changequote([, ])dnl
+         int
+         main ()
+         {
+           static struct re_pattern_buffer regex;
+           const char *s;
+           re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+           /* Add this third left square bracket, [, to balance the
+              three right ones below.  Otherwise autoconf-2.14 chokes.  */
+           s = re_compile_pattern ("a[[:]:]]b\n", 9, &regex);
+           /* This should fail with _Invalid character class name_ error.  */
+           exit (s ? 0 : 1);
+         }
+       >>,
+       changequote([, ])dnl
 
 
-                jm_cv_func_working_re_compile_pattern=yes,
-                jm_cv_func_working_re_compile_pattern=no,
-                dnl When crosscompiling, assume it's broken.
-                jm_cv_func_working_re_compile_pattern=no))
-      if test $jm_cv_func_working_re_compile_pattern = yes; then
-       ac_use_included_regex=no
-      fi
+              jm_cv_func_working_re_compile_pattern=yes,
+              jm_cv_func_working_re_compile_pattern=no,
+              dnl When crosscompiling, assume it's broken.
+              jm_cv_func_working_re_compile_pattern=no))
+    if test $jm_cv_func_working_re_compile_pattern = yes; then
+      ac_use_included_regex=no
     fi
 
     test -n "$1" || AC_MSG_ERROR([missing argument])
     fi
 
     test -n "$1" || AC_MSG_ERROR([missing argument])