[PATCH] checkpatch: Update signature "might be better as" warning

From: Joe Perches
Date: Sun Nov 06 2011 - 04:00:19 EST


email header lines can look like signatures tags.
It's valid to have multiple email recipients on a single line
but not valid to have multiple signatures on a single line.

Validate signatures only when not in the email headers.

Clear the $in_commit_log flag when the patch filename appears.

Add '-' to the valid chars in a message header for headers
like "Message-Id:" and "In-Reply-To:".

Reported-by: Julia Lawall <julia.lawall@xxxxxxx>
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>

---

On Sat, 2011-11-05 at 22:57 +0100, Julia Lawall wrote:
> Checkpatch is giving me, eg:
> 'Simon Wunderlich <siwu@xxxxxxxxxxxxxxxxxx>,"David S. Miller"
> <davem@xxxxxxxxxxxxx>,b.a.t.m.a.n@xxxxxxxxxxxxxxxxxxx,netdev@xxxxxxxxxxxxxxx,linux-kernel@xxxxxxxxxxxxxxx'
> might be better as '"Simon Wunderlich <siwu@xxxxxxxxxxxxxxxxxx>,\"David S.
> Miller" <davem@xxxxxxxxxxxxx>,b.a.t.m.a.n@xxxxxxxxxxxxxxxxxxx,netdev@xxxxxxxxxxxxxxx,linux-kernel@xxxxxxxxxxxxxxx'
> The problem seems to go away if I get rid of the quotes around "David S.
> Miller". Is it intentional to give a warning in this case?

scripts/checkpatch.pl | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 5e93342..9bc0e06 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1504,9 +1504,11 @@ sub process {
if ($line =~ /^diff --git.*?(\S+)$/) {
$realfile = $1;
$realfile =~ s@^([^/]*)/@@;
+ $in_commit_log = 0;
} elsif ($line =~ /^\+\+\+\s+(\S+)/) {
$realfile = $1;
$realfile =~ s@^([^/]*)/@@;
+ $in_commit_log = 0;

$p1_prefix = $1;
if (!$file && $tree && $p1_prefix ne '' &&
@@ -1546,7 +1548,8 @@ sub process {
}

# Check signature styles
- if ($line =~ /^(\s*)($signature_tags)(\s*)(.*)/) {
+ if (!$in_header_lines &&
+ $line =~ /^(\s*)($signature_tags)(\s*)(.*)/) {
my $space_before = $1;
my $sign_off = $2;
my $space_after = $3;
@@ -1623,7 +1626,7 @@ sub process {
# Check if it's the start of a commit log
# (not a header line and we haven't seen the patch filename)
if ($in_header_lines && $realfile =~ /^$/ &&
- $rawline !~ /^(commit\b|from\b|\w+:).+$/i) {
+ $rawline !~ /^(commit\b|from\b|[\w-]+:).+$/i) {
$in_header_lines = 0;
$in_commit_log = 1;
}
--
1.7.6.405.gc1be0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/