checkpatch: add fix option for ASSIGNMENT_CONTINUATIONS
PATCH 1/1 checkpatch: add fix option for ASSIGNMENT_CONTINUATIONS
Currently, checkpatch warns us if an assignment operator is placed at the start of a line and not at the end of previous line.
E.g., running checkpatch on commit 8195b1396ec8 ("hv_netvsc: fix deadlock on hotplug") reports:
CHECK: Assignment operator '=' should be on the previous line
+ struct netvsc_device *nvdev
+ = container_of(w, struct netvsc_device, subchan_work);
Provide a simple fix by appending assignment operator to the previous line and removing from the current line
--- scripts/checkpatch.pl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
scripts/checkpatch.pl +7 -2
@@ -3542,8 +3542,13 @@ sub process { # check for assignments on the start of a line if ($sline =~ /^\+\s+($Assignment)[^=]/) { - CHK("ASSIGNMENT_CONTINUATIONS", - "Assignment operator '$1' should be on the previous line\n" . $hereprev); + if (CHK("ASSIGNMENT_CONTINUATIONS", + "Assignment operator '$1' should be on the previous line\n" . $hereprev) && + $fix) { + # add assignment operator to the previous line, remove from current line + $fixed[$fixlinenr - 1] .= " $1"; + $fixed[$fixlinenr] =~ s/$1\s*//; + } } # check for && or || at the start of a line
Signature · 6 lines
2.17.1 _______________________________________________ Linux-kernel-mentees mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
Quoted 11 lines · Aditya Srivastava
Currently, checkpatch warns us if an assignment operator is placed at the start of a line and not at the end of previous line.
E.g., running checkpatch on commit
8195b1396ec8("hv_netvsc: fix deadlock on hotplug") reports:CHECK: Assignment operator '=' should be on the previous line
(quoted diff) +2
-0+ struct netvsc_device *nvdev + = container_of(w, struct netvsc_device, subchan_work);
Quoted 3 lines
Provide a simple fix by appending assignment operator to the previous line and removing from the current line
Looks reasonable to me.
Lukas
Quoted 26 lines
Signed-off-by Aditya Srivastava <[email protected]>--- scripts/checkpatch.pl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)scripts/checkpatch.pl +7
-3@@ -3542,8 +3542,13 @@ sub process { # check for assignments on the start of a line if ($sline =~ /^\+\s+($Assignment)[^=]/) { - CHK("ASSIGNMENT_CONTINUATIONS", - "Assignment operator '$1' should be on the previous line\n" . $hereprev); + if (CHK("ASSIGNMENT_CONTINUATIONS", + "Assignment operator '$1' should be on the previous line\n" . $hereprev) && + $fix) { + # add assignment operator to the previous line, remove from current line + $fixed[$fixlinenr - 1] .= " $1"; + $fixed[$fixlinenr] =~ s/$1\s*//; + } } # check for && or || at the start of a line --
Quoted 2 lines
2.17.1
_______________________________________________
Linux-kernel-mentees mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
Quoted 44 lines · Lukas Bulwahn
Quoted 11 lines · Aditya Srivastava
Currently, checkpatch warns us if an assignment operator is placed at the start of a line and not at the end of previous line.
E.g., running checkpatch on commit
8195b1396ec8("hv_netvsc: fix deadlock on hotplug") reports:CHECK: Assignment operator '=' should be on the previous line
(quoted diff) +2
-0+ struct netvsc_device *nvdev + = container_of(w, struct netvsc_device, subchan_work);Quoted 3 lines
Provide a simple fix by appending assignment operator to the previous line and removing from the current line
Looks reasonable to me.
Lukas
Quoted 24 lines
Signed-off-by Aditya Srivastava <[email protected]>--- scripts/checkpatch.pl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)scripts/checkpatch.pl +7
-2@@ -3542,8 +3542,13 @@ sub process { # check for assignments on the start of a line if ($sline =~ /^\+\s+($Assignment)[^=]/) { - CHK("ASSIGNMENT_CONTINUATIONS", - "Assignment operator '$1' should be on the previous line\n" . $hereprev); + if (CHK("ASSIGNMENT_CONTINUATIONS", + "Assignment operator '$1' should be on the previous line\n" . $hereprev) && + $fix) { + # add assignment operator to the previous line, remove from current line + $fixed[$fixlinenr - 1] .= " $1"; + $fixed[$fixlinenr] =~ s/$1\s*//; + } }
Quoted 4 lines
Quoted 4 lines
scripts/checkpatch.pl +0
-1# check for && or || at the start of a line --2.17.1
I have found an unhandled case with this fix ie if the line before this line is not an added line(ie '+') rather removed one(ie '-'). Eg, with commit aef833c58d321f09a
I will send a modified patch handling that case as well.
Thanks
Aditya
_______________________________________________
Linux-kernel-mentees mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees