summaryrefslogtreecommitdiff
path: root/scripts/lib/kdoc/kdoc_parser.py
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2025-06-25 17:19:40 -0600
committerJonathan Corbet <corbet@lwn.net>2025-06-25 17:44:56 -0600
commit473734e086ccdd50af9d0abf81c0b70085dcf625 (patch)
tree3e0fa2be3b287c03ca6a36005a09dfe386e2a9ce /scripts/lib/kdoc/kdoc_parser.py
parentf61e404f5b6124905025dbda58afa1fd3171100f (diff)
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. Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'scripts/lib/kdoc/kdoc_parser.py')
-rw-r--r--scripts/lib/kdoc/kdoc_parser.py30
1 files changed, 14 insertions, 16 deletions
diff --git a/scripts/lib/kdoc/kdoc_parser.py b/scripts/lib/kdoc/kdoc_parser.py
index 224dea5f7c2e..734b908579c3 100644
--- a/scripts/lib/kdoc/kdoc_parser.py
+++ b/scripts/lib/kdoc/kdoc_parser.py
@@ -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}")