kernel-doc: bugfix - multi-line macros
authorDaniel Santos <daniel.santos@pobox.com>
Fri, 5 Oct 2012 00:15:05 +0000 (17:15 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Sat, 26 Oct 2013 20:06:10 +0000 (21:06 +0100)
commit 654784284430bf2739985914b65e09c7c35a7273 upstream.

Prior to this patch the following code breaks:

/**
 * multiline_example - this breaks kernel-doc
 */
 #define multiline_example( \
myparam)

Producing this error:

Error(somefile.h:983): cannot understand prototype: 'multiline_example( \ '

This patch fixes the issue by appending all lines ending in a blackslash
(optionally followed by whitespace), removing the backslash and any
whitespace after it prior to appending (just like the C pre-processor
would).

This fixes a break in kerel-doc introduced by the additions to rbtree.h.

Signed-off-by: Daniel Santos <daniel.santos@pobox.com>
Cc: Randy Dunlap <rdunlap@xenotime.net>
Cc: Michal Marek <mmarek@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
scripts/kernel-doc

index d793001..ba3d9df 100755 (executable)
@@ -2044,6 +2044,9 @@ sub process_file($) {
 
     $section_counter = 0;
     while (<IN>) {
+       while (s/\\\s*$//) {
+           $_ .= <IN>;
+       }
        if ($state == 0) {
            if (/$doc_start/o) {
                $state = 1;             # next line is always the function name