diff mbox

[2/3] checkpatch: testing more config for Kconfig help text

Message ID 1461245285-14918-2-git-send-email-yingjoe.chen@mediatek.com
State New
Headers show

Commit Message

Yingjoe Chen April 21, 2016, 1:28 p.m. UTC
Current help text check only check a config option if it is followed
by another config.
Adding check for help text if the next entry is menuconfig, choice/
endchoice, comment, menu/endmenu, if/endif, source or end of file.

Signed-off-by: Yingjoe Chen <yingjoe.chen@mediatek.com>

---
 scripts/checkpatch.pl | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

-- 
1.9.1

Comments

Yingjoe Chen April 22, 2016, 1:29 p.m. UTC | #1
On Thu, 2016-04-21 at 10:06 -0700, Joe Perches wrote:
> On Thu, 2016-04-21 at 21:28 +0800, Yingjoe Chen wrote:

> > Current help text check only check a config option if it is followed

> > by another config.

> > Adding check for help text if the next entry is menuconfig, choice/

> > endchoice, comment, menu/endmenu, if/endif, source or end of file.

> []

> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl

> []

> > @@ -2563,6 +2563,12 @@ sub process {

> >  				next if ($f =~ /^-/);

> >  				last if (!$file && $f =~ /^\@\@/);

> >  

> > +				if ($f !~ /^[+\- ]/) {

> > +					# End of file

> > +					$is_end = 1;

> > +					last;

> > +				}

> > +

> >  				if ($lines[$ln - 1] =~ /^\+\s*(?:bool|tristate)\s*\"/) {

> >  					$is_start = 1;

> >  				} elsif ($lines[$ln - 1] =~ /^\+\s*(?:---)?help(?:---)?$/) {

> > @@ -2573,7 +2579,10 @@ sub process {

> >  				$f =~ s/#.*//;

> >  				$f =~ s/^\s+//;

> >  				next if ($f =~ /^$/);

> > -				if ($f =~ /^\s*config\s/) {

> > +				if ($f =~ /^\s*config\s/ || $f =~ /^\s*menuconfig\s/ || $f =~ /^\s*choice\s/ ||

> > +				    $f =~ /^\s*endchoice$/ || $f =~ /^\s*comment\s/ || $f =~ /^\s*menu\s/ ||

> > +				    $f =~ /^\s*endmenu$/ || $f =~ /^\s*if\s/ || $f =~ /^\s*endif$/ ||

> > +				    $f =~ /^\s*source\s/) {

> >  					$is_end = 1;

> >  					last;

> >  				}

> 

> This seems relatively verbose.

> Also, because there's a substitution above that strips leading spaces,

> the "^\s*" uses are unnecessary and can be simplified to ^

> 

> Maybe:

> if ($f =~ /^(?:config\s|menuconfig\s|choice\s|endchoice\s*$|comment\s|menu\s|endmenu$|if\s|endif\s*$|source\s)

> 


Thanks
Strip apply to trailing spaces as well, will change this to:

if ($f =~ /^(?:config\s|menuconfig\s|choice\s|endchoice$|comment\s|menu\s|endmenu$|if\s|endif$|source\s)/)


Joe.C
diff mbox

Patch

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 1c43dc1..2bf4499 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2563,6 +2563,12 @@  sub process {
 				next if ($f =~ /^-/);
 				last if (!$file && $f =~ /^\@\@/);
 
+				if ($f !~ /^[+\- ]/) {
+					# End of file
+					$is_end = 1;
+					last;
+				}
+
 				if ($lines[$ln - 1] =~ /^\+\s*(?:bool|tristate)\s*\"/) {
 					$is_start = 1;
 				} elsif ($lines[$ln - 1] =~ /^\+\s*(?:---)?help(?:---)?$/) {
@@ -2573,7 +2579,10 @@  sub process {
 				$f =~ s/#.*//;
 				$f =~ s/^\s+//;
 				next if ($f =~ /^$/);
-				if ($f =~ /^\s*config\s/) {
+				if ($f =~ /^\s*config\s/ || $f =~ /^\s*menuconfig\s/ || $f =~ /^\s*choice\s/ ||
+				    $f =~ /^\s*endchoice$/ || $f =~ /^\s*comment\s/ || $f =~ /^\s*menu\s/ ||
+				    $f =~ /^\s*endmenu$/ || $f =~ /^\s*if\s/ || $f =~ /^\s*endif$/ ||
+				    $f =~ /^\s*source\s/) {
 					$is_end = 1;
 					last;
 				}