(skip_chars): Setup gl_state (bug#3823).
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 5 Mar 2010 18:42:38 +0000 (13:42 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 5 Mar 2010 18:42:38 +0000 (13:42 -0500)
(in_classes): Use CONSP before XCAR/XCDR.

src/ChangeLog
src/syntax.c

index 1825946..c6bb157 100644 (file)
@@ -1,3 +1,8 @@
+2010-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * syntax.c (skip_chars): Setup gl_state (bug#3823).
+       (in_classes): Use CONSP before XCAR/XCDR.
+
 2010-03-03  Chong Yidong  <cyd@stupidchicken.com>
 
        * keymap.c (Fwhere_is_internal): Use Fequal to compare
index 01b4cfb..47b4caf 100644 (file)
@@ -1747,6 +1747,12 @@ skip_chars (forwardp, string, lim, handle_iso_classes)
       }
 
     immediate_quit = 1;
+    /* This code may look up syntax tables using macros that rely on the
+       gl_state object.  To make sure this object is not out of date,
+       let's initialize it manually.
+       We ignore syntax-table text-properties for now, since that's
+       what we've done in the past.  */
+    SETUP_SYNTAX_TABLE (BEGV, 0);
     if (forwardp)
       {
        if (multibyte)
@@ -2072,7 +2078,7 @@ in_classes (c, iso_classes)
 {
   int fits_class = 0;
 
-  while (! NILP (iso_classes))
+  while (CONSP (iso_classes))
     {
       Lisp_Object elt;
       elt = XCAR (iso_classes);