From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59A6FC00A89 for ; Fri, 30 Oct 2020 09:07:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DFB3B206DB for ; Fri, 30 Oct 2020 09:07:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FCFsB3/t" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726027AbgJ3JHe (ORCPT ); Fri, 30 Oct 2020 05:07:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40836 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725801AbgJ3JHe (ORCPT ); Fri, 30 Oct 2020 05:07:34 -0400 Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74DB3C0613CF for ; Fri, 30 Oct 2020 02:07:34 -0700 (PDT) Received: by mail-pg1-x52f.google.com with SMTP id 15so4640972pgd.12 for ; Fri, 30 Oct 2020 02:07:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=+B7DrabjALESSLgvrRU2SUJPeb/davPcXgiTuHjAvYs=; b=FCFsB3/tIibDL4zx1fW1oF29wuAfAoJ1hS97J0MKs7E1RJUrUZ94sjGhHikaqpnYmG tCr+48OEbfz6TqXrGwlOURI68Ik1O2UMqQveFp3XHKB2rF8Vo05gSrZOAdpt1USJrB/G IFZ4GOiqKb0MGjsIoErdioH8lV1BXqMhbMJqPI2xpDxN3y1Q5No8seR5k6RxTPQFF9G5 C69+8qUCIyqkggXfZf0B4Ngn/X1Zkg/nnv3HSvReNWIZv+qogBm87gVAOmsTiiyP3ys7 gFu6PMZf3DMGTng4VwRUQLm0h5D6xcLXW4nr/SkDyCIUdwvWbKB2iR7kfKUw/5zE4f6d TidQ== 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:mime-version :content-transfer-encoding; bh=+B7DrabjALESSLgvrRU2SUJPeb/davPcXgiTuHjAvYs=; b=aaKgKBJFzGyGoRk9fOYnoUvg+txP0gLpSslejlYM3P/yT43ESmhhSH+t/f1fTC94HT sbaef23zo1l3bUYFnEI6dGIrC94jg2ma3m1S6puJF702O9ekfvm4wJds6iP1/4Kd2T0a nRV0SkP7hAdSX2UDF/2LTVf6KN1Znaw6VCcEwP2zpLwEXJRtEl6oKX4ZLKF0kZdepC66 RLrZXnfXf6oZYM7ivik0W5B6WkpVE0RX18z4aiNZ008gwqvkhbuMb+tG5YxQVaIYAPB9 wEhBbUS0yPY3t9mh/pAl4GaNSx2HfNXqVd5LkX5c+ydgrY8bYd0ULmEdDkvyyRQH03Tp AqJA== X-Gm-Message-State: AOAM5323AgUT6AUXDQFbciVOCjxsJzKeQ/qUjnAXJqsm76tYjOUiW1HA vU7AITmeQwgSn8EYQl3png7DuNMnEW2fwxPY X-Google-Smtp-Source: ABdhPJwQoy5lGoxWGCu+w56vGEHkheybredgq458reF1b9S+aRPHgVNaR+OoMNWdPanqXrkH9up5ng== X-Received: by 2002:a63:6503:: with SMTP id z3mr1313531pgb.2.1604048853824; Fri, 30 Oct 2020 02:07:33 -0700 (PDT) Received: from localhost.localdomain ([2405:201:9004:6819:f451:9e0a:873f:ed68]) by smtp.gmail.com with ESMTPSA id w187sm5245878pfb.93.2020.10.30.02.07.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 02:07:32 -0700 (PDT) From: Dwaipayan Ray To: joe@perches.com Cc: linux-kernel-mentees@lists.linuxfoundation.org, dwaipayanray1@gmail.com, linux-kernel@vger.kernel.org, lukas.bulwahn@gmail.com, yashsri421@gmail.com Subject: [PATCH] checkpatch: improve handling of email comments Date: Fri, 30 Oct 2020 14:37:04 +0530 Message-Id: <20201030090704.40533-1-dwaipayanray1@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org checkpatch has limited support for parsing email comments. It only support single name comments or single after address comments. Whereas, RFC 5322 specifies that comments can be inserted in between any tokens of the email fields. Improve comment parsing mechanism in checkpatch. What is handled now: - Multiple name/address comments - Comments anywhere in between name/address - Nested comments like (John (Doe)) A brief analysis of checkpatch output on v5.0..v5.7 showed that after these modifications, the number of BAD_SIGN_OFF warnings came down from 2944 to 1424, and FROM_SIGN_OFF_MISMATCH came down from 2366 to 2330. So, a total of 1556 false positives were resolved in total. Signed-off-by: Dwaipayan Ray --- scripts/checkpatch.pl | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index fab38b493cef..ae8436385fc1 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -1183,14 +1183,20 @@ sub parse_email { } } - $comment = trim($comment); + # Comments in between name like John(A nice chap) Doe + while ($name =~ s/\s*($balanced_parens)\s*/ /) { + $name_comment .= trim($1); + } $name = trim($name); $name =~ s/^\"|\"$//g; - if ($name =~ s/(\s*\([^\)]+\))\s*//) { - $name_comment = trim($1); + + # Comments in between address like + while ($address =~ s/\s*($balanced_parens)\s*//) { + $comment .= trim($1); } $address = trim($address); $address =~ s/^\<|\>$//g; + $comment = trim($comment); if ($name =~ /[^\w \-]/i) { ##has "must quote" chars $name =~ s/(?