changeset 24148:b69751ec40fe

(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.
author Karl Heuer <kwzh@gnu.org>
date Fri, 22 Jan 1999 21:57:43 +0000
parents c83b0bc4e8b9
children 123fd862314c
files src/syntax.c
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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: