Mercurial > emacs
changeset 54849:3f107190e71f
(scan_lists): Simplify backward string scan.
Fix off-by-one boundary check for string and comment fences.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 13 Apr 2004 21:45:13 +0000 |
parents | 679fb5bfb814 |
children | b51ae0b3fd1b |
files | src/syntax.c |
diffstat | 1 files changed, 5 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/syntax.c Tue Apr 13 21:31:23 2004 +0000 +++ b/src/syntax.c Tue Apr 13 21:45:13 2004 +0000 @@ -2398,8 +2398,8 @@ case Sstring_fence: while (1) { + if (from == stop) goto lose; DEC_BOTH (from, from_byte); - if (from == stop) goto lose; UPDATE_SYNTAX_TABLE_BACKWARD (from); if (!char_quoted (from, from_byte) && (c = FETCH_CHAR (from_byte), @@ -2414,19 +2414,13 @@ while (1) { if (from == stop) goto lose; - temp_pos = from_byte; - if (! NILP (current_buffer->enable_multibyte_characters)) - DEC_POS (temp_pos); - else - temp_pos--; - UPDATE_SYNTAX_TABLE_BACKWARD (from - 1); - if (!char_quoted (from - 1, temp_pos) - && stringterm == (c = FETCH_CHAR (temp_pos)) + DEC_BOTH (from, from_byte); + UPDATE_SYNTAX_TABLE_BACKWARD (from); + if (!char_quoted (from, from_byte) + && stringterm == (c = FETCH_CHAR (from_byte)) && SYNTAX_WITH_MULTIBYTE_CHECK (c) == Sstring) break; - DEC_BOTH (from, from_byte); } - DEC_BOTH (from, from_byte); if (!depth && sexpflag) goto done2; break; default: