summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2017-03-15 13:57:04 +0100
committerMarkus Armbruster <armbru@redhat.com>2017-03-16 07:13:02 +0100
commit860e87786123368a97c879b6e7459b3f519bbc97 (patch)
treebebab38694db21693e7f494cf75147b2034f20f5 /scripts
parent069fb5b250c8f90caeb84dcc003e2147ccc4a782 (diff)
downloadqemu-860e87786123368a97c879b6e7459b3f519bbc97.tar.gz
qapi: Conjure up QAPIDoc.ArgSection for undocumented members
qapi2texi.py already conjures up ArgSections for undocumented enumeration values, in texi_enum. Drop that, and conjure them up for all kinds of "arguments" (enumeration values, object and alternate type members) in qapi.py instead. Take care to keep generated documentation exactly the same for now. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <1489582656-31133-16-git-send-email-armbru@redhat.com>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/qapi.py5
-rwxr-xr-xscripts/qapi2texi.py31
2 files changed, 18 insertions, 18 deletions
diff --git a/scripts/qapi.py b/scripts/qapi.py
index c1e0bed087..f4c8eac8f6 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -224,9 +224,8 @@ class QAPIDoc(object):
def connect_member(self, member):
if member.name not in self.args:
# Undocumented TODO outlaw
- pass
- else:
- self.args[member.name].connect(member)
+ self.args[member.name] = QAPIDoc.ArgSection(member.name)
+ self.args[member.name].connect(member)
class QAPISchemaParser(object):
diff --git a/scripts/qapi2texi.py b/scripts/qapi2texi.py
index 0aaf45c98c..299dcf92d8 100755
--- a/scripts/qapi2texi.py
+++ b/scripts/qapi2texi.py
@@ -123,7 +123,7 @@ def texi_format(doc):
return "\n".join(lines)
-def texi_body(doc):
+def texi_body(doc, only_documented=False):
"""
Format the body of a symbol documentation:
- main body
@@ -131,17 +131,21 @@ def texi_body(doc):
- followed by "Returns/Notes/Since/Example" sections
"""
body = texi_format(str(doc.body)) + "\n"
- if doc.args:
+
+ args = ''
+ for name, section in doc.args.iteritems():
+ if not section.content and not only_documented:
+ continue # Undocumented TODO require doc and drop
+ desc = str(section)
+ opt = ''
+ if section.optional:
+ desc = re.sub(r'^ *#optional *\n?|\n? *#optional *$|#optional',
+ '', desc)
+ opt = ' (optional)'
+ args += "@item @code{'%s'}%s\n%s\n" % (name, opt, texi_format(desc))
+ if args:
body += "@table @asis\n"
- for arg, section in doc.args.iteritems():
- desc = str(section)
- opt = ''
- if section.optional:
- desc = re.sub(r'^ *#optional *\n?|\n? *#optional *$|#optional',
- '', desc)
- opt = ' (optional)'
- body += "@item @code{'%s'}%s\n%s\n" % (arg, opt,
- texi_format(desc))
+ body += args
body += "@end table\n"
for section in doc.sections:
@@ -183,10 +187,7 @@ def texi_union(expr, doc):
def texi_enum(expr, doc):
"""Format an enum to texi"""
- for i in expr['data']:
- if i not in doc.args:
- doc.args[i] = qapi.QAPIDoc.ArgSection(i)
- body = texi_body(doc)
+ body = texi_body(doc, True)
return TYPE_FMT(type="Enum",
name=doc.symbol,
body=body)