Эх сурвалжийг харах

checkpatch: suspect indent handle macro continuation

When ignoring a macro in the middle of a conditional, we need to ignore
the macro start and any continuation lines.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Andy Whitcroft 17 жил өмнө
parent
commit
740504c61f

+ 4 - 1
scripts/checkpatch.pl

@@ -1465,6 +1465,7 @@ sub process {
 			}
 			}
 
 
 			my $cond_ptr = -1;
 			my $cond_ptr = -1;
+			$continuation = 0;
 			while ($cond_ptr != $cond_lines) {
 			while ($cond_ptr != $cond_lines) {
 				$cond_ptr = $cond_lines;
 				$cond_ptr = $cond_lines;
 
 
@@ -1478,9 +1479,11 @@ sub process {
 				#  1) blank lines, they should be at 0,
 				#  1) blank lines, they should be at 0,
 				#  2) preprocessor lines, and
 				#  2) preprocessor lines, and
 				#  3) labels.
 				#  3) labels.
-				if ($s =~ /^\s*?\n/ ||
+				if ($continuation ||
+				    $s =~ /^\s*?\n/ ||
 				    $s =~ /^\s*#\s*?/ ||
 				    $s =~ /^\s*#\s*?/ ||
 				    $s =~ /^\s*$Ident\s*:/) {
 				    $s =~ /^\s*$Ident\s*:/) {
+					$continuation = ($s =~ /^.*?\\\n/) ? 1 : 0;
 					$s =~ s/^.*?\n//;
 					$s =~ s/^.*?\n//;
 					$cond_lines++;
 					$cond_lines++;
 				}
 				}