diff src/regex.c @ 73229:3501fcb2e68c

(regex_compile): Set the new `used_syntax' bit.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 03 Oct 2006 13:19:18 +0000
parents 2e2651f3d494
children c4cd6820a92e 2d56e13fd23d 8dd8c8286063
line wrap: on
line diff
--- a/src/regex.c	Tue Oct 03 13:18:24 2006 +0000
+++ b/src/regex.c	Tue Oct 03 13:19:18 2006 +0000
@@ -2530,6 +2530,7 @@
   bufp->syntax = syntax;
   bufp->fastmap_accurate = 0;
   bufp->not_bol = bufp->not_eol = 0;
+  bufp->used_syntax = 0;
 
   /* Set `used' to zero, so that if we return an error, the pattern
      printer (for debugging) will think there's no pattern.  We reset it
@@ -2942,6 +2943,14 @@
 			      SET_LIST_BIT (translated);
 			  }
 
+			/* In most cases the matching rule for char classes
+			   only uses the syntax table for multibyte chars,
+			   so that the content of the syntax-table it is not
+			   hardcoded in the range_table.  SPACE and WORD are
+			   the two exceptions.  */
+			if ((1 << cc) & ((1 << RECC_SPACE) | (1 << RECC_WORD)))
+			  bufp->used_syntax = 1;
+
 			/* Repeat the loop. */
 			continue;
 		      }