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 @@ def is_start_line(self, line): 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 @@ def is_stop_line(line): 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: