qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4] scripts/checkpatch.pl: add check for `while` and `for`
@ 2018-03-06  7:04 Su Hang
  2018-03-06 11:09 ` Paolo Bonzini
  2018-03-06 17:00 ` Stefan Hajnoczi
  0 siblings, 2 replies; 3+ messages in thread
From: Su Hang @ 2018-03-06  7:04 UTC (permalink / raw)
  To: thuth, eblake, stefanha; +Cc: qemu-devel

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)/) {
 			my ($level, $endln, @chunks) =
 				ctx_statement_full($linenr, $realcnt, 1);
                         if ($dbg_adv_apw) {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH v4] scripts/checkpatch.pl: add check for `while` and `for`
  2018-03-06  7:04 [Qemu-devel] [PATCH v4] scripts/checkpatch.pl: add check for `while` and `for` Su Hang
@ 2018-03-06 11:09 ` Paolo Bonzini
  2018-03-06 17:00 ` Stefan Hajnoczi
  1 sibling, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2018-03-06 11:09 UTC (permalink / raw)
  To: Su Hang, thuth, eblake, stefanha; +Cc: qemu-devel

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH v4] scripts/checkpatch.pl: add check for `while` and `for`
  2018-03-06  7:04 [Qemu-devel] [PATCH v4] scripts/checkpatch.pl: add check for `while` and `for` Su Hang
  2018-03-06 11:09 ` Paolo Bonzini
@ 2018-03-06 17:00 ` Stefan Hajnoczi
  1 sibling, 0 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2018-03-06 17:00 UTC (permalink / raw)
  To: Su Hang; +Cc: thuth, eblake, stefanha, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 968 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-03-06 17:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-06  7:04 [Qemu-devel] [PATCH v4] scripts/checkpatch.pl: add check for `while` and `for` Su Hang
2018-03-06 11:09 ` Paolo Bonzini
2018-03-06 17:00 ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).