1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-25 15:00:45 -08:00

(scan_lists): Simplify backward string scan.

Fix off-by-one boundary check for string and comment fences.
This commit is contained in:
Stefan Monnier 2004-04-13 21:45:13 +00:00
parent cb9d4a9f65
commit d0abdf7e83

View file

@ -2398,8 +2398,8 @@ scan_lists (from, count, depth, sexpflag)
case Sstring_fence:
while (1)
{
DEC_BOTH (from, from_byte);
if (from == stop) goto lose;
DEC_BOTH (from, from_byte);
UPDATE_SYNTAX_TABLE_BACKWARD (from);
if (!char_quoted (from, from_byte)
&& (c = FETCH_CHAR (from_byte),
@ -2414,19 +2414,13 @@ scan_lists (from, count, depth, sexpflag)
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: