From e1b82531b32295604eacd27faeb87431c426bd52 Mon Sep 17 00:00:00 2001 From: Larry Hastings Date: Sun, 27 Jul 2014 16:22:20 +0200 Subject: [PATCH] Argument Clinic bugfix: Don't let the C preprocessor "Monitor" see lines that we are scanning for the output marker. If we don't find it, we will scan them again, so it sees them twice, and it can get confused (like thinking we're still in a comment). --- Tools/clinic/clinic.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py index 93e8f5a6b9a..d15318ef926 100755 --- a/Tools/clinic/clinic.py +++ b/Tools/clinic/clinic.py @@ -1252,10 +1252,11 @@ class BlockParser: match = self.start_re.match(line.lstrip()) return match.group(1) if match else None - def _line(self): + def _line(self, lookahead=False): self.line_number += 1 line = self.input.pop() - self.language.parse_line(line) + if not lookahead: + self.language.parse_line(line) return line def parse_verbatim_block(self): @@ -1311,7 +1312,7 @@ class BlockParser: output_add, output_output = text_accumulator() arguments = None while self.input: - line = self._line() + line = self._line(lookahead=True) match = checksum_re.match(line.lstrip()) arguments = match.group(1) if match else None if arguments: