]> git.eshelyaron.com Git - emacs.git/commitdiff
(regex_compile): Set the new `used_syntax' bit.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 3 Oct 2006 13:19:18 +0000 (13:19 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 3 Oct 2006 13:19:18 +0000 (13:19 +0000)
src/regex.c

index 66e363e731cca0f3400d51dce0a33dbc1e4313ad..ae80ad0cee8b7e56be1624732ac8932f45a9e789 100644 (file)
@@ -2530,6 +2530,7 @@ regex_compile (pattern, size, syntax, bufp)
   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 @@ regex_compile (pattern, size, syntax, bufp)
                              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;
                      }