From patchwork Wed Oct 10 11:13:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 10634369 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3D60C69B4 for ; Wed, 10 Oct 2018 11:14:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 75D71296DE for ; Wed, 10 Oct 2018 11:14:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6A6AD298B0; Wed, 10 Oct 2018 11:14:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1CE63296DE for ; Wed, 10 Oct 2018 11:14:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726636AbeJJSfq (ORCPT ); Wed, 10 Oct 2018 14:35:46 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:44763 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726607AbeJJSfq (ORCPT ); Wed, 10 Oct 2018 14:35:46 -0400 Received: by mail-ed1-f67.google.com with SMTP id z21-v6so4532922edb.11 for ; Wed, 10 Oct 2018 04:14:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kEeYCHJ0/sOxKB2348WvjzSm3xUrWiiQDDIhRAWGsok=; b=QaS1jMI8+ye+a4QhVG0NUP6VsLULG0ZLsR397mKXtVdumOyIKDcSt1v3EOs4HlsaKP 2Mdk06RKdjnpyTwAxnL6+CACFuHJThMJJeYUlOIRMcWyrNem8x1c8KAuKc1OEMx3A1v8 X899/dKd9Mz7NOgzEVEEWI9+eCksSDwq9mI24= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kEeYCHJ0/sOxKB2348WvjzSm3xUrWiiQDDIhRAWGsok=; b=SHYHfxGSRAvQKrXFxrdM8GkFsVcC5huH7HegDEys469bhFDXXZQ3yhlCXxEw27L//l BIow2k3bOLHrSjL4UI+0aXI7x2/aT/SsJQA8qOkaOBy237X5ZmgmHerm+g/icNt3fk6Q 4NnNUj1255+x4jGwGqNbav+Eh9BpC2CMM92zUceyWQyr5mRUkCxK4Rz7q5Ia0kSSz/Uz sNZGoO2jv1Z85aXUkBw7lP+dvfZr6Fpdxu7yXR5Ag7Tw0MRCcQZXns+XkTndJe0EdU+A 13t8hx/z/3y6bFlI6bBiVGT+YIBCK5127B2s6Ah/u8R61X9FuIgYjWyD+G/WjIdg0WRd ggWg== X-Gm-Message-State: ABuFfojNIw7edUH1dklu3yEuljwpLmeUZJQz9IElaEjVVh1r4mCw6zdZ UiyhVemAybYEK26BBH0uy2DXZr1a89w= X-Google-Smtp-Source: ACcGV60qfEu2qAvFkL2V6Ff+Viq7sXTsduuFopttZ7Wt2KMY4say0MmSaLx1Cr2l/awD2aO4+71jrA== X-Received: by 2002:a17:906:c28f:: with SMTP id r15-v6mr32539521ejz.188.1539170044505; Wed, 10 Oct 2018 04:14:04 -0700 (PDT) Received: from prevas-ravi.vestasvisitor.net ([193.47.71.171]) by smtp.gmail.com with ESMTPSA id e10-v6sm4154596ejl.25.2018.10.10.04.14.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 10 Oct 2018 04:14:03 -0700 (PDT) From: Rasmus Villemoes To: git@vger.kernel.org Cc: Rasmus Villemoes Subject: [PATCH 1/3] Documentation/git-send-email.txt: style fixes Date: Wed, 10 Oct 2018 13:13:49 +0200 Message-Id: <20181010111351.5045-2-rv@rasmusvillemoes.dk> X-Mailer: git-send-email 2.19.1.6.g084f1d7761 In-Reply-To: <20181010111351.5045-1-rv@rasmusvillemoes.dk> References: <20181010111351.5045-1-rv@rasmusvillemoes.dk> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP For consistency, add full stops in a few places and outdent a line by one space. Signed-off-by: Rasmus Villemoes --- Documentation/git-send-email.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt index 465a4ecbed..ea6ea512fe 100644 --- a/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt @@ -321,16 +321,16 @@ Automating auto-cc of: + -- -- 'author' will avoid including the patch author -- 'self' will avoid including the sender +- 'author' will avoid including the patch author. +- 'self' will avoid including the sender. - 'cc' will avoid including anyone mentioned in Cc lines in the patch header except for self (use 'self' for that). - 'bodycc' will avoid including anyone mentioned in Cc lines in the patch body (commit message) except for self (use 'self' for that). - 'sob' will avoid including anyone mentioned in Signed-off-by lines except - for self (use 'self' for that). + for self (use 'self' for that). - 'cccmd' will avoid running the --cc-cmd. -- 'body' is equivalent to 'sob' + 'bodycc' +- 'body' is equivalent to 'sob' + 'bodycc'. - 'all' will suppress all auto cc values. -- + From patchwork Wed Oct 10 11:13:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 10634373 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5E1DB14BD for ; Wed, 10 Oct 2018 11:14:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1D13C296B0 for ; Wed, 10 Oct 2018 11:14:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 119802983A; Wed, 10 Oct 2018 11:14:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AD12D296B0 for ; Wed, 10 Oct 2018 11:14:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726693AbeJJSfs (ORCPT ); Wed, 10 Oct 2018 14:35:48 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:44768 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726607AbeJJSfs (ORCPT ); Wed, 10 Oct 2018 14:35:48 -0400 Received: by mail-ed1-f67.google.com with SMTP id z21-v6so4533030edb.11 for ; Wed, 10 Oct 2018 04:14:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AA5hpRie/BRqmg+0sooMQi33vRD4ndgbLKkWgv3hqDE=; b=IZWTpfjyDlyOmSruMB0WMpmu3sMeGA594oSVMyLzrPRCovf+/sl7V/npqQtg9cJfzy noqrg+BrbEDDtc/sj8AmAPzkuwk+fAqAsAmJ/3WGovWpCm6vAeM5ZPxpgHIdSygEWSB+ yOxN9i+Z8MpC7gdtgCo3qFqcB38G2YSbRZV5o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AA5hpRie/BRqmg+0sooMQi33vRD4ndgbLKkWgv3hqDE=; b=nFeIMK197Xssu1IoDmwXh5TbwOW8SedG4Om0svYXdAQjUCkp7earxamZFDYGkmM5Es f0tKZcJO7aXPcaW7Fy5hsLhP10OpdFGSFD8j/FdLCa4CPg8UVfkqt+Dj4fqDyqE+mIHG wQDTE68DxO/+SxSEJ4fYUszoFDCdPSHQaUAAaHo2pk1l/cHmwfz57/7s9RBgp8OWJsBL vfsV0VpAmW+AYyn9dHmTNuZDjTZ7ThQPJKamagYnaursGxkcWPGw7XQ9re7gAj8KPScL fl6qowMcNWMKP29fWKazplnLHDN2lTWQ1BR2ajZudQEvL62FMIj+n5VD77CwXMt4Jof8 H7PA== X-Gm-Message-State: ABuFfoh0sE48SK3yYmnPq4tg22s+PKRUfHax5s6BYJIwfyvSevEIkG2H SsCJ3IUN5yeaOo0XNGVPTA8ZL7ZUrbY= X-Google-Smtp-Source: ACcGV625100DLcX6aqd05VJPmk7sOaRubXt/TrAos7Ttp1pRZ/qlmPtyxx9pC7oFaLA9rlyPXXxVUQ== X-Received: by 2002:a50:87c5:: with SMTP id 5-v6mr39669410edz.89.1539170047288; Wed, 10 Oct 2018 04:14:07 -0700 (PDT) Received: from prevas-ravi.vestasvisitor.net ([193.47.71.171]) by smtp.gmail.com with ESMTPSA id e10-v6sm4154596ejl.25.2018.10.10.04.14.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 10 Oct 2018 04:14:06 -0700 (PDT) From: Rasmus Villemoes To: git@vger.kernel.org Cc: Rasmus Villemoes Subject: [PATCH 2/3] send-email: only consider lines containing @ or <> for automatic Cc'ing Date: Wed, 10 Oct 2018 13:13:50 +0200 Message-Id: <20181010111351.5045-3-rv@rasmusvillemoes.dk> X-Mailer: git-send-email 2.19.1.6.g084f1d7761 In-Reply-To: <20181010111351.5045-1-rv@rasmusvillemoes.dk> References: <20181010111351.5045-1-rv@rasmusvillemoes.dk> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP While the address sanitizations routines do accept local addresses, that is almost never what is meant in a Cc or Signed-off-by trailer. Looking through all the signed-off-by lines in the linux kernel tree without a @, there are mostly two patterns: Either just a full name, or a full name followed by (i.e., with the word at instead of a @), and minor variations. For cc lines, the same patterns appear, along with lots of "cc stable" variations that do not actually name stable@vger.kernel.org Cc: stable # introduced pre-git times cc: stable.kernel.org In the cases, one gets a chance to interactively fix it. But when there is no <> pair, it seems we end up just using the first word as a (local) address. As the number of cases where a local address really was meant is likely (and anecdotally) quite small compared to the number of cases where we end up cc'ing a garbage address, insist on at least a @ or a <> pair being present. This is also preparation for the next patch, where we are likely to encounter even more non-addresses in -by lines, such as Reported-by: Coverity Patch-generated-by: Coccinelle Signed-off-by: Rasmus Villemoes --- git-send-email.perl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/git-send-email.perl b/git-send-email.perl index 2be5dac337..1916159d2a 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -1694,6 +1694,11 @@ sub process_file { next if $suppress_cc{'sob'} and $what =~ /Signed-off-by/i; next if $suppress_cc{'bodycc'} and $what =~ /Cc/i; } + if ($c !~ /.+@.+|<.+>/) { + printf("(body) Ignoring %s from line '%s'\n", + $what, $_) unless $quiet; + next; + } push @cc, $c; printf(__("(body) Adding cc: %s from line '%s'\n"), $c, $_) unless $quiet; From patchwork Wed Oct 10 11:13:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 10634375 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E3DFB17E3 for ; Wed, 10 Oct 2018 11:14:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D36D3296B0 for ; Wed, 10 Oct 2018 11:14:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C7FAF2983A; Wed, 10 Oct 2018 11:14:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 47677296B0 for ; Wed, 10 Oct 2018 11:14:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726725AbeJJSfv (ORCPT ); Wed, 10 Oct 2018 14:35:51 -0400 Received: from mail-ed1-f65.google.com ([209.85.208.65]:42518 "EHLO mail-ed1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726607AbeJJSfv (ORCPT ); Wed, 10 Oct 2018 14:35:51 -0400 Received: by mail-ed1-f65.google.com with SMTP id b7-v6so4543712edd.9 for ; Wed, 10 Oct 2018 04:14:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LHkXNhIjpWezbfLp3zJ/9TZ53JCOgvmTw6ydBDf9F8Y=; b=Cqbg7srp/Go/ciIV31xxlR+8G00yNxG+zevrM3yDte16JRrAN0YHhGTIt8n2xwvAG3 23UMBMh2Nznebkya3xJyxAWPoGEDYHU0QeWPGPp4L3PKkOjDfcSJAXKOCLUcKUlTEBDP QQgm7hofZAwJFKDFUvMPHDKp5NBtcrvBE5q/M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LHkXNhIjpWezbfLp3zJ/9TZ53JCOgvmTw6ydBDf9F8Y=; b=DzX906WQJRFTEbo4TA8k67WwQKgYsLBeBN5Hq2bLeL+tuRRKWBKCtv8CtahIWXTS4y 1nJo5gLmCEQRw3dz7+TJWmvzPmiVNQoXmbGhiReF4FMjGKVxJ3G5ZXzTmWiFElbCRFNl ZMkE6AYFZABlqrFK/awJivqe365RJGPk/40lF6eeMEmLuZfBzN5dX+0cGKPO1fhO7Cj1 wd3mJq9WENU9Y65wSYeDedMjGAVLGQa8ol1LKVomgMtz2jGWycplCCqF5+1RFn36qLby +99pZSOqLBzUZ9amw128FsP0SBYMQo8M3YIyaHenYj34JbLgNIIjf5qLYZcdr2/oSpkJ Z1Iw== X-Gm-Message-State: ABuFfogcOoLC0gFtbLR4c80T6dI1/f5U5VHgzLyONJZJyZHWo4d2+DIh GHM5Z1nfozVM9e1I0ntVGOBqW2hZHzU= X-Google-Smtp-Source: ACcGV60M/T3SIxO40rNgpGICxXtp85/gKCsciGAIvMKb70q8mSiLJDr0nrT9cjN9SqNiFpOTtMeQNw== X-Received: by 2002:a50:8d1b:: with SMTP id s27-v6mr41203656eds.107.1539170049512; Wed, 10 Oct 2018 04:14:09 -0700 (PDT) Received: from prevas-ravi.vestasvisitor.net ([193.47.71.171]) by smtp.gmail.com with ESMTPSA id e10-v6sm4154596ejl.25.2018.10.10.04.14.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 10 Oct 2018 04:14:08 -0700 (PDT) From: Rasmus Villemoes To: git@vger.kernel.org Cc: Rasmus Villemoes , Joe Perches Subject: [PATCH 3/3] send-email: also pick up cc addresses from -by trailers Date: Wed, 10 Oct 2018 13:13:51 +0200 Message-Id: <20181010111351.5045-4-rv@rasmusvillemoes.dk> X-Mailer: git-send-email 2.19.1.6.g084f1d7761 In-Reply-To: <20181010111351.5045-1-rv@rasmusvillemoes.dk> References: <20181010111351.5045-1-rv@rasmusvillemoes.dk> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When rerolling a patch series, including various Reviewed-by etc. that may have come in, it is quite convenient to have git-send-email automatically cc those people. So pick up any *-by lines, with a new suppression category 'misc-by', but special-case Signed-off-by, since that already has its own suppression category. It seems natural to make 'misc-by' implied by 'body'. Based-on-patch-by: Joe Perches Signed-off-by: Rasmus Villemoes --- Documentation/git-send-email.txt | 5 ++++- git-send-email.perl | 14 ++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt index ea6ea512fe..f6010ac68b 100644 --- a/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt @@ -329,8 +329,11 @@ Automating patch body (commit message) except for self (use 'self' for that). - 'sob' will avoid including anyone mentioned in Signed-off-by lines except for self (use 'self' for that). +- 'misc-by' will avoid including anyone mentioned in Acked-by, + Reviewed-by, Tested-by and other "-by" lines in the patch body, + except Signed-off-by (use 'sob' for that). - 'cccmd' will avoid running the --cc-cmd. -- 'body' is equivalent to 'sob' + 'bodycc'. +- 'body' is equivalent to 'sob' + 'bodycc' + 'misc-by'. - 'all' will suppress all auto cc values. -- + diff --git a/git-send-email.perl b/git-send-email.perl index 1916159d2a..7a6391e5d8 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -94,7 +94,7 @@ sub usage { --identity * Use the sendemail. options. --to-cmd * Email To: via ` \$patch_path` --cc-cmd * Email Cc: via ` \$patch_path` - --suppress-cc * author, self, sob, cc, cccmd, body, bodycc, all. + --suppress-cc * author, self, sob, cc, cccmd, body, bodycc, misc-by, all. --[no-]cc-cover * Email Cc: addresses in the cover letter. --[no-]to-cover * Email To: addresses in the cover letter. --[no-]signed-off-by-cc * Send to Signed-off-by: addresses. Default on. @@ -454,13 +454,13 @@ sub read_config { if (@suppress_cc) { foreach my $entry (@suppress_cc) { die sprintf(__("Unknown --suppress-cc field: '%s'\n"), $entry) - unless $entry =~ /^(?:all|cccmd|cc|author|self|sob|body|bodycc)$/; + unless $entry =~ /^(?:all|cccmd|cc|author|self|sob|body|bodycc|misc-by)$/; $suppress_cc{$entry} = 1; } } if ($suppress_cc{'all'}) { - foreach my $entry (qw (cccmd cc author self sob body bodycc)) { + foreach my $entry (qw (cccmd cc author self sob body bodycc misc-by)) { $suppress_cc{$entry} = 1; } delete $suppress_cc{'all'}; @@ -471,7 +471,7 @@ sub read_config { $suppress_cc{'sob'} = !$signed_off_by_cc if defined $signed_off_by_cc; if ($suppress_cc{'body'}) { - foreach my $entry (qw (sob bodycc)) { + foreach my $entry (qw (sob bodycc misc-by)) { $suppress_cc{$entry} = 1; } delete $suppress_cc{'body'}; @@ -1681,7 +1681,7 @@ sub process_file { # Now parse the message body while(<$fh>) { $message .= $_; - if (/^(Signed-off-by|Cc): (.*)/i) { + if (/^([a-z-]*-by|Cc): (.*)/i) { chomp; my ($what, $c) = ($1, $2); # strip garbage for the address we'll use: @@ -1691,7 +1691,9 @@ sub process_file { if ($sc eq $sender) { next if ($suppress_cc{'self'}); } else { - next if $suppress_cc{'sob'} and $what =~ /Signed-off-by/i; + next if $suppress_cc{'sob'} and $what =~ /^Signed-off-by$/i; + next if $suppress_cc{'misc-by'} + and $what =~ /-by$/i and $what !~ /^Signed-off-by$/i; next if $suppress_cc{'bodycc'} and $what =~ /Cc/i; } if ($c !~ /.+@.+|<.+>/) {