Bladeren bron

prevent multiple occurrences of TOKSEP in replace.c

ceriel 33 jaren geleden
bovenliggende
commit
6a4a3639af
2 gewijzigde bestanden met toevoegingen van 7 en 3 verwijderingen
  1. 1 1
      lang/cem/cpp.ansi/Makefile
  2. 6 2
      lang/cem/cpp.ansi/replace.c

+ 1 - 1
lang/cem/cpp.ansi/Makefile

@@ -26,7 +26,7 @@ TABGEN	= $(EMHOME)/bin/tabgen
 # What C compiler to use and how
 CC = cc
 COPTIONS = -O
-LDFLAGS = -i
+LDFLAGS =
 
 # What parser generator to use and how
 GEN = $(EMHOME)/bin/LLgen

+ 6 - 2
lang/cem/cpp.ansi/replace.c

@@ -297,10 +297,12 @@ actual(repl)
 		It keeps in account the opening and closing brackets,
 		preprocessor numbers, strings and character constants.
 	*/
-	register int ch;
+	register int ch = 0;
 	register int level = 0, nostashraw = 0;
+	int lastch;
 
 	while (1) {
+		lastch = ch;
 		ch = GetChar();
 
 		if (Unstacked) {
@@ -469,8 +471,10 @@ a_new_line:		ch = GetChar();
 				return ')';
 			}
 			stash(repl, ch, !nostashraw);
-		} else
+		} else {
+			if (lastch == TOKSEP && ch == TOKSEP) continue;
 			stash(repl, ch, !nostashraw);
+		}
 	}
 }