Message ID | 1520319890-19761-1-git-send-email-suhang16@mails.ucas.ac.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 06/03/2018 08:04, Su Hang wrote: > Adding check for `while` and `for` statements, which condition has more than > one line. > > The former checkpatch.pl can check `if` statement, which condition has more > than one line, whether block misses brace round, like this: > ''' > if (cond1 || > cond2) > statement; > ''' > But it doesn't do the same check for `for` and `while` statements. > > Using `(?:...)` instead of `(...)` in regex pattern catch. > Because `(?:...)` is faster and avoids unwanted side-effect. > > Suggested-by: Stefan Hajnoczi <stefanha@redhat.com> > Suggested-by: Eric Blake <eblake@redhat.com> > Suggested-by: Thomas Huth <thuth@redhat.com> > Signed-off-by: Su Hang <suhang16@mails.ucas.ac.cn> > --- > scripts/checkpatch.pl | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index 1b4b812e28fa..b1a8407d7406 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -2352,8 +2352,9 @@ sub process { > } > } > > -# check for missing bracing round if etc > - if ($line =~ /(^.*)\bif\b/ && $line !~ /\#\s*if/) { > +# check for missing bracing around if etc > + if ($line =~ /(^.*)\b(?:if|while|for)\b/ && > + $line !~ /\#\s*(?:if|while|for)/) { The second line checks for preprocessor statements and does not need to be extended with (?:if|while|for). I changed this and applied the patch. Thanks, Paolo > my ($level, $endln, @chunks) = > ctx_statement_full($linenr, $realcnt, 1); > if ($dbg_adv_apw) { > Q
On Tue, Mar 06, 2018 at 03:04:50PM +0800, Su Hang wrote: > Adding check for `while` and `for` statements, which condition has more than > one line. > > The former checkpatch.pl can check `if` statement, which condition has more > than one line, whether block misses brace round, like this: > ''' > if (cond1 || > cond2) > statement; > ''' > But it doesn't do the same check for `for` and `while` statements. > > Using `(?:...)` instead of `(...)` in regex pattern catch. > Because `(?:...)` is faster and avoids unwanted side-effect. > > Suggested-by: Stefan Hajnoczi <stefanha@redhat.com> > Suggested-by: Eric Blake <eblake@redhat.com> > Suggested-by: Thomas Huth <thuth@redhat.com> > Signed-off-by: Su Hang <suhang16@mails.ucas.ac.cn> > --- > scripts/checkpatch.pl | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Thanks, applied to my block-next tree: https://github.com/stefanha/qemu/commits/block-next Stefan
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 1b4b812e28fa..b1a8407d7406 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2352,8 +2352,9 @@ sub process { } } -# check for missing bracing round if etc - if ($line =~ /(^.*)\bif\b/ && $line !~ /\#\s*if/) { +# check for missing bracing around if etc + if ($line =~ /(^.*)\b(?:if|while|for)\b/ && + $line !~ /\#\s*(?:if|while|for)/) { my ($level, $endln, @chunks) = ctx_statement_full($linenr, $realcnt, 1); if ($dbg_adv_apw) {
Adding check for `while` and `for` statements, which condition has more than one line. The former checkpatch.pl can check `if` statement, which condition has more than one line, whether block misses brace round, like this: ''' if (cond1 || cond2) statement; ''' But it doesn't do the same check for `for` and `while` statements. Using `(?:...)` instead of `(...)` in regex pattern catch. Because `(?:...)` is faster and avoids unwanted side-effect. Suggested-by: Stefan Hajnoczi <stefanha@redhat.com> Suggested-by: Eric Blake <eblake@redhat.com> Suggested-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Su Hang <suhang16@mails.ucas.ac.cn> --- scripts/checkpatch.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)