Re: [PATCH] checkpatch: add --fix option for OPEN_BRACE issues

From: Joe Perches
Date: Wed Nov 18 2020 - 13:14:56 EST


On Wed, 2020-11-18 at 18:10 +0530, Dwaipayan Ray wrote:
> Brace style misuses of the following types are now
> corrected:
[]
> diff --git 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];

How are you sure that in a patch context this line always starts with /^\+/ ?

> + 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);
> + }
> + }