docs: sphinx-build-wrapper: better handle troff .TH markups

Using a regular expression to match .TH is problematic, as it
doesn't handle well quotation marks.

Use shlex instead.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <9436806316d33aaf68625c00ce068463d3917660.1772810752.git.mchehab+huawei@kernel.org>
This commit is contained in:
Mauro Carvalho Chehab 2026-03-06 16:45:39 +01:00 committed by Jonathan Corbet
parent 0d3ab0e4bb
commit 5828d35647

View File

@ -576,7 +576,6 @@ class SphinxBuilder:
"""
re_kernel_doc = re.compile(r"^\.\.\s+kernel-doc::\s*(\S+)")
re_man = re.compile(r'^\.TH "[^"]*" (\d+) "([^"]*)"')
if docs_dir == src_dir:
#
@ -616,8 +615,7 @@ class SphinxBuilder:
fp = None
try:
for line in result.stdout.split("\n"):
match = re_man.match(line)
if not match:
if not line.startswith(".TH"):
if fp:
fp.write(line + '\n')
continue
@ -625,7 +623,9 @@ class SphinxBuilder:
if fp:
fp.close()
fname = f"{output_dir}/{match.group(2)}.{match.group(1)}"
# Use shlex here, as it handles well parameters with commas
args = shlex.split(line)
fname = f"{output_dir}/{args[3]}.{args[2]}"
if self.verbose:
print(f"Creating {fname}")