From 7764dcb53473e5665ab3cdc461ccfc510fce925e Mon Sep 17 00:00:00 2001 From: Joe Perches Date: Tue, 22 Mar 2011 16:34:24 -0700 Subject: get_maintainer.pl: allow "K:" pattern tests to match non-patch text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Extend the usage of the K section in the MAINTAINERS file to support matching regular expressions to any arbitrary text that may precede the patch itself. For example, the commit message or mail headers generated by git-format-patch. Signed-off-by: Joe Perches Original-patch-by: L. Alberto Giménez Acked-by: L. Alberto Giménez Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- scripts/get_maintainer.pl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'scripts/get_maintainer.pl') diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl index 139e0fff8e3..d29a8d75cb2 100755 --- a/scripts/get_maintainer.pl +++ b/scripts/get_maintainer.pl @@ -420,6 +420,14 @@ foreach my $file (@ARGV) { open(my $patch, "< $file") or die "$P: Can't open $file: $!\n"; + + # We can check arbitrary information before the patch + # like the commit message, mail headers, etc... + # This allows us to match arbitrary keywords against any part + # of a git format-patch generated file (subject tags, etc...) + + my $patch_prefix = ""; #Parsing the intro + while (<$patch>) { my $patch_line = $_; if (m/^\+\+\+\s+(\S+)/) { @@ -428,13 +436,14 @@ foreach my $file (@ARGV) { $filename =~ s@\n@@; $lastfile = $filename; push(@files, $filename); + $patch_prefix = "^[+-].*"; #Now parsing the actual patch } elsif (m/^\@\@ -(\d+),(\d+)/) { if ($email_git_blame) { push(@range, "$lastfile:$1:$2"); } } elsif ($keywords) { foreach my $line (keys %keyword_hash) { - if ($patch_line =~ m/^[+-].*$keyword_hash{$line}/x) { + if ($patch_line =~ m/${patch_prefix}$keyword_hash{$line}/x) { push(@keyword_tvi, $line); } } -- cgit v1.2.3