]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
docs: restrict the set of characters for info keys
authorClaudio Bley <cbley@av-test.de>
Fri, 11 Jan 2013 10:39:19 +0000 (11:39 +0100)
committerClaudio Bley <cbley@av-test.de>
Mon, 14 Jan 2013 08:18:43 +0000 (09:18 +0100)
When parsing the top level comment of a file, apibuild.py used
to split on any ':' character of a line regarding the first part
as a key for a setting, e.g. "Summary". The second part would then
be assigned as the value for that key.

This means you could not use a ':' character inside those comments
without ill effects.

Now, a key must consist solely of alphanumeric characters, '_' or '.'.

docs/apibuild.py

index 63b21e1f7b74d2baa2192e8f21729fc4b12ed772..e6a45ec47404111bb7717b136741dfb6f1d61673 100755 (executable)
@@ -10,6 +10,7 @@
 import os, sys
 import string
 import glob
+import re
 
 quiet=True
 warnings=0
@@ -655,20 +656,17 @@ class CParser:
         item = None
         for line in lines:
             line = line.lstrip().lstrip('*').lstrip()
-            try:
-                (it, line) = string.split(line, ":", 1)
-                item = it
-                line = line.lstrip()
+
+            m = re.match('([_.a-zA-Z0-9]+):(.*)', line)
+            if m:
+                item = m.group(1)
+                line = m.group(2).lstrip()
+
+            if item:
                 if res.has_key(item):
                     res[item] = res[item] + " " + line
                 else:
                     res[item] = line
-            except:
-                if item != None:
-                    if res.has_key(item):
-                        res[item] = res[item] + " " + line
-                    else:
-                        res[item] = line
         self.index.info = res
 
     def strip_lead_star(self, line):