summaryrefslogtreecommitdiff
path: root/tools/lib/python/kdoc
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2026-03-02 17:40:57 +0100
committerJonathan Corbet <corbet@lwn.net>2026-03-03 10:47:25 -0700
commit134468b0e2043efec4bd25dc6bcef238358a8111 (patch)
tree9baa984a0527818e6232b6f9f3cd561ab293e8bb /tools/lib/python/kdoc
parent4ff59bdd93f0e80b5014977502d082c778f96304 (diff)
docs: kdoc_re: handle strings and escape chars on NextMatch
The logic inside NestedMatch currently doesn't consider that function arguments may have chars and strings, which may eventually contain delimiters. Add logic to handle strings and escape characters on them. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Message-ID: <ac25335bc2d09649e17d1c86c17d3f8f2e8ec27c.1772469446.git.mchehab+huawei@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc')
-rw-r--r--tools/lib/python/kdoc/kdoc_re.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/lib/python/kdoc/kdoc_re.py b/tools/lib/python/kdoc/kdoc_re.py
index 664c04c8cc9f2..0a7f12616f9fc 100644
--- a/tools/lib/python/kdoc/kdoc_re.py
+++ b/tools/lib/python/kdoc/kdoc_re.py
@@ -216,6 +216,8 @@ class NestedMatch:
for match_re in regex.finditer(line):
start = match_re.start()
offset = match_re.end()
+ string_char = None
+ escape = False
d = line[offset - 1]
if d not in self.DELIMITER_PAIRS:
@@ -229,6 +231,22 @@ class NestedMatch:
d = line[pos]
+ if escape:
+ escape = False
+ continue
+
+ if string_char:
+ if d == '\\':
+ escape = True
+ elif d == string_char:
+ string_char = None
+
+ continue
+
+ if d in ('"', "'"):
+ string_char = d
+ continue
+
if d in self.DELIMITER_PAIRS:
end = self.DELIMITER_PAIRS[d]