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