Re: [PATCH v2] checkpatch: add fix option for MAINTAINERS_STYLE

From: Joe Perches
Date: Mon Nov 16 2020 - 16:56:10 EST


On Mon, 2020-11-16 at 12:49 +0530, Aditya Srivastava wrote:
> Checkpatch expects entries in MAINTAINERS file in a specific order and
> warns if the changes made do not follow the specified order.
>
> E.g., running checkpatch on commit 6f736909f0a4 ("MAINTAINERS: Add
> patchwork link for PWM entry") reports this warning:
>
> WARNING: Misordered MAINTAINERS entry - list 'Q:' before 'T:'
>  T: git git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm.git
> +Q: https://patchwork.ozlabs.org/project/linux-pwm/list/
>
> Provide a simple fix by swapping the unordered lines

NAK.

This --fix option can't work if a patch merely adds a single line.
The patch context lines would be wrong.

This has to make sure the both lines are additions (start with +)


> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -3299,13 +3299,22 @@ sub process {
>   "Unknown MAINTAINERS entry type: '$cur'\n" . $herecurr);
>   } else {
>   if ($previndex >= 0 && $curindex < $previndex) {
> - WARN("MAINTAINERS_STYLE",
> - "Misordered MAINTAINERS entry - list '$cur:' before '$prev:'\n" . $hereprev);
> + if (WARN("MAINTAINERS_STYLE",
> + "Misordered MAINTAINERS entry - list '$cur:' before '$prev:'\n" . $hereprev) &&
> + $fix) {
> + # swap these lines
> + $fixed[$fixlinenr - 1] = $rawline;
> + $fixed[$fixlinenr] = $prevrawline;
> + }
>   } elsif ((($prev eq 'F' && $cur eq 'F') ||
>   ($prev eq 'X' && $cur eq 'X')) &&
>   ($prevval cmp $curval) > 0) {
> - WARN("MAINTAINERS_STYLE",
> - "Misordered MAINTAINERS entry - list file patterns in alphabetic order\n" . $hereprev);
> + if (WARN("MAINTAINERS_STYLE",
> + "Misordered MAINTAINERS entry - list file patterns in alphabetic order\n" . $hereprev) &&
> + $fix) {
> + $fixed[$fixlinenr - 1] = $rawline;
> + $fixed[$fixlinenr] = $prevrawline;
> + }
>   }
>   }
>   }