]> granicus.if.org Git - python/commitdiff
Argument Clinic bugfix: Don't let the C preprocessor "Monitor" see lines
authorLarry Hastings <larry@hastings.org>
Sun, 27 Jul 2014 14:22:20 +0000 (16:22 +0200)
committerLarry Hastings <larry@hastings.org>
Sun, 27 Jul 2014 14:22:20 +0000 (16:22 +0200)
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

index 93e8f5a6b9ada8197aa63d2d109f0cf1124ff648..d15318ef9264d990adc37ea4b569ae0426ebeb3d 100755 (executable)
@@ -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: