From: Joe Perches <j...@perches.com>

Recently signature tag Co-Developed-by was added to the
kernel (Documentation/process/5.Posting.rst). checkpatch.pl doesn't know
about it yet. All prior tags used all lowercase characters except for first
character. Checks for this format had to be re-worked to allow for the
new tag.

Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>

Reviewed-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Signed-off-by: Tobin C. Harding <m...@tobin.cc>
---
 scripts/checkpatch.pl | 58 +++++++++++++++++++++++++++++++--------------------
 1 file changed, 35 insertions(+), 23 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 3d4040322ae1..fbe2ae2d035f 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -461,16 +461,18 @@ our $logFunctions = qr{(?x:
        seq_vprintf|seq_printf|seq_puts
 )};
 
-our $signature_tags = qr{(?xi:
-       Signed-off-by:|
-       Acked-by:|
-       Tested-by:|
-       Reviewed-by:|
-       Reported-by:|
-       Suggested-by:|
-       To:|
-       Cc:
-)};
+our @valid_signatures = (
+       "Signed-off-by:",
+       "Acked-by:",
+       "Tested-by:",
+       "Reviewed-by:",
+       "Reported-by:",
+       "Suggested-by:",
+       "Co-Developed-by:",
+       "To:",
+       "Cc:"
+);
+my $signature_tags = "(?x:" . join('|', @valid_signatures) . ")";
 
 our @typeListMisordered = (
        qr{char\s+(?:un)?signed},
@@ -2193,6 +2195,17 @@ sub pos_last_openparen {
        return length(expand_tabs(substr($line, 0, $last_openparen))) + 1;
 }
 
+sub get_preferred_sign_off {
+       my ($sign_off) = @_;
+
+       foreach my $sig (@valid_signatures) {
+               if (lc($sign_off) eq lc($sig)) {
+                       return $sig;
+               }
+       }
+       return "";
+}
+
 sub process {
        my $filename = shift;
 
@@ -2499,35 +2512,34 @@ sub process {
                        my $sign_off = $2;
                        my $space_after = $3;
                        my $email = $4;
-                       my $ucfirst_sign_off = ucfirst(lc($sign_off));
+                       my $preferred_sign_off = ucfirst(lc($sign_off));
 
-                       if ($sign_off !~ /$signature_tags/) {
+                       if ($sign_off !~ /$signature_tags/i) {
                                WARN("BAD_SIGN_OFF",
                                     "Non-standard signature: $sign_off\n" . 
$herecurr);
-                       }
-                       if (defined $space_before && $space_before ne "") {
+                       } elsif ($sign_off !~ /$signature_tags/) {
+                               $preferred_sign_off = 
get_preferred_sign_off($sign_off);
                                if (WARN("BAD_SIGN_OFF",
-                                        "Do not use whitespace before 
$ucfirst_sign_off\n" . $herecurr) &&
+                                        "'$preferred_sign_off' is the 
preferred signature form\n" . $herecurr) &&
                                    $fix) {
-                                       $fixed[$fixlinenr] =
-                                           "$ucfirst_sign_off $email";
+                                       $fixed[$fixlinenr] = 
"$preferred_sign_off $email";
                                }
                        }
-                       if ($sign_off =~ /-by:$/i && $sign_off ne 
$ucfirst_sign_off) {
+                       if (defined $space_before && $space_before ne "") {
                                if (WARN("BAD_SIGN_OFF",
-                                        "'$ucfirst_sign_off' is the preferred 
signature form\n" . $herecurr) &&
+                                        "Do not use whitespace before 
$preferred_sign_off\n" . $herecurr) &&
                                    $fix) {
                                        $fixed[$fixlinenr] =
-                                           "$ucfirst_sign_off $email";
+                                           "$preferred_sign_off $email";
                                }
-
                        }
+
                        if (!defined $space_after || $space_after ne " ") {
                                if (WARN("BAD_SIGN_OFF",
-                                        "Use a single space after 
$ucfirst_sign_off\n" . $herecurr) &&
+                                        "Use a single space after 
$preferred_sign_off\n" . $herecurr) &&
                                    $fix) {
                                        $fixed[$fixlinenr] =
-                                           "$ucfirst_sign_off $email";
+                                           "$preferred_sign_off $email";
                                }
                        }
 
-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to