+2006-03-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex.h (regoff_t) [defined _REGEX_LARGE_OFFSETS]:
+ Typedef to long int, not to off_, as POSIX will likely change
+ in that direction.
+
2006-03-13 Sergey Poznyakoff <gray@gnu.org.ua>
* argp-help.c (validate_uparams): Fix typo
- * argp-parse.c (argp_default_options): Consistently begin help
+ * argp-parse.c (argp_default_options): Consistently begin help
messages with a lowercase letter.
2006-03-11 Paul Eggert <eggert@cs.ucla.edu>
/* Definitions for data structures and routines for the regular
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.
This file is part of the GNU C Library.
/* The type of the offset of a byte within a string.
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
- POSIX platforms set it to the more-sensible ssize_t) but we might
- as well conform. We don't know of any hosts where ssize_t is wider
- than off_t, so off_t is safe. */
-typedef off_t regoff_t;
+ at least as wide as off_t. However, many common POSIX platforms set
+ regoff_t to the more-sensible ssize_t and the Open Group has
+ signalled its intention to change the requirement to be that
+ regoff_t be at least as wide as ptrdiff_t and ssize_t; see XBD ERN
+ 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
uses 'int' for these. Code that uses __re_idx_t should work
+2006-03-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex.m4 (gl_REGEX): Don't check for off_t, since the code
+ no longer needs it. Instead, check that regoff_t is as least
+ as wide as ptrdiff_t.
+
+ Don't define _REGEX_WIDE_OFFSETS unless using the included regex,
+ so that our regex.h stays compatible with the installed regex.
+ This is helpful for installers who configure --without-included-regex.
+ Problem reported by Emanuele Giaquinta.
+
2006-03-15 Eric Blake <ebb9@byu.net>
* dirfd.m4 (gl_FUNC_DIRFD): Use AC_REQUIRE for AC_HEADER_DIRENT.
-#serial 31
+#serial 32
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free
-# Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
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(
[regcomp.c, regex.c, regex.h,
regex_internal.c, regex_internal.h, regexec.c])
exit (1);
/* Reject hosts whose regoff_t values are too narrow.
- These include glibc 2.3.5 on hosts with 64-bit off_t
- and 32-bit int, and Solaris 10 on hosts with 32-bit int
- and _FILE_OFFSET_BITS=64. */
- if (sizeof (regoff_t) < sizeof (off_t))
+ 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))
exit (1);
exit (0);]])],
esac
if test $ac_use_included_regex = yes; then
+ AC_DEFINE([_REGEX_WIDE_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],
[Define to rpl_re_syntax_options if the replacement should be used.])
AC_DEFINE([re_set_syntax], [rpl_re_set_syntax],