Re: kernel-doc mishandles declarations split into lines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Markus,

> The parser part is same state machine as the the perl one … with same
> problems ;)

:-)

> Problem here; function process_proto_type() concatenates the striped
> lines of declaration without any whitespace. A one-liner of::
> 
>   struct something {
>         struct foo
>         bar;
>         };
> 
> has to be::
> 
>   struct something {struct foo bar;};
> 
> Without the patch, the result missed the space between ‚foo' and
> 'bar'::
> 
>   struct something {struct foobar;};
> 
> Here is my fix for the Perl script:
> 
> diff --git a/scripts/kernel-doc b/scripts/kernel-doc
> index a26a5f2..6aa52cc 100755
> --- a/scripts/kernel-doc
> +++ b/scripts/kernel-doc
> @@ -2763,6 +2763,9 @@ sub process_proto_type($$) {
>  
>      while (1) {
>  	if ( $x =~ /([^{};]*)([{};])(.*)/ ) {
> +            if( length $prototype ) {
> +                $prototype .= " "
> +            }
>  	    $prototype .= $1 . $2;
>  	    ($2 eq '{') && $brcount++;
>  	    ($2 eq '}') && $brcount--;
> 
> Can you test it?

This has the same problem as all the other versions proposed here - if
you have

enum foo {
 X,

 Y,
};

(note the blank line)

you'll get

warning: Enum value ' ' not described in enum 'foo'

johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux