View | Details | Raw Unified
Collapse All | Expand All

(-) gnulib/m4/regex.m4 (-48 / +25 lines)
 Lines 1-7    Link Here 
#serial 31
#serial 35
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
# Software Foundation, Inc.
# 2006 Free Software Foundation, Inc.
#
#
# This file is free software; the Free Software Foundation
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# gives unlimited permission to copy and/or distribute it,
 Lines 14-44    Link Here 
AC_DEFUN([gl_REGEX],
AC_DEFUN([gl_REGEX],
[
[
  AC_REQUIRE([AC_SYS_LARGEFILE]) dnl for a sufficently-wide off_t
  AC_CACHE_CHECK([whether off_t can be used in a switch statement],
    [gl_cv_type_off_t_switch],
    [AC_COMPILE_IFELSE(
      [AC_LANG_PROGRAM(
         [AC_INCLUDES_DEFAULT],
	 [[off_t o = -1;
	   switch (o)
	     {
	     case -2:
	       return 1;
	     case -1:
	       return 2;
	     default:
	       return 0;
	     }
	 ]])],
      [gl_cv_type_off_t_switch=yes],
      [gl_cv_type_off_t_switch=no])])
  if test $gl_cv_type_off_t_switch = yes; then
    AC_DEFINE([_REGEX_LARGE_OFFSETS], 1,
      [Define if you want regoff_t to be at least as wide POSIX requires.])
  fi
  AC_LIBSOURCES(
  AC_LIBSOURCES(
    [regcomp.c, regex.c, regex.h,
    [regcomp.c, regex.c, regex.h,
     regex_internal.c, regex_internal.h, regexec.c])
     regex_internal.c, regex_internal.h, regexec.c])
 Lines 49-55    Link Here 
		     systems with recent-enough versions of the GNU C
		     systems with recent-enough versions of the GNU C
		     Library (use with caution on other systems)])])
		     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
  yes|no) ac_use_included_regex=$with_included_regex
	;;
	;;
  '')
  '')
 Lines 59-78    Link Here 
    # regex.c.  The first failing regular expression is from `Spencer ere
    # regex.c.  The first failing regular expression is from `Spencer ere
    # test #75' in grep-2.3.
    # test #75' in grep-2.3.
    AC_CACHE_CHECK([for working re_compile_pattern],
    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_RUN_IFELSE(
	[AC_LANG_PROGRAM(
	[AC_LANG_PROGRAM(
	  [AC_INCLUDES_DEFAULT
	  [AC_INCLUDES_DEFAULT
	   #include <regex.h>],
	   #include <regex.h>
	   ],
	  [[static struct re_pattern_buffer regex;
	  [[static struct re_pattern_buffer regex;
	    const char *s;
	    const char *s;
	    struct re_registers regs;
	    struct re_registers regs;
	    /* Use the POSIX-compliant spelling with leading REG_,
	    re_set_syntax (RE_SYNTAX_POSIX_EGREP);
	       rather than the traditional GNU spelling with leading RE_,
	       so that we reject older libc implementations.  */
	    re_set_syntax (REG_SYNTAX_POSIX_EGREP);
	    memset (&regex, 0, sizeof (regex));
	    memset (&regex, 0, sizeof (regex));
	    s = re_compile_pattern ("a[:@:>@:]b\n", 9, &regex);
	    s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, &regex);
	    /* This should fail with _Invalid character class name_ error.  */
	    /* This should fail with _Invalid character class name_ error.  */
	    if (!s)
	    if (!s)
	      exit (1);
	      exit (1);
 Lines 106-115    Link Here 
	      exit (1);
	      exit (1);
	    /* The version of regex.c in older versions of gnulib
	    /* The version of regex.c in older versions of gnulib
	       ignored REG_IGNORE_CASE (which was then called RE_ICASE).
	       ignored RE_ICASE.  Detect that problem too.  */
	       Detect that problem too.  */
	    memset (&regex, 0, sizeof (regex));
	    memset (&regex, 0, sizeof (regex));
	    re_set_syntax (REG_SYNTAX_EMACS | REG_IGNORE_CASE);
	    re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE);
	    s = re_compile_pattern ("x", 1, &regex);
	    s = re_compile_pattern ("x", 1, &regex);
	    if (s)
	    if (s)
	      exit (1);
	      exit (1);
 Lines 123-146    Link Here 
	      exit (1);
	      exit (1);
	    /* Reject hosts whose regoff_t values are too narrow.
	    /* Reject hosts whose regoff_t values are too narrow.
	       These include glibc 2.3.5 on hosts with 64-bit off_t
	       These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t
	       and 32-bit int, and Solaris 10 on hosts with 32-bit int
	       and 32-bit int.  */
	       and _FILE_OFFSET_BITS=64.  */
	    if (sizeof (regoff_t) < sizeof (ptrdiff_t)
	    if (sizeof (regoff_t) < sizeof (off_t))
		|| sizeof (regoff_t) < sizeof (ssize_t))
	      exit (1);
	      exit (1);
	    exit (0);]])],
	    exit (0);]])],
       [gl_cv_func_re_compile_pattern_broken=no],
       [gl_cv_func_re_compile_pattern_working=yes],
       [gl_cv_func_re_compile_pattern_broken=yes],
       [gl_cv_func_re_compile_pattern_working=no],
       dnl When crosscompiling, assume it is broken.
       dnl When crosscompiling, assume it is not working.
       [gl_cv_func_re_compile_pattern_broken=yes])])
       [gl_cv_func_re_compile_pattern_working=no])])
    ac_use_included_regex=$gl_cv_func_re_compile_pattern_broken
    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])
  *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex])
    ;;
    ;;
  esac
  esac
  if test $ac_use_included_regex = yes; then
  if test $ac_use_included_regex = yes; then
    AC_DEFINE([_REGEX_LARGE_OFFSETS], 1,
      [Define if you want regoff_t to be at least as wide POSIX requires.])
    AC_DEFINE([re_syntax_options], [rpl_re_syntax_options],
    AC_DEFINE([re_syntax_options], [rpl_re_syntax_options],
      [Define to rpl_re_syntax_options if the replacement should be used.])
      [Define to rpl_re_syntax_options if the replacement should be used.])
    AC_DEFINE([re_set_syntax], [rpl_re_set_syntax],
    AC_DEFINE([re_set_syntax], [rpl_re_set_syntax],
(-) gnulib/lib/regex.h (-6 / +8 lines)
 Lines 1-6    Link Here 
/* Definitions for data structures and routines for the regular
/* Definitions for data structures and routines for the regular
   expression library.
   expression library.
   Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005
   Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
   This file is part of the GNU C Library.
   This file is part of the GNU C Library.
 Lines 53-63    Link Here 
/* The type of the offset of a byte within a string.
/* The type of the offset of a byte within a string.
   For historical reasons POSIX 1003.1-2004 requires that regoff_t be
   For historical reasons POSIX 1003.1-2004 requires that regoff_t be
   at least as wide as off_t.  This is a bit odd (and many common
   at least as wide as off_t.  However, many common POSIX platforms set
   POSIX platforms set it to the more-sensible ssize_t) but we might
   regoff_t to the more-sensible ssize_t and the Open Group has
   as well conform.  We don't know of any hosts where ssize_t is wider
   signalled its intention to change the requirement to be that
   than off_t, so off_t is safe.  */
   regoff_t be at least as wide as ptrdiff_t and ssize_t; see XBD ERN
typedef off_t regoff_t;
   60 (2005-08-25).  We don't know of any hosts where ssize_t or
   ptrdiff_t is wider than long int, so long int is safe.  */
typedef long int regoff_t;
/* The type of nonnegative object indexes.  Traditionally, GNU regex
/* The type of nonnegative object indexes.  Traditionally, GNU regex
   uses 'int' for these.  Code that uses __re_idx_t should work
   uses 'int' for these.  Code that uses __re_idx_t should work