Re: [PATCH] docs: make kernel-doc handle varargs properly

From: Jani Nikula
Date: Sat Aug 27 2016 - 04:43:48 EST


On Fri, 26 Aug 2016, Jonathan Corbet <corbet@xxxxxxx> wrote:
> As far as I can tell, the handling of "..." arguments has never worked
> right, so any documentation provided was ignored in favor of "variable
> arguments." This makes kernel-doc handle "@...:" as documented. It does
> *not* fix spots in kerneldoc comments that don't follow that convention,
> but they are no more broken than before.
>
> Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
> ---
> scripts/kernel-doc | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/kernel-doc b/scripts/kernel-doc
> index c681e8f0ecc2..e6c52ab938fd 100755
> --- a/scripts/kernel-doc
> +++ b/scripts/kernel-doc
> @@ -414,7 +414,7 @@ my $doc_com_body = '\s*\* ?';
> my $doc_decl = $doc_com . '(\w+)';
> # @params and a strictly limited set of supported section names
> my $doc_sect = $doc_com .
> - '\s*(\@\w+|description|context|returns?|notes?|examples?)\s*:(.*)';
> + '\s*(\@[.\w]+|description|context|returns?|notes?|examples?)\s*:(.*)';

So this will now accept "@foo.bar.baz:" too, right? Should it be
something like this instead?

'\s*(\@\w+|\@\.\.\.|description|context|returns?|notes?|examples?)\s*:(.*)';

BR,
Jani.


> my $doc_content = $doc_com_body . '(.*)';
> my $doc_block = $doc_com . 'DOC:\s*(.*)?';
> my $doc_inline_start = '^\s*/\*\*\s*$';
> @@ -2340,6 +2340,7 @@ sub push_parameter($$$) {
>
> if ($type eq "" && $param =~ /\.\.\.$/)
> {
> + $param = "...";
> if (!defined $parameterdescs{$param} || $parameterdescs{$param} eq "") {
> $parameterdescs{$param} = "variable arguments";
> }

--
Jani Nikula, Intel Open Source Technology Center