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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html