[PATCH 1/3] checkpatch: improve Kconfig help text patch parsing

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


While parsing Kconfig help text, allow the strings that affect
parsing (e.g., help, bool, tristate, and prompt) to be in existing
text, not just added text (i.e., allow both + and a space character
at the beginning of the line).

This improves parsing of a patch like:

+config CRYPTO_SHA512_S390
+ tristate "SHA384 and SHA512 (s390)"
+ depends on S390
select CRYPTO_HASH
help
- SHA512 secure hash standard (DFIPS 180-2).
+ SHA-384 and SHA-512 secure hash algorithms (FIPS 180)

- This version of SHA implements a 512 bit hash with 256 bits of
- security against collision attacks.
+ Architecture: s390

- This code also includes SHA-384, a 384 bit hash with 192 bits
- of security against collision attacks.
+ It is available as of z10.

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

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 503e8abbb2c1..b0cda2f6414d 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3489,11 +3489,11 @@ sub process {
next if ($f =~ /^-/);
last if ($f !~ /^[\+ ]/); # !patch context

- if ($f =~ /^\+\s*(?:bool|tristate|prompt)\s*["']/) {
+ if ($f =~ /^[\+ ]\s*(?:bool|tristate|prompt)\s*["']/) {
$needs_help = 1;
next;
}
- if ($f =~ /^\+\s*help\s*$/) {
+ if ($f =~ /^[\+ ]\s*help\s*$/) {
$has_help = 1;
next;
}
@@ -3518,7 +3518,8 @@ sub process {
$help_length < $min_conf_desc_length) {
my $stat_real = get_stat_real($linenr, $ln - 1);
WARN("CONFIG_DESCRIPTION",
- "please write a help paragraph that fully describes the config symbol\n" . "$here\n$stat_real\n");
+ "please write $min_conf_desc_length lines of help text that fully describes the config symbol (detected $help_length lines)\n" .
+ "$here\n$stat_real\n");
}
}

--
2.37.1