codegen: Do not add extra paragraph elements while parsing

When parsing a comment we're adding <para> elements ourselves, but the
DocBook generator already wraps any block of text that does not start
with a <para> element with one.
This commit is contained in:
Emmanuele Bassi 2022-01-20 15:15:49 +00:00
parent c6a9113da6
commit 5013d08315
2 changed files with 16 additions and 9 deletions

View File

@ -345,9 +345,17 @@ class DocbookCodeGenerator:
def expand_paras(self, s, expandParamsAndConstants): def expand_paras(self, s, expandParamsAndConstants):
s = self.expand(s, expandParamsAndConstants).strip() s = self.expand(s, expandParamsAndConstants).strip()
res = []
if not s.startswith("<para"): if not s.startswith("<para"):
s = "<para>%s</para>" % s res.append("<para>")
return s for line in s.split("\n"):
line = line.strip()
if not line:
line = "</para><para>"
res.append(line)
if not s.endswith("</para>"):
res.append("</para>")
return "\n".join(res)
def generate_expand_dicts(self): def generate_expand_dicts(self):
self.expand_member_dict = {} self.expand_member_dict = {}

View File

@ -85,7 +85,7 @@ class DBusXMLParser:
symbol = line[0:colon_index] symbol = line[0:colon_index]
rest_of_line = line[colon_index + 2 :].strip() rest_of_line = line[colon_index + 2 :].strip()
if len(rest_of_line) > 0: if len(rest_of_line) > 0:
body += "<para>" + rest_of_line + "</para>" body += f"{rest_of_line}\n"
comment_state = DBusXMLParser.COMMENT_STATE_PARAMS comment_state = DBusXMLParser.COMMENT_STATE_PARAMS
elif comment_state == DBusXMLParser.COMMENT_STATE_PARAMS: elif comment_state == DBusXMLParser.COMMENT_STATE_PARAMS:
if line.startswith("@"): if line.startswith("@"):
@ -93,9 +93,9 @@ class DBusXMLParser:
if colon_index == -1: if colon_index == -1:
comment_state = DBusXMLParser.COMMENT_STATE_BODY comment_state = DBusXMLParser.COMMENT_STATE_BODY
if not in_para: if not in_para:
body += "<para>" body += "\n"
in_para = True in_para = True
body += orig_line + "\n" body += f"{orig_line}\n"
else: else:
param = line[1:colon_index] param = line[1:colon_index]
docs = line[colon_index + 2 :] docs = line[colon_index + 2 :]
@ -104,21 +104,20 @@ class DBusXMLParser:
comment_state = DBusXMLParser.COMMENT_STATE_BODY comment_state = DBusXMLParser.COMMENT_STATE_BODY
if len(line) > 0: if len(line) > 0:
if not in_para: if not in_para:
body += "<para>" body += "\n"
in_para = True in_para = True
body += orig_line + "\n" body += orig_line + "\n"
elif comment_state == DBusXMLParser.COMMENT_STATE_BODY: elif comment_state == DBusXMLParser.COMMENT_STATE_BODY:
if len(line) > 0: if len(line) > 0:
if not in_para: if not in_para:
body += "<para>"
in_para = True in_para = True
body += orig_line + "\n" body += orig_line + "\n"
else: else:
if in_para: if in_para:
body += "</para>" body += "\n"
in_para = False in_para = False
if in_para: if in_para:
body += "</para>" body += "\n"
if symbol != "": if symbol != "":
self.doc_comment_last_symbol = symbol self.doc_comment_last_symbol = symbol