diff options
| author | Stefan Monnier <monnier@iro.umontreal.ca> | 2015-09-23 12:33:48 -0400 |
|---|---|---|
| committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2015-09-23 12:33:48 -0400 |
| commit | 4c0fed13e5ca1826bab52cd9c3fc31ad0e5c765c (patch) | |
| tree | a465657df1aad692acb3d663317201f126b52da8 /src/syntax.c | |
| parent | aab67529d229cd0d09ae3b9d7f8bb2f44e1d6276 (diff) | |
* 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.
Diffstat (limited to 'src/syntax.c')
| -rw-r--r-- | src/syntax.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/syntax.c b/src/syntax.c index 3bd301f0e38..6b1865f667f 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 |
