Mercurial > emacs
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;