Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 508a6c80 authored by Elliot Berman's avatar Elliot Berman Committed by Gerrit - the friendly Code Review server
Browse files

checkpatch: Handle quotes within commit reference descriptions



Checkpatch tests that commit references follow the format:

  commit 19c146a6 ("checkpatch: make sure a commit reference
description uses parentheses")

If a commit is a revert commit, its title line is frequently like:
  Revert "checkpatch: make sure a commit reference uses parantheses"

Checkpatch doesn't handle quotation marks in commit message properly, so
use a lookahead to detect the "), which is less frequently found in
commit message title lines. Since a lookahead is used, commits with ")
in the title line, such as commit 8ac68dc455d9 ("revert: 1320a4052ea1
("audit: trigger accompanying records when no rules present")"), is
handled properly.

There is at least one case not properly handled, where the title spans
two lines and there is a ") on the first line. There are approximately 5
such possible commits on 5.9-rc8.

Change-Id: Ia3355103aa6d15d4109fa11155d07b14bd7d9f0f
Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
parent b20ec664
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -2986,20 +2986,20 @@ sub process {
			$long = 1 if ($line =~ /\bcommit\s+[0-9a-f]{41,}/i);
			$space = 0 if ($line =~ /\bcommit [0-9a-f]/i);
			$case = 0 if ($line =~ /\b[Cc]ommit\s+[0-9a-f]{5,40}[^A-F]/);
			if ($line =~ /\bcommit\s+[0-9a-f]{5,}\s+\("([^"]+)"\)/i) {
			if ($line =~ /\bcommit\s+[0-9a-f]{5,}\s+\("(.+)(?="\))/i) {
				$orig_desc = $1;
				$hasparens = 1;
			} elsif ($line =~ /\bcommit\s+[0-9a-f]{5,}\s*$/i &&
				 defined $rawlines[$linenr] &&
				 $rawlines[$linenr] =~ /^\s*\("([^"]+)"\)/) {
				 $rawlines[$linenr] =~ /^\s*\("(.+)(?="\))/) {
				$orig_desc = $1;
				$hasparens = 1;
			} elsif ($line =~ /\bcommit\s+[0-9a-f]{5,}\s+\("[^"]+$/i &&
			} elsif ($line =~ /\bcommit\s+[0-9a-f]{5,}\s+\(".+(?!"\))$/i &&
				 defined $rawlines[$linenr] &&
				 $rawlines[$linenr] =~ /^\s*[^"]+"\)/) {
				$line =~ /\bcommit\s+[0-9a-f]{5,}\s+\("([^"]+)$/i;
				 $rawlines[$linenr] =~ /^\s*.+(?<="\))/) {
				$line =~ /\bcommit\s+[0-9a-f]{5,}\s+\("(.+)$/i;
				$orig_desc = $1;
				$rawlines[$linenr] =~ /^\s*([^"]+)"\)/;
				$rawlines[$linenr] =~ /^\s*(.+)(?="\))/;
				$orig_desc .= " " . $1;
				$hasparens = 1;
			}