diff options
| author | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2026-03-06 16:45:48 +0100 |
|---|---|---|
| committer | Jonathan Corbet <corbet@lwn.net> | 2026-03-09 10:34:38 -0600 |
| commit | cde7c96f88a0fe9ed53e8bb57147b19a725cf097 (patch) | |
| tree | ded4f0bcbb5362a0260e35e2bb9a62b894976cde /tools/lib/python/kdoc | |
| parent | e4dadcf510da846f32aaaad5d5988890cbf6033d (diff) | |
| download | lwn-cde7c96f88a0fe9ed53e8bb57147b19a725cf097.tar.gz lwn-cde7c96f88a0fe9ed53e8bb57147b19a725cf097.zip | |
docs: kdoc_output: Change the logic to handle man highlight
The code inside ManFormat code to output man pages is too simple:
it produces very bad results when the content has tables or code
blocks.
Change the way lines are parsed there to allow adding extra
logic to handle some special cases.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <6ae2301a40b3fcb4381dd9dda8c75d14f9616b46.1772810752.git.mchehab+huawei@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc')
| -rw-r--r-- | tools/lib/python/kdoc/kdoc_output.py | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/tools/lib/python/kdoc/kdoc_output.py b/tools/lib/python/kdoc/kdoc_output.py index c25f80a39cdc..9caffe0d9753 100644 --- a/tools/lib/python/kdoc/kdoc_output.py +++ b/tools/lib/python/kdoc/kdoc_output.py @@ -755,15 +755,23 @@ class ManFormat(OutputFormat): if isinstance(contents, list): contents = "\n".join(contents) - for line in contents.strip("\n").split("\n"): - line = KernRe(r"^\s*").sub("", line) - if not line: - continue + lines = contents.strip("\n").split("\n") + i = 0 - if line[0] == ".": - self.data += "\\&" + line + "\n" - else: - self.data += line + "\n" + while i < len(lines): + org_line = lines[i] + + line = KernRe(r"^\s*").sub("", org_line) + + if line: + if line[0] == ".": + self.data += "\\&" + line + "\n" + i += 1 + continue + + i += 1 + + self.data += line + "\n" def out_doc(self, fname, name, args): if not self.check_doc(name, args): |
