diff options
author | Allen Hubbe <allenbh@gmail.com> | 2016-08-02 17:04:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-02 19:35:13 -0400 |
commit | ed43c4e58a6d3061e3329c41d7b880f11541245a (patch) | |
tree | e503be5f906aafc3de80b12af032df659274cf67 | |
parent | c844711575086231890084390a275d06f11a623a (diff) |
checkpatch: check signoff when reading stdin
Signoff was not checked if the filename is '-', indicating reading the
patch from stdin. Commands such as the below would not warn about a
missing signoff, because the patch filename is '-'. This change allows
checkpatch to warn about a missing signoff, even if the input filename
is '-', but only if the patch has a commit message.
git show --pretty=email | scripts/checkpatch.pl -
A more common use of checkpatch with stdin is for piping git diff
through checkpatch. The diff output would not contain a commit message,
and therefore it would not contain a signoff line. For this common use
case, a warning should not be printed about the missing signoff. With
this change we will only warn about a missing signoff if the input
contains a commit message.
git diff | scripts/checkpatch.pl -
Before this patch, a workaround for the first command was to refer to
stdin by a name other than '-'. The workaround is not an elegant
solution, because elsewhere checkpatch uses the fact that filename
equals '-', such as in setting '$vname' to 'Your patch' for stdin. The
command below would report "/dev/stdin has style problems" instead of
"Your patch has style problems."
git show --pretty=email | scripts/checkpatch.pl /dev/stdin
Link: http://lkml.kernel.org/r/48be31e414bddc65bccfa6b1322359be9ba032eb.1469670589.git.allenbh@gmail.com
Signed-off-by: Allen Hubbe <allenbh@gmail.com>
Acked-by: Joe Perches <joe@perches.com>
Cc: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rwxr-xr-x | scripts/checkpatch.pl | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 1d5b09dd577a..6f2ce0cafe6f 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl | |||
@@ -2069,6 +2069,7 @@ sub process { | |||
2069 | my $is_patch = 0; | 2069 | my $is_patch = 0; |
2070 | my $in_header_lines = $file ? 0 : 1; | 2070 | my $in_header_lines = $file ? 0 : 1; |
2071 | my $in_commit_log = 0; #Scanning lines before patch | 2071 | my $in_commit_log = 0; #Scanning lines before patch |
2072 | my $has_commit_log = 0; #Encountered lines before patch | ||
2072 | my $commit_log_possible_stack_dump = 0; | 2073 | my $commit_log_possible_stack_dump = 0; |
2073 | my $commit_log_long_line = 0; | 2074 | my $commit_log_long_line = 0; |
2074 | my $commit_log_has_diff = 0; | 2075 | my $commit_log_has_diff = 0; |
@@ -2566,6 +2567,7 @@ sub process { | |||
2566 | $rawline =~ /^(commit\b|from\b|[\w-]+:).*$/i)) { | 2567 | $rawline =~ /^(commit\b|from\b|[\w-]+:).*$/i)) { |
2567 | $in_header_lines = 0; | 2568 | $in_header_lines = 0; |
2568 | $in_commit_log = 1; | 2569 | $in_commit_log = 1; |
2570 | $has_commit_log = 1; | ||
2569 | } | 2571 | } |
2570 | 2572 | ||
2571 | # Check if there is UTF-8 in a commit log when a mail header has explicitly | 2573 | # Check if there is UTF-8 in a commit log when a mail header has explicitly |
@@ -6055,7 +6057,7 @@ sub process { | |||
6055 | ERROR("NOT_UNIFIED_DIFF", | 6057 | ERROR("NOT_UNIFIED_DIFF", |
6056 | "Does not appear to be a unified-diff format patch\n"); | 6058 | "Does not appear to be a unified-diff format patch\n"); |
6057 | } | 6059 | } |
6058 | if ($is_patch && $filename ne '-' && $chk_signoff && $signoff == 0) { | 6060 | if ($is_patch && $has_commit_log && $chk_signoff && $signoff == 0) { |
6059 | ERROR("MISSING_SIGN_OFF", | 6061 | ERROR("MISSING_SIGN_OFF", |
6060 | "Missing Signed-off-by: line(s)\n"); | 6062 | "Missing Signed-off-by: line(s)\n"); |
6061 | } | 6063 | } |