docs: kdoc: rework process_export() slightly

Reorganize process_export() to eliminate duplicated code, don't look for
exports in states where we don't expect them, and don't bother with normal
state-machine processing if an export declaration has been found.

Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20250627184000.132291-6-corbet@lwn.net
This commit is contained in:
Jonathan Corbet
2025-06-27 12:39:57 -06:00
parent 0aa3675c26
commit d06c54fd3e

View File

@@ -1211,16 +1211,17 @@ class KernelDoc:
if export_symbol.search(line):
symbol = export_symbol.group(2)
for suffix in suffixes:
symbol = symbol.removesuffix(suffix)
function_set.add(symbol)
return
if export_symbol_ns.search(line):
elif export_symbol_ns.search(line):
symbol = export_symbol_ns.group(2)
for suffix in suffixes:
symbol = symbol.removesuffix(suffix)
function_set.add(symbol)
else:
return False
#
# Found an export, trim out any special suffixes
#
for suffix in suffixes:
symbol = symbol.removesuffix(suffix)
function_set.add(symbol)
return True
def process_normal(self, ln, line):
"""
@@ -1767,13 +1768,10 @@ class KernelDoc:
# it was read twice. Here, we use the already-existing
# loop to parse exported symbols as well.
#
# TODO: It should be noticed that not all states are
# needed here. On a future cleanup, process export only
# at the states that aren't handling comment markups.
self.process_export(export_table, line)
# Hand this line to the appropriate state handler
self.state_actions[self.state](self, ln, line)
if (self.state != state.NORMAL) or \
not self.process_export(export_table, line):
# Hand this line to the appropriate state handler
self.state_actions[self.state](self, ln, line)
except OSError:
self.config.log.error(f"Error: Cannot open file {self.fname}")