is not defined. Problem reported by Mark D. Baushke via Derek R. Price.
* regex.h (RE_DUP_MAX): Update comment to match current implementation.
+2006-04-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regcomp.c (init_dfa): Don't use wchar_t or wctype_t if RE_ENABLE_I18N
+ is not defined. Problem reported by Mark D. Baushke via Derek R. Price.
+ * regex.h (RE_DUP_MAX): Update comment to match current implementation.
+
2006-04-09 Paul Eggert <eggert@cs.ucla.edu>
Merge regex changes from libc, removing some of our
__re_size_t table_size;
#ifndef _LIBC
char *codeset_name;
+#endif
+#ifdef RE_ENABLE_I18N
+ size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t));
+#else
+ size_t max_i18n_object_size = 0;
#endif
size_t max_object_size =
MAX (sizeof (struct re_state_table_entry),
MAX (sizeof (re_token_t),
MAX (sizeof (re_node_set),
MAX (sizeof (regmatch_t),
- MAX (sizeof (regoff_t),
- MAX (sizeof (wchar_t),
- MAX (sizeof (wctype_t),
- sizeof (Idx))))))));
+ max_i18n_object_size))));
memset (dfa, '\0', sizeof (re_dfa_t));
# ifdef RE_DUP_MAX
# undef RE_DUP_MAX
# endif
-/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */
+
+/* RE_DUP_MAX is 2**15 - 1 because an earlier implementation stored
+ the counter as a 2-byte signed integer. This is no longer true, so
+ RE_DUP_MAX could be increased to (INT_MAX / 10 - 1), or to
+ ((SIZE_MAX - 2) / 10 - 1) if _REGEX_LARGE_OFFSETS is defined.
+ However, there would be a huge performance problem if someone
+ actually used a pattern like a\{214748363\}, so RE_DUP_MAX retains
+ its historical value. */
# define RE_DUP_MAX (0x7fff)
#endif /* defined __USE_GNU_REGEX */