From: Larry Hastings Date: Sun, 27 Jul 2014 14:22:20 +0000 (+0200) Subject: Argument Clinic bugfix: Don't let the C preprocessor "Monitor" see lines X-Git-Tag: v3.5.0a1~1179 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e1b82531b32295604eacd27faeb87431c426bd52;p=thirdparty%2FPython%2Fcpython.git 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). --- diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py index 93e8f5a6b9ad..d15318ef9264 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: