Re: [PATCH 2/2] kernel-doc: Handle function typedefs without asterisks

From: Jonathan Corbet
Date: Fri Nov 13 2020 - 17:21:39 EST


On Fri, 30 Oct 2020 15:47:13 +0100
Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:

> From: Eduardo Habkost <ehabkost@xxxxxxxxxx>
>
> Example of typedef that was not parsed by kernel-doc:
>
> typedef void (ObjectUnparent)(Object *obj);
>
> Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx>
> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>

So as you've undoubtedly noticed, reading those kernel-doc regexes is ... a
wee bit on the painful side. Trying to compare two of them in a patch to
figure out what you have done is even worse. I suspect we want these
patches, but can you please supply a changelog that describes the change?

> ---
> scripts/kernel-doc | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/kernel-doc b/scripts/kernel-doc
> index 5b5caa7642f7..1a9c918aa653 100755
> --- a/scripts/kernel-doc
> +++ b/scripts/kernel-doc
> @@ -1302,7 +1302,7 @@ sub dump_typedef($$) {
> $x =~ s@/\*.*?\*/@@gos; # strip comments.
>
> # Parse function prototypes
> - if ($x =~ /typedef\s+(\w+\s*\**)\s*\(\*\s*(\w\S+)\s*\)\s*\((.*)\);/ ||
> + if ($x =~ /typedef\s+(\w+\s*\**)\s*\(\*?\s*(\w\S+)\s*\)\s*\((.*)\);/ ||

Here it appears that you are making the "*" before the function-pointer
name optional, right? It really would help to say so in the changelog.

This is true for the other patch as well.

> $x =~ /typedef\s+(\w+\s*\**)\s*(\w\S+)\s*\s*\((.*)\);/) {
>
> # Function typedefs

Thanks,

jon