From 06462d79276401e7a03c64e983eb69a30e6bf481 Mon Sep 17 00:00:00 2001 From: Radostin Stoyanov Date: Tue, 20 Mar 2018 06:49:02 +0000 Subject: [PATCH] apibuild: Simplify parseTypeComment() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Improve readability and reduce complexity the method parseTypeComment(). Reviewed-by: Daniel P. Berrangé Signed-off-by: Radostin Stoyanov --- docs/apibuild.py | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/docs/apibuild.py b/docs/apibuild.py index d5707d5d1c..06d556baea 100755 --- a/docs/apibuild.py +++ b/docs/apibuild.py @@ -756,48 +756,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 # -- GitLab