# HG changeset patch # User Karl Heuer # Date 917042263 0 # Node ID b69751ec40fe007b5b42c41a8ce13f25ff5266dd # Parent c83b0bc4e8b968f118723990fe677b1807db5b19 (scan_sexps_forward): Delete duplicate code to set prev_from_syntax, above start of main loop. At startinstring, check syntax when checking for a match. diff -r c83b0bc4e8b9 -r b69751ec40fe src/syntax.c --- a/src/syntax.c Fri Jan 22 19:59:22 1999 +0000 +++ b/src/syntax.c Fri Jan 22 21:57:43 1999 +0000 @@ -2406,9 +2406,11 @@ 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) { @@ -2578,10 +2580,15 @@ if (from >= end) goto done; c = FETCH_CHAR (from_byte); - if (nofence && c == state.instring) break; - /* Some compilers can't handle this inside the switch. */ temp = SYNTAX (c); + + /* Check TEMP here so that if the char has + a syntax-table property which says it is NOT + a string character, it does not end the string. */ + if (nofence && c == state.instring && temp == Sstring) + break; + switch (temp) { case Sstring_fence: