[v2,1/5] checkpatch: improve Kconfig help text patch parsing

Message ID 20221123011202.939319-2-elliott@hpe.com
State New
Headers
Series checkpatch: enhance Kconfig parsing |

Commit Message

Elliott, Robert (Servers) Nov. 23, 2022, 1:11 a.m. UTC
  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@hpe.com>
---
 scripts/checkpatch.pl | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
  

Comments

Joe Perches Nov. 24, 2022, 1:09 a.m. UTC | #1
On Tue, 2022-11-22 at 19:11 -0600, Robert Elliott wrote:
> 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.

This would seem to be an invalid patch as it adds a config block.

Not sure this is a good change.

> 
> Signed-off-by: Robert Elliott <elliott@hpe.com>
> ---
>  scripts/checkpatch.pl | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index c8a616a9d034..1d9e563e768a 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -3490,11 +3490,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;
>  				}
> @@ -3519,7 +3519,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");
>  			}
>  		}
>
  

Patch

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index c8a616a9d034..1d9e563e768a 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3490,11 +3490,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;
 				}
@@ -3519,7 +3519,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");
 			}
 		}