All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Jonathan Corbet <corbet@lwn.net>
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Akira Yokosawa <akiyks@gmail.com>
Subject: Re: [PATCH 5/7] docs: kdoc: tighten up the array-of-pointers case
Date: Wed, 13 Aug 2025 00:53:34 +0200	[thread overview]
Message-ID: <20250813005334.31db20b0@foz.lan> (raw)
In-Reply-To: <20250812195748.124402-6-corbet@lwn.net>

On Tue, 12 Aug 2025 13:57:46 -0600
Jonathan Corbet <corbet@lwn.net> wrote:

> Simplify one gnarly regex and remove another altogether; add a comment
> describing what is going on.
> 
> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
> ---
>  scripts/lib/kdoc/kdoc_parser.py | 18 +++++++-----------
>  1 file changed, 7 insertions(+), 11 deletions(-)
> 
> diff --git a/scripts/lib/kdoc/kdoc_parser.py b/scripts/lib/kdoc/kdoc_parser.py
> index 36c4035343dc..d7fb79a64487 100644
> --- a/scripts/lib/kdoc/kdoc_parser.py
> +++ b/scripts/lib/kdoc/kdoc_parser.py
> @@ -527,23 +527,19 @@ class KernelDoc:
>                  dtype = KernRe(r'([^\(]+\(\*?)\s*' + re.escape(param)).sub(r'\1', arg)
>                  self.push_parameter(ln, decl_type, param, dtype,
>                                      arg, declaration_name)
> -
> +            #
> +            # The array-of-pointers case.  Dig the parameter name out from the middle
> +            # of the declaration.
> +            #
>              elif KernRe(r'\(.+\)\s*\[').search(arg):
> -                # Array-of-pointers
> -
> -                arg = arg.replace('#', ',')

Hmm... if I'm not mistaken, there is(was?) a previous code that replaced
commas by "#". Such statement is needed to catch some corner case.

This like here is(was?) needed to restore the original arg string.

> -                r = KernRe(r'[^\(]+\(\s*\*\s*([\w\[\].]*?)\s*(\s*\[\s*[\w]+\s*\]\s*)*\)')
> +                r = KernRe(r'[^\(]+\(\s*\*\s*' r'([\w.]*?)' r'\s*(\[\s*\w+\s*\]\s*)*\)')

As mentioned on patch 6/7, IMHO doing concats like that at the same line
IMO makes it harder to understand. This works best:

                r = KernRe(r'[^\(]+\(\s*\*\s*'
			   r'([\w.]*?)'
			   r'\s*(\[\s*\w+\s*\]\s*)*\)')


>                  if r.match(arg):
>                      param = r.group(1)
>                  else:
>                      self.emit_msg(ln, f"Invalid param: {arg}")
>                      param = arg
> -
> -                dtype = KernRe(r'([^\(]+\(\*?)\s*' + re.escape(param)).sub(r'\1', arg)
> -
> -                self.push_parameter(ln, decl_type, param, dtype,
> -                                    arg, declaration_name)
> -
> +                dtype = arg.replace(param, '')
> +                self.push_parameter(ln, decl_type, param, dtype, arg, declaration_name)
>              elif arg:
>                  #
>                  # Clean up extraneous spaces and split the string at commas; the first



Thanks,
Mauro

  reply	other threads:[~2025-08-12 22:53 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-12 19:57 [PATCH 0/7] docs: kdoc: tidy up create_parameter_list() somewhat Jonathan Corbet
2025-08-12 19:57 ` [PATCH 1/7] docs: kdoc: remove dead code Jonathan Corbet
2025-08-12 22:43   ` Mauro Carvalho Chehab
2025-08-12 19:57 ` [PATCH 2/7] docs: kdoc: tidy up space removal in create_parameter_list() Jonathan Corbet
2025-08-12 22:44   ` Mauro Carvalho Chehab
2025-08-12 19:57 ` [PATCH 3/7] docs: kdoc: clean up the create_parameter_list() "first arg" logic Jonathan Corbet
2025-08-12 23:17   ` Mauro Carvalho Chehab
2025-08-13 15:46     ` Jonathan Corbet
2025-08-12 19:57 ` [PATCH 4/7] docs: kdoc: add a couple more comments in create_parameter_list() Jonathan Corbet
2025-08-12 22:47   ` Mauro Carvalho Chehab
2025-08-12 19:57 ` [PATCH 5/7] docs: kdoc: tighten up the array-of-pointers case Jonathan Corbet
2025-08-12 22:53   ` Mauro Carvalho Chehab [this message]
2025-08-13 15:16     ` Jonathan Corbet
2025-08-12 19:57 ` [PATCH 6/7] docs: kdoc: tighten up the pointer-to-function case Jonathan Corbet
2025-08-12 22:39   ` Mauro Carvalho Chehab
2025-08-12 23:22     ` Jonathan Corbet
2025-08-13  9:02       ` Mauro Carvalho Chehab
2025-08-12 19:57 ` [PATCH 7/7] docs: kdoc: remove redundant comment stripping Jonathan Corbet
2025-08-12 23:19   ` Mauro Carvalho Chehab

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=20250813005334.31db20b0@foz.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=akiyks@gmail.com \
    --cc=corbet@lwn.net \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.