# HG changeset patch # User Paul Eggert # Date 1143280127 0 # Node ID af0d674cde4fc3384a48f327b013395cb18118ac # Parent d8b144efd883b988a068b490ae497567ad5876c4 * regex.m4 (gl_REGEX): Fix a longstanding typo in the implementation of Spencer ERE test #75 from grep 2.3. Also, change sense of cached variable, so that the message makes sense. diff --git a/m4/ChangeLog b/m4/ChangeLog --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -4,7 +4,10 @@ REG_SYNTAX_EMACS, and REG_IGNORE_CASE. Settle for the traditional glibc names. Even if glibc is changed to conform to POSIX, the traditional names will be available anyway, since regex depends on - the extensions module. Problem reported by Emanuele Giaquinta. + the extensions module. Also, fix a longstanding typo in the + implementation of Spencer ERE test #75 from grep 2.3. Problems + reported by Emanuele Giaquinta. Also, change sense of cached + variable, so that the message makes sense. 2006-03-17 Jim Meyering diff --git a/m4/regex.m4 b/m4/regex.m4 --- a/m4/regex.m4 +++ b/m4/regex.m4 @@ -1,4 +1,4 @@ -#serial 34 +#serial 35 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006 Free Software Foundation, Inc. @@ -24,7 +24,7 @@ systems with recent-enough versions of the GNU C Library (use with caution on other systems)])]) - case $with_included_regex in + case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex ;; '') @@ -34,17 +34,18 @@ # regex.c. The first failing regular expression is from `Spencer ere # test #75' in grep-2.3. AC_CACHE_CHECK([for working re_compile_pattern], - [gl_cv_func_re_compile_pattern_broken], + [gl_cv_func_re_compile_pattern_working], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT - #include ], + #include + ], [[static struct re_pattern_buffer regex; const char *s; struct re_registers regs; re_set_syntax (RE_SYNTAX_POSIX_EGREP); memset (®ex, 0, sizeof (regex)); - s = re_compile_pattern ("a[:@:>@:]b\n", 9, ®ex); + s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) exit (1); @@ -97,15 +98,18 @@ These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t and 32-bit int. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) - || sizeof (regoff_t) < sizeof (ssize_t)) + || sizeof (regoff_t) < sizeof (ssize_t)) exit (1); exit (0);]])], - [gl_cv_func_re_compile_pattern_broken=no], - [gl_cv_func_re_compile_pattern_broken=yes], - dnl When crosscompiling, assume it is broken. - [gl_cv_func_re_compile_pattern_broken=yes])]) - ac_use_included_regex=$gl_cv_func_re_compile_pattern_broken + [gl_cv_func_re_compile_pattern_working=yes], + [gl_cv_func_re_compile_pattern_working=no], + dnl When crosscompiling, assume it is not working. + [gl_cv_func_re_compile_pattern_working=no])]) + case $gl_cv_func_re_compile_pattern_working in #( + yes) ac_use_included_regex=no;; #( + no) ac_use_included_regex=yes;; + esac ;; *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex]) ;;