Re: [PATCH v2 3/4] checkpatch: kconfig: enforce help text indentation

From: Joe Perches
Date: Sat Dec 26 2020 - 11:01:43 EST


On Sat, 2020-12-26 at 15:05 +0100, Nicolai Fischer wrote:
> Adds a new warning in case the indentation level of the
> first line of a Kconfig help message is not two spaces
> higher than the keyword itself.
> Blank lines between the message and the help keyword
> are ignored.
[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -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 doesn't work if the indent is more than 2 spaces.

$ cat Kconfigtest
menuconfig FOO
bool "Enable foo" if EXPERT
default y
help
Line 1.
Line 2.
Line 3.
Line 4.

$ ./scripts/checkpatch.pl -f Kconfigtest
total: 0 errors, 0 warnings, 10 lines checked

Kconfigtest has no obvious style problems and is ready for submission.

Also, it may be useful to test that the indent after a block
uses a single tab more than the block start.

Look at the first block of block/Kconfig:

The indentation of bool and help uses 7 spaces but the indentation
of the help text uses a tab then 1 space.

It'd be useful to emit a warning for that.

menuconfig BLOCK
bool "Enable the block layer" if EXPERT
default y
select SBITMAP
select SRCU
help
Provide block layer support for the kernel.

Disable this option to remove the block layer support from the
kernel. This may be useful for embedded devices.

If this option is disabled:

- block device files will become unusable
- some filesystems (such as ext3) will become unavailable.

Also, SCSI character devices and USB storage will be disabled since
they make use of various block layer definitions and facilities.

Say Y here unless you know you really don't want to mount disks and
suchlike.