History

get_maintainer.pl: allow "K:" pattern tests to match non-patch text

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 <joe@perches.com> Original-patch-by: L. Alberto Giménez <agimenez@sysvalve.es> Acked-by: L. Alberto Giménez <agimenez@sysvalve.es>

Joe Perches committed 15 years ago

Commit 7764dcb1 parent 5af5bcb1 file · +10 −1Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/get_maintainer.pl+10−1
@@ -420,6 +420,14 @@ foreach my $file (@ARGV) { · 419 unmodified lines
420 420
421 open(my $patch, "< $file")421 open(my $patch, "< $file")
422 or die "$P: Can't open $file: $!\n";422 or die "$P: Can't open $file: $!\n";
423
424 # We can check arbitrary information before the patch
425 # like the commit message, mail headers, etc...
426 # This allows us to match arbitrary keywords against any part
427 # of a git format-patch generated file (subject tags, etc...)
428
429 my $patch_prefix = ""; #Parsing the intro
430
423 while (<$patch>) {431 while (<$patch>) {
424 my $patch_line = $_;432 my $patch_line = $_;
425 if (m/^\+\+\+\s+(\S+)/) {433 if (m/^\+\+\+\s+(\S+)/) {
@@ -428,13 +436,14 @@ foreach my $file (@ARGV) { · 2 unmodified lines
428 $filename =~ s@\n@@;436 $filename =~ s@\n@@;
429 $lastfile = $filename;437 $lastfile = $filename;
430 push(@files, $filename);438 push(@files, $filename);
439 $patch_prefix = "^[+-].*"; #Now parsing the actual patch
431 } elsif (m/^\@\@ -(\d+),(\d+)/) {440 } elsif (m/^\@\@ -(\d+),(\d+)/) {
432 if ($email_git_blame) {441 if ($email_git_blame) {
433 push(@range, "$lastfile:$1:$2");442 push(@range, "$lastfile:$1:$2");
434 }443 }
435 } elsif ($keywords) {444 } elsif ($keywords) {
436 foreach my $line (keys %keyword_hash) {445 foreach my $line (keys %keyword_hash) {
437 if ($patch_line =~ m/^[+-].*$keyword_hash{$line}/x) {446 if ($patch_line =~ m/${patch_prefix}$keyword_hash{$line}/x) {
438 push(@keyword_tvi, $line);447 push(@keyword_tvi, $line);
439 }448 }
440 }449 }