[PATCH 3/3] checkpatch: check line length in Kconfig help text

From: Robert Elliott
Date: Mon Aug 15 2022 - 00:16:53 EST


Apply the normal --max-line-length=nn line length checks to
Kconfig help text.

The default of 100 is only triggered by one existing line in
a file named Kconfig. Running with --max-line-length=80 reports
only a few long lines:
- 11 between 90 and 99 characters
- 25 betwen 81 and 89 characters
9 of which are due to long URLs.

Signed-off-by: Robert Elliott <elliott@xxxxxxx>
---
scripts/checkpatch.pl | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 4d09a324a586..f8e48af40b81 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3495,7 +3495,7 @@ sub process {
next if ($f =~ /^-/);
last if ($f !~ /^[\+ ]/); # !patch context

- if ($f =~ /^[\+ ]\s*(?:bool|tristate|prompt)\s*["']/) {
+ if ($f =~ /^[\+ ]\s*(?:bool|tristate|string|hex|int|prompt)\s*["']/) {
$needs_help = 1;
next;
}
@@ -3514,12 +3514,27 @@ sub process {
# and so hopefully shouldn't trigger false
# positives, even though some of these are
# common words in help texts
- if ($f =~ /^(?:config|menuconfig|choice|endchoice|
- if|endif|menu|endmenu|source)\b/x) {
+ if ($f =~ /^(?:config|menuconfig|
+ choice|endchoice|
+ comment|if|endif|
+ menu|endmenu|source)\b/x) {
last;
}
+
+ # no further checking for lines with these keywords
+ if ($f =~ /^(?:default|def_bool|depends|select|imply)\b/x) {
+ next;
+ }
+
+ my ($length, $indent) = line_stats($f);
+ if ($length > $max_line_length) {
+ WARN("CONFIG_DESCRIPTION",
+ "Kconfig help text line length ($length) too long: $f\n");
+ }
+
$help_length++ if ($has_help);
}
+
if ($needs_help &&
$help_length < $min_conf_desc_length) {
my $stat_real = get_stat_real($linenr, $ln - 1);
--
2.37.1