Messages in this thread Patch in this message | | | From | Dwaipayan Ray <> | Subject | [PATCH] checkpatch: add --fix option for OPEN_BRACE issues | Date | Wed, 18 Nov 2020 18:10:35 +0530 |
| |
Brace style misuses of the following types are now corrected:
int foo(int bar, int baz) { bar++; return bar + baz; }
int foo(int bar, int baz) { return bar + baz; }
if (bar && baz) { bar++; baz++; }
if (bar && baz) { bar++; baz++; }
Signed-off-by: Dwaipayan Ray <dwaipayanray1@gmail.com> --- scripts/checkpatch.pl | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 0da6422cd0fd..8da6cde20c68 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -3937,9 +3937,23 @@ sub process { #print "pre<$pre_ctx>\nline<$line>\nctx<$ctx>\nnext<$lines[$ctx_ln - 1]>\n"; if ($ctx !~ /{\s*/ && defined($lines[$ctx_ln - 1]) && $lines[$ctx_ln - 1] =~ /^\+\s*{/) { - ERROR("OPEN_BRACE", - "that open brace { should be on the previous line\n" . - "$here\n$ctx\n$rawlines[$ctx_ln - 1]\n"); + if (ERROR("OPEN_BRACE", + "that open brace { should be on the previous line\n" . + "$here\n$ctx\n$rawlines[$ctx_ln - 1]\n") && + $fix) { + my $line1 = $rawlines[$ctx_ln - 2]; + my $line2 = $rawlines[$ctx_ln - 1]; + fix_delete_line($ctx_ln - 2, $line1); + fix_delete_line($ctx_ln - 1, $line2); + + my $fixedline = rtrim($line1) . " {"; + fix_insert_line($ctx_ln - 1, $fixedline); + $fixedline = $line2; + $fixedline =~ s/^(.\s*)\{\s*/$1\t/; + if ($fixedline !~ /^\+\s*$/) { + fix_insert_line($ctx_ln - 1, $fixedline); + } + } } if ($level == 0 && $pre_ctx !~ /}\s*while\s*\($/ && $ctx =~ /\)\s*\;\s*$/ && @@ -6659,16 +6673,30 @@ sub process { my $ok = 0; my $cnt = statement_rawlines($stat); my $herectx = $here . "\n"; + my $cur_ln = $linenr - 1; for (my $n = 0; $n < $cnt; $n++) { my $rl = raw_line($linenr, $n); $herectx .= $rl . "\n"; $ok = 1 if ($rl =~ /^[ \+]\{/); $ok = 1 if ($rl =~ /\{/ && $n == 0); last if $rl =~ /^[ \+].*\{/; + $cur_ln++; } if (!$ok) { - ERROR("OPEN_BRACE", - "open brace '{' following function definitions go on the next line\n" . $herectx); + if (ERROR("OPEN_BRACE", + "open brace '{' following function definitions go on the next line\n" . $herectx) && + $fix && $rawlines[$cur_ln] =~ /^\+/) { + fix_delete_line($cur_ln, $rawlines[$cur_ln]); + my $fixed_line = $rawlines[$cur_ln]; + $fixed_line =~ /(^.*\)\s*)\{(.*)$/; + my $line1 = rtrim($1); + my $line2 = $2; + fix_insert_line($cur_ln, $line1); + fix_insert_line($cur_ln, "\+{"); + if ($line2 !~ /^\s*$/) { + fix_insert_line($cur_ln, "\+\t" . trim($line2)); + } + } } } -- 2.27.0
| |