Browse Source

format_changelog.py: learn about the ReleaseNotes format

Nick Mathewson 9 years ago
parent
commit
1405fbcc58
1 changed files with 13 additions and 1 deletions
  1. 13 1
      scripts/maint/format_changelog.py

+ 13 - 1
scripts/maint/format_changelog.py

@@ -156,10 +156,13 @@ TP_SECHEAD = 3
 TP_ITEMFIRST = 4
 TP_ITEMBODY = 5
 TP_END = 6
+TP_PREHEAD = 7
 
 def head_parser(line):
-    if re.match(r'^[A-Z]', line):
+    if re.match(r'^Changes in', line):
         return TP_MAINHEAD
+    elif re.match(r'^[A-Za-z]', line):
+        return TP_PREHEAD
     elif re.match(r'^  o ', line):
         return TP_SECHEAD
     elif re.match(r'^\s*$', line):
@@ -178,11 +181,14 @@ def body_parser(line):
         return TP_BLANK
     elif re.match(r'^Changes in', line):
         return TP_END
+    elif re.match(r'^\s+\S', line):
+        return TP_HEADTEXT
     else:
         print "Weird line %r"%line
 
 class ChangeLog(object):
     def __init__(self):
+        self.prehead = []
         self.mainhead = None
         self.headtext = []
         self.curgraf = None
@@ -197,6 +203,9 @@ class ChangeLog(object):
             assert not self.mainhead
             self.mainhead = line
 
+        elif tp == TP_PREHEAD:
+            self.prehead.append(line)
+
         elif tp == TP_HEADTEXT:
             if self.curgraf is None:
                 self.curgraf = []
@@ -250,6 +259,9 @@ class ChangeLog(object):
                               subsequent_indent=" "*indent2))
 
     def dump(self):
+        if self.prehead:
+            self.dumpGraf(self.prehead, 0)
+            print
         print self.mainhead
         for par in self.headtext:
             self.dumpGraf(par, 2)