From 423e705d9c36a723ca3fcc70db2417af4d200042 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 1 May 2001 13:49:44 +0000 Subject: [PATCH] (update_syntax_table): Check that oldi has the same properties as old_prop before deciding not to invalidate. --- src/syntax.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/syntax.c b/src/syntax.c index 6202ef7842f..fb996de9dfa 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -162,7 +162,7 @@ update_syntax_table (charpos, count, init, object) } 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 @@ update_syntax_table (charpos, count, init, object) 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 @@ update_syntax_table (charpos, count, init, object) 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; -- 2.39.5