Messages in this thread Patch in this message | | | Subject | Re: [PATCH] checkpatch: fix for stripping brackets from macros. | From | Joe Perches <> | Date | Mon, 18 Dec 2017 07:12:50 -0800 |
| |
On Mon, 2017-12-18 at 14:17 +0000, Jeremy Sowden wrote: > When checking macros, checkpatch.pl strips parentheses, square brackets > and braces. However, the search-and-replace expression was not correct, > and instead of replacing the brackets and their contents with just the > contents, it was replacing them with literal 1's.
Jeremy:
What is the effect on the rest of the block that uses this substituted $dstat? Why should this be done?
Andy:
I believe this is intentional as it simplifies the macro analysis and has no other effect on the rest of the block. Correct?
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl [] > @@ -4874,9 +4874,9 @@ sub process { > $dstat =~ s/\s*$//s; > > # Flatten any parentheses and braces > - while ($dstat =~ s/\([^\(\)]*\)/1/ || > - $dstat =~ s/\{[^\{\}]*\}/1/ || > - $dstat =~ s/.\[[^\[\]]*\]/1/) > + while ($dstat =~ s/\(([^\(\)]*)\)/$1/ || > + $dstat =~ s/\{([^\{\}]*)\}/$1/ || > + $dstat =~ s/.\[([^\[\]]*)\]/$1/) > { > }
| |