From: Hans Verkuil <hverkuil+cisco@kernel.org>
To: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
Linux Doc Mailing List <linux-doc@vger.kernel.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org
Subject: Re: [PATCH 02/23] tools: docs: parse_data_structs.py: output a line number
Date: Mon, 20 Oct 2025 12:46:50 +0200 [thread overview]
Message-ID: <1507fe55-d756-46bb-abf1-0d1fb7f9bee0@kernel.org> (raw)
In-Reply-To: <dcffa6844dede00052f5fb851a857991468f22b5.1759329363.git.mchehab+huawei@kernel.org>
On 01/10/2025 16:49, Mauro Carvalho Chehab wrote:
Missing commit message!
I'm less concerned about the missing message (it's clear what is happening here),
than I am about the fact that checkpatch wasn't run.
Regards,
Hans
> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> ---
> tools/docs/lib/parse_data_structs.py | 29 ++++++++++++++--------------
> 1 file changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/tools/docs/lib/parse_data_structs.py b/tools/docs/lib/parse_data_structs.py
> index 6c868f84f029..d28471a045f1 100755
> --- a/tools/docs/lib/parse_data_structs.py
> +++ b/tools/docs/lib/parse_data_structs.py
> @@ -143,7 +143,7 @@ class ParseDataStructs:
> for symbol_type in self.DEF_SYMBOL_TYPES:
> self.symbols[symbol_type] = {}
>
> - def store_type(self, symbol_type: str, symbol: str,
> + def store_type(self, ln, symbol_type: str, symbol: str,
> ref_name: str = None, replace_underscores: bool = True):
> """
> Stores a new symbol at self.symbols under symbol_type.
> @@ -172,7 +172,7 @@ class ParseDataStructs:
> else:
> ref_link = symbol
>
> - self.symbols[symbol_type][symbol] = f"{prefix}{ref_link}{suffix}"
> + self.symbols[symbol_type][symbol] = (f"{prefix}{ref_link}{suffix}", ln)
>
> def store_line(self, line):
> """Stores a line at self.data, properly indented"""
> @@ -240,20 +240,20 @@ class ParseDataStructs:
> if is_enum:
> match = re.match(r"^\s*([_\w][\w\d_]+)\s*[\,=]?", line)
> if match:
> - self.store_type("symbol", match.group(1))
> + self.store_type(line_no, "symbol", match.group(1))
> if "}" in line:
> is_enum = False
> continue
>
> match = re.match(r"^\s*#\s*define\s+([\w_]+)\s+_IO", line)
> if match:
> - self.store_type("ioctl", match.group(1),
> + self.store_type(line_no, "ioctl", match.group(1),
> replace_underscores=False)
> continue
>
> match = re.match(r"^\s*#\s*define\s+([\w_]+)(\s+|$)", line)
> if match:
> - self.store_type("define", match.group(1))
> + self.store_type(line_no, "define", match.group(1))
> continue
>
> match = re.match(r"^\s*typedef\s+([_\w][\w\d_]+)\s+(.*)\s+([_\w][\w\d_]+);",
> @@ -261,20 +261,20 @@ class ParseDataStructs:
> if match:
> name = match.group(2).strip()
> symbol = match.group(3)
> - self.store_type("typedef", symbol, ref_name=name)
> + self.store_type(line_no, "typedef", symbol, ref_name=name)
> continue
>
> for re_enum in self.RE_ENUMS:
> match = re_enum.match(line)
> if match:
> - self.store_type("enum", match.group(1))
> + self.store_type(line_no, "enum", match.group(1))
> is_enum = True
> break
>
> for re_struct in self.RE_STRUCTS:
> match = re_struct.match(line)
> if match:
> - self.store_type("struct", match.group(1))
> + self.store_type(line_no, "struct", match.group(1))
> break
>
> def process_exceptions(self, fname: str):
> @@ -342,7 +342,8 @@ class ParseDataStructs:
>
> # Change self.symbols to use the replacement rule
> if old in self.symbols[c_type]:
> - self.symbols[c_type][old] = new_ref
> + (_, ln) = self.symbols[c_type][old]
> + self.symbols[c_type][old] = (new_ref, ln)
> else:
> print(f"{name}:{ln}: Warning: can't find {old} {c_type}")
>
> @@ -360,8 +361,8 @@ class ParseDataStructs:
>
> print(f"{c_type}:")
>
> - for symbol, ref in sorted(refs.items()):
> - print(f" {symbol} -> {ref}")
> + for symbol, (ref, ln) in sorted(refs.items()):
> + print(f" #{ln:<5d} {symbol} -> {ref}")
>
> print()
>
> @@ -384,7 +385,7 @@ class ParseDataStructs:
>
> # Process all reference types
> for ref_dict in self.symbols.values():
> - for symbol, replacement in ref_dict.items():
> + for symbol, (replacement, _) in ref_dict.items():
> symbol = re.escape(re.sub(r"([\_\`\*\<\>\&\\\\:\/])", r"\\\1", symbol))
> text = re.sub(fr'{start_delim}{symbol}{end_delim}',
> fr'\1{replacement}\2', text)
> @@ -420,8 +421,8 @@ class ParseDataStructs:
> text.append("")
>
> # Sort symbols alphabetically
> - for symbol, ref in sorted(refs.items()):
> - text.append(f"* :{ref}:")
> + for symbol, (ref, ln) in sorted(refs.items()):
> + text.append(f"* {ref}: line #{ln}")
>
> text.append("") # Add empty line between categories
>
next prev parent reply other threads:[~2025-10-20 10:46 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-01 14:49 [PATCH 00/23] Fix media uAPI cross references Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 01/23] tools: docs: parse_data_structs.py: drop contents header Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 02/23] tools: docs: parse_data_structs.py: output a line number Mauro Carvalho Chehab
2025-10-20 10:46 ` Hans Verkuil [this message]
2025-10-20 11:56 ` Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 03/23] docs: kernel_include.py: fix line numbers for TOC Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 04/23] docs: kernel_include.py: propose alternatives Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 05/23] tools: docs: parse_data_structs: make process_exceptions two stages Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 06/23] tools: docs: parse_data_structs.py: get rid of process_exceptions() Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 07/23] tools: docs: parse_data_structs.py: add namespace support Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 08/23] tools: docs: parse_data_structs.py: accept more reftypes Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 09/23] docs: media: dvb: use TOC instead of file contents at headers Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 10/23] docs: media: dvb: enable warnings for most headers Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 11/23] docs: media: rc: use TOC instead of file contents for LIRC header Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 12/23] docs: media: mediactl: use TOC instead of file contents Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 13/23] docs: kernel_include.py: use get_close_matches() to propose alternatives Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 14/23] docs: media: add missing c namespace to V4L headers Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 15/23] docs: media: videodev2.h.rst.exceptions: fix namespace on refs Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 16/23] media: docs: add a missing reference for VIDIOC_QUERY_CTRL Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 17/23] media: docs: videodev2.h.rst.exceptions: ignore struct __kernel_v4l2_timeval Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 18/23] media: docs: add some C domain missing references Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 19/23] docs: cec: cec.h.rst.exceptions: fix broken references from cec.h Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 20/23] docs: cec: show broken xrefs and show TOC instead of cec.h content Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 21/23] docs: media: dmx_types: place kerneldoc at the right namespace Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 22/23] docs: media: dvb: headers: warn about broken cross references Mauro Carvalho Chehab
2025-10-01 14:49 ` [PATCH 23/23] docs: media: dvb: fix dmx.h.rst.exceptions Mauro Carvalho Chehab
2025-10-17 20:08 ` [PATCH 00/23] Fix media uAPI cross references Jonathan Corbet
2025-10-18 10:53 ` Mauro Carvalho Chehab
2025-10-20 10:51 ` Hans Verkuil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1507fe55-d756-46bb-abf1-0d1fb7f9bee0@kernel.org \
--to=hverkuil+cisco@kernel.org \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab+huawei@kernel.org \
--cc=mchehab@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).