changeset 48236:303d917c08c3

(scan_sexps_forward): Update syntax table before reading a char rather than after so we don't update the table past eob.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sat, 09 Nov 2002 22:20:02 +0000
parents 13ff2508090c
children ee293d310f44
files src/syntax.c
diffstat 1 files changed, 3 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/syntax.c	Sat Nov 09 12:56:31 2002 +0000
+++ b/src/syntax.c	Sat Nov 09 22:20:02 2002 +0000
@@ -2504,10 +2504,10 @@
 #define INC_FROM				\
 do { prev_from = from;				\
      prev_from_byte = from_byte; 		\
+     UPDATE_SYNTAX_TABLE_FORWARD (prev_from);	\
      prev_from_syntax				\
        = SYNTAX_WITH_FLAGS (FETCH_CHAR (prev_from_byte)); \
      INC_BOTH (from, from_byte);		\
-     UPDATE_SYNTAX_TABLE_FORWARD (from);	\
   } while (0)
 
   immediate_quit = 1;
@@ -2580,7 +2580,6 @@
 
   SETUP_SYNTAX_TABLE (prev_from, 1);
   prev_from_syntax = SYNTAX_WITH_FLAGS (FETCH_CHAR (prev_from_byte));
-  UPDATE_SYNTAX_TABLE_FORWARD (from);
 
   /* Enter the loop at a place appropriate for initial state.  */
 
@@ -2596,12 +2595,6 @@
   else if (start_quoted)
     goto startquoted;
 
-#if 0 /* This seems to be redundant with the identical code above.  */
-  SETUP_SYNTAX_TABLE (prev_from, 1);
-  prev_from_syntax = SYNTAX_WITH_FLAGS (FETCH_CHAR (prev_from_byte));
-  UPDATE_SYNTAX_TABLE_FORWARD (from);
-#endif
-
   while (from < end)
     {
       INC_FROM;
@@ -2627,6 +2620,7 @@
      else if (from < end)
 	if (SYNTAX_FLAGS_COMSTART_FIRST (prev_from_syntax))
 	  if (c1 = FETCH_CHAR (from_byte),
+	      UPDATE_SYNTAX_TABLE_FORWARD (from_byte),
 	      SYNTAX_COMSTART_SECOND (c1))
 	    /* Duplicate code to avoid a complex if-expression
 	       which causes trouble for the SGI compiler.  */
@@ -2634,7 +2628,7 @@
 	      /* Record the comment style we have entered so that only
 		 the comment-end sequence of the same style actually
 		 terminates the comment section.  */
-	      state.comstyle = SYNTAX_COMMENT_STYLE (FETCH_CHAR (from_byte));
+	      state.comstyle = SYNTAX_COMMENT_STYLE (c1);
 	      comnested = SYNTAX_FLAGS_COMMENT_NESTED (prev_from_syntax);
 	      comnested = comnested || SYNTAX_COMMENT_NESTED (c1);
 	      state.incomment = comnested ? 1 : -1;