changeset 37532:f14973be41f5

(update_syntax_table): Check that oldi has the same properties as old_prop before deciding not to invalidate.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 01 May 2001 13:49:44 +0000
parents e71362bfa695
children 1dfa1b721ead
files src/syntax.c
diffstat 1 files changed, 7 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/syntax.c	Tue May 01 13:33:59 2001 +0000
+++ b/src/syntax.c	Tue May 01 13:49:44 2001 +0000
@@ -162,7 +162,7 @@
     }
   oldi = i = count > 0 ? gl_state.forward_i : gl_state.backward_i;
 
-  /* We are guarantied to be called with CHARPOS either in i,
+  /* We are guaranteed to be called with CHARPOS either in i,
      or further off.  */
   if (NULL_INTERVAL_P (i))
     error ("Error in syntax_table logic for to-the-end intervals");
@@ -172,21 +172,21 @@
 	error ("Error in syntax_table logic for intervals <-");
       /* Update the interval.  */
       i = update_interval (i, charpos);
-      if (oldi->position != INTERVAL_LAST_POS (i))
+      if (!gl_state.left_ok || oldi->position != INTERVAL_LAST_POS (i))
 	{
 	  invalidate = 0;
 	  gl_state.right_ok = 1;	/* Invalidate the other end.  */
 	  gl_state.forward_i = i;
 	  gl_state.e_property = INTERVAL_LAST_POS (i) - gl_state.offset;
 	}
-    } 
+    }
   else if (charpos >= INTERVAL_LAST_POS (i)) /* Move right.  */
     {
       if (count < 0)
 	error ("Error in syntax_table logic for intervals ->");
       /* Update the interval.  */
       i = update_interval (i, charpos);
-      if (i->position != INTERVAL_LAST_POS (oldi))
+      if (!gl_state.right_ok || i->position != INTERVAL_LAST_POS (oldi))
 	{
 	  invalidate = 0;
 	  gl_state.left_ok = 1;		/* Invalidate the other end.  */
@@ -206,9 +206,9 @@
   if (invalidate)
     invalidate = !EQ (tmp_table, gl_state.old_prop); /* Need to invalidate? */
       
-  if (invalidate)			/* Did not get to adjacent interval.  */
-    {					/* with the same table => */
-					/* invalidate the old range.  */
+  if (invalidate)		/* Did not get to adjacent interval.  */
+    {				/* with the same table => */
+				/* invalidate the old range.  */
       if (count > 0)
 	{
 	  gl_state.backward_i = i;