Re: [PATCH 1/1] docs: kernel-doc: fix parsing of function pointers
From: Jonathan Corbet
Date: Mon Sep 03 2018 - 15:00:47 EST
On Mon, 3 Sep 2018 20:41:53 +0200
Heinrich Schuchardt <xypron.glpk@xxxxxx> wrote:
> The same script kernel-doc is used by the U-Boot project.
Interesting, I didn't know that. Please pass on my condolences :)
>
> kernel-doc fails to parse function definitions like the one below
>
> efi_status_t efi_create_event(uint32_t type, efi_uintn_t notify_tpl,
> void (EFIAPI *notify_function) (
> struct efi_event *event,
> void *context),
> void *notify_context, efi_guid_t *group,
> struct efi_event **event)
> {
>
> due to the "EFIAPI" attribute preceding the function name.
This is a good description of the problem; a proper changelog should
really say what the patch *does* about the problem too. Especially
since...
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@xxxxxx>
> ---
> scripts/kernel-doc | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/kernel-doc b/scripts/kernel-doc
> index 31a34ced55a3..597e3223b791 100755
> --- a/scripts/kernel-doc
> +++ b/scripts/kernel-doc
> @@ -1381,7 +1381,7 @@ sub create_parameterlist($$$$) {
> } elsif ($arg =~ m/\(.+\)\s*\(/) {
> # pointer-to-function
> $arg =~ tr/#/,/;
> - $arg =~ m/[^\(]+\(\*?\s*([\w\.]*)\s*\)/;
> + $arg =~ m/[^\(]+\([\w\s]*\*?\s*([\w\.]*)\s*\)/;
The meaning of this change doesn't just jump off the screen, even for
folks who are accustomed to reading regexes. It would be nice to explain
what is actually being changed and what the expected new behavior is. It
appears to be consuming any normal text/white space prior to the optional
"*". Are you sure it doesn't overshoot and consume too much if the *
isn't there?
Thanks,
jon