emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 4c0fed1: * src/syntax.c: Handle spurious e_property


From: Stefan Monnier
Subject: [Emacs-diffs] master 4c0fed1: * src/syntax.c: Handle spurious e_property_truncated flag
Date: Wed, 23 Sep 2015 16:33:58 +0000

branch: master
commit 4c0fed13e5ca1826bab52cd9c3fc31ad0e5c765c
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    * src/syntax.c: Handle spurious e_property_truncated flag
    
    * src/syntax.c (parse_sexp_propertize): Handle spurious
    e_property_truncated flag.
    (update_syntax_table_forward): Remove invalid assertion.
---
 src/syntax.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/syntax.c b/src/syntax.c
index 3bd301f..6b1865f 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -499,6 +499,13 @@ parse_sexp_propertize (ptrdiff_t charpos)
       gl_state.e_property = syntax_propertize__done;
       gl_state.e_property_truncated = true;
     }
+  else if (gl_state.e_property_truncated)
+    { /* When moving backward, e_property might be set without resetting
+        e_property_truncated, so the e_property_truncated flag may
+        occasionally be left raised spuriously.  This should be rare.  */
+      gl_state.e_property_truncated = false;
+      update_syntax_table_forward (charpos, false, Qnil);
+    }
 }
 
 void
@@ -509,7 +516,6 @@ update_syntax_table_forward (ptrdiff_t charpos, bool init,
     {
       eassert (NILP (object));
       eassert (charpos >= gl_state.e_property);
-      eassert (charpos >= syntax_propertize__done);
       parse_sexp_propertize (charpos);
     }
   else



reply via email to

[Prev in Thread] Current Thread [Next in Thread]