[virt-tools-list] [libvirt] [PATCH 18/22] apibuild: Simplify parseTypeComment()

Radostin Stoyanov rstoyanov1 at gmail.com
Sat Mar 17 13:48:54 UTC 2018


Improve readability and reduce complexity the method
parseTypeComment().

Signed-off-by: Radostin Stoyanov <rstoyanov1 at gmail.com>
---
 docs/apibuild.py | 42 ++++++++++++++++--------------------------
 1 file changed, 16 insertions(+), 26 deletions(-)

diff --git a/docs/apibuild.py b/docs/apibuild.py
index b914b1dce..fd1ee7958 100755
--- a/docs/apibuild.py
+++ b/docs/apibuild.py
@@ -757,48 +757,38 @@ class CParser:
     #
     # Parse a comment block associate to a typedef
     #
-    def parseTypeComment(self, name, quiet=0):
+    def parseTypeComment(self, name, quiet=False):
         if name[0:2] == '__':
-            quiet = 1
-
-        args = []
-        desc = ""
+            quiet = True
 
         if self.comment is None:
             if not quiet:
                 self.warning("Missing comment for type %s" % (name))
-            return((args, desc))
-        if self.comment[0] != '*':
+            return None
+        if not self.comment.startswith('*'):
             if not quiet:
                 self.warning("Missing * in type comment for %s" % (name))
-            return((args, desc))
+            return None
+
         lines = self.comment.split('\n')
-        if lines[0] == '*':
-            del lines[0]
+        # Remove lines that contain only single asterisk
+        lines[:] = [line for line in lines if line.strip() != '*']
+
         if lines[0] != "* %s:" % (name):
             if not quiet:
                 self.warning("Misformatted type comment for %s" % (name))
                 self.warning("  Expecting '* %s:' got '%s'" % (name, lines[0]))
-            return((args, desc))
+            return None
         del lines[0]
-        while len(lines) > 0 and lines[0] == '*':
-            del lines[0]
-        desc = ""
-        while len(lines) > 0:
-            l = lines[0]
-            while len(l) > 0 and l[0] == '*':
-                l = l[1:]
-            l = l.strip()
-            desc = desc + " " + l
-            del lines[0]
 
-        desc = desc.strip()
+        # Concatenate all remaining lines by striping leading asterisks
+        desc = " ".join([line.lstrip("*").strip() for line in lines]).strip()
 
-        if quiet == 0:
-            if desc == "":
-                self.warning("Type comment for %s lack description of the macro" % (name))
+        if not (quiet or desc):
+            self.warning("Type comment for %s lack description of the macro"
+                         % (name))
 
-        return(desc)
+        return desc
     #
     # Parse a comment block associate to a macro
     #
-- 
2.14.3




More information about the virt-tools-list mailing list