Adds a new warning in case the indentation level of the
first line of a Kconfig help message is not at least two spaces
higher than the keyword itself.
Blank lines between the message and the help keyword
are ignored.

Co-developed-by: Johannes Czekay <johannes.cze...@fau.de>
Signed-off-by: Johannes Czekay <johannes.cze...@fau.de>
Signed-off-by: Nicolai Fischer <nicolai.fisc...@fau.de>
---

Now matches indentation of two or more spaces, instead of exactly two.


 scripts/checkpatch.pl | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index c86a971a3205..209880810aaa 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3313,6 +3313,8 @@ sub process {
                        my $f;
                        my $is_start = 0;
                        my $is_end = 0;
+                       my $help_indent;
+                       my $help_stat_real;
                        for (; $cnt > 0 && defined $lines[$ln - 1]; $ln++) {
                                $f = $lines[$ln - 1];
                                $cnt-- if ($lines[$ln - 1] !~ /^-/);
@@ -3323,8 +3325,10 @@ sub process {
 
                                if ($lines[$ln - 1] =~ 
/^\+\s*(?:bool|tristate|int|hex|string|prompt)\s*(?:["'].*)?$/) {
                                        $is_start = 1;
-                               } elsif ($lines[$ln - 1] =~ /^\+\s*help$/) {
-                                       $length = -1;
+                               } elsif ($lines[$ln - 1] =~ /^\+(\s*)help$/) {
+                                       $help_indent = $1;
+                                       $length = 0;
+                                       next;
                                }
 
                                $f =~ s/^.//;
@@ -3332,6 +3336,13 @@ sub process {
                                $f =~ s/^\s+//;
                                next if ($f =~ /^$/);
 
+                               if (defined $help_indent) {
+                                       if ($lines[$ln - 1] !~ 
/^\+$help_indent\ {2,}\S*/) {
+                                               $help_stat_real = 
get_stat_real($ln - 1, $ln);
+                                       }
+                                       undef $help_indent;
+                               }
+
                                # This only checks context lines in the patch
                                # and so hopefully shouldn't trigger false
                                # positives, even though some of these are
@@ -3347,6 +3358,10 @@ sub process {
                                WARN("CONFIG_DESCRIPTION",
                                     "please write a paragraph that describes 
the config symbol fully\n" . $herecurr);
                        }
+                       if ($is_start && $is_end && defined $help_stat_real) {
+                               WARN("CONFIG_DESCRIPTION",
+                                    "please indent the help text two spaces 
more than the keyword\n" . "$here\n$help_stat_real\n");
+                       }
                        #print "is_start<$is_start> is_end<$is_end> 
length<$length>\n";
                }
 
-- 
2.29.2

Reply via email to