]> git.eshelyaron.com Git - emacs.git/commitdiff
(scan_lists): Simplify backward string scan.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 13 Apr 2004 21:45:13 +0000 (21:45 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 13 Apr 2004 21:45:13 +0000 (21:45 +0000)
Fix off-by-one boundary check for string and comment fences.

src/syntax.c

index 30fc94267cdeeb79ad77c30faa1ff918d2b717dd..72f7a5c5209db2cac3a383ee817158146ec539bd 100644 (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: