mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-01 09:51:22 -08:00
(scan_sexps_forward): Update syntax table before reading
a char rather than after so we don't update the table past eob.
This commit is contained in:
parent
2671e4de9a
commit
79bd6490a2
1 changed files with 3 additions and 9 deletions
12
src/syntax.c
12
src/syntax.c
|
|
@ -2504,10 +2504,10 @@ scan_sexps_forward (stateptr, from, from_byte, end, targetdepth,
|
|||
#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 @@ do { prev_from = from; \
|
|||
|
||||
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 @@ do { prev_from = from; \
|
|||
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 @@ do { prev_from = from; \
|
|||
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 @@ do { prev_from = from; \
|
|||
/* 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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue