> 
> [PATCH] be sure that multiline definitions will be properly espaced
> 
> When handling comments from structs with multiple lines, like:
>       /**
>        * struct something
>        * @very_long_member_name: abcde
>        */
>       struct something {
>               struct
> this_is_a_very_long_struct_name_so_need_to_break_for_the
>                       very_long_member_name;
>       };
> 
> The logic adds the continuation line without a proper space, causing
> it to be misinterpreted. Be sure to add an space to replace the
> end of line.
> 
> Reported-by: Johannes Berg <johan...@sipsolutions.net>
> Signed-off-by: Mauro Carvalho Chehab <mche...@s-opensource.com>
> 
> diff --git a/scripts/kernel-doc b/scripts/kernel-doc
> index a26a5f2dce39..1aa44c299f78 100755
> --- a/scripts/kernel-doc
> +++ b/scripts/kernel-doc
> @@ -2763,17 +2763,18 @@ sub process_proto_type($$) {
>  
>      while (1) {
>       if ( $x =~ /([^{};]*)([{};])(.*)/ ) {
> -         $prototype .= $1 . $2;
> +         $prototype .= $1 . $2 . " ";
>           ($2 eq '{') && $brcount++;
>           ($2 eq '}') && $brcount--;
>           if (($2 eq ';') && ($brcount == 0)) {
> +             $prototype =~ s/\s+/ /g;
>               dump_declaration($prototype, $file);
>               reset_state();
>               last;
>           }
>           $x = $3;
>       } else {
> -         $prototype .= $x;
> +         $prototype .= $x . " ";
>           last;

Interesting. I just ended with almost the same patch, but didn't have
the line inside the brcount if, so it didn't work. However, your
version also introduces regressions:

/**
 * enum foo - foo
 * @F1: f1
 * @F2: f2
 */
enum foo {
        F1,

        F2,
};

now generates a warning:

/tmp/test.c:20: 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to