mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-07 10:29:52 +00:00
scripts/kernel-doc.py: fix handling of doc output check
The filtering logic was seeking for the DOC name to check for symbols, but such data is stored only inside a section. Add it to the output_declaration, as it is quicker/easier to check the declaration name than to check inside each section. While here, make sure that the output for both ReST and man after filtering will be similar to what kernel-doc Perl version does. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Link: https://lore.kernel.org/r/6d8b77af85295452c0191863ea1041f4195aeaaf.1744106242.git.mchehab+huawei@kernel.org
This commit is contained in:
committed by
Jonathan Corbet
parent
c3597ab27b
commit
408269ae35
@@ -122,13 +122,13 @@ class OutputFormat:
|
||||
if self.no_doc_sections:
|
||||
return False
|
||||
|
||||
if name in self.nosymbol:
|
||||
return False
|
||||
|
||||
if self.out_mode == self.OUTPUT_ALL:
|
||||
return True
|
||||
|
||||
if self.out_mode == self.OUTPUT_INCLUDE:
|
||||
if name in self.nosymbol:
|
||||
return False
|
||||
|
||||
if name in self.function_table:
|
||||
return True
|
||||
|
||||
@@ -154,15 +154,6 @@ class OutputFormat:
|
||||
|
||||
return False
|
||||
|
||||
def check_function(self, fname, name, args):
|
||||
return True
|
||||
|
||||
def check_enum(self, fname, name, args):
|
||||
return True
|
||||
|
||||
def check_typedef(self, fname, name, args):
|
||||
return True
|
||||
|
||||
def msg(self, fname, name, args):
|
||||
self.data = ""
|
||||
|
||||
@@ -306,7 +297,7 @@ class RestFormat(OutputFormat):
|
||||
for line in output.strip("\n").split("\n"):
|
||||
self.data += self.lineprefix + line + "\n"
|
||||
|
||||
def out_section(self, args, out_reference=False):
|
||||
def out_section(self, args, out_docblock=False):
|
||||
"""
|
||||
Outputs a block section.
|
||||
|
||||
@@ -325,7 +316,7 @@ class RestFormat(OutputFormat):
|
||||
continue
|
||||
|
||||
if not self.out_mode == self.OUTPUT_INCLUDE:
|
||||
if out_reference:
|
||||
if out_docblock:
|
||||
self.data += f".. _{section}:\n\n"
|
||||
|
||||
if not self.symbol:
|
||||
@@ -339,8 +330,7 @@ class RestFormat(OutputFormat):
|
||||
def out_doc(self, fname, name, args):
|
||||
if not self.check_doc(name):
|
||||
return
|
||||
|
||||
self.out_section(args, out_reference=True)
|
||||
self.out_section(args, out_docblock=True)
|
||||
|
||||
def out_function(self, fname, name, args):
|
||||
|
||||
@@ -583,8 +573,10 @@ class ManFormat(OutputFormat):
|
||||
|
||||
for line in contents.strip("\n").split("\n"):
|
||||
line = Re(r"^\s*").sub("", line)
|
||||
if not line:
|
||||
continue
|
||||
|
||||
if line and line[0] == ".":
|
||||
if line[0] == ".":
|
||||
self.data += "\\&" + line + "\n"
|
||||
else:
|
||||
self.data += line + "\n"
|
||||
@@ -594,6 +586,9 @@ class ManFormat(OutputFormat):
|
||||
sectionlist = args.get('sectionlist', [])
|
||||
sections = args.get('sections', {})
|
||||
|
||||
if not self.check_doc(name):
|
||||
return
|
||||
|
||||
self.data += f'.TH "{module}" 9 "{module}" "{self.man_date}" "API Manual" LINUX' + "\n"
|
||||
|
||||
for section in sectionlist:
|
||||
|
||||
Reference in New Issue
Block a user