Commit 272a8979 authored by Joe Perches's avatar Joe Perches Committed by Linus Torvalds

scripts/get_maintainer.pl: fix file exclusion X: logic

The following command doesn't generate any output.
`./scripts/get_maintainer.pl --no-git -f drivers/net/wireless/wl12xx/wl1271_acx.c`

An excluded "X:" pattern match in any section would cause a file not to
match any other section.
Signed-off-by: default avatarJoe Perches <joe@perches.com>
Reported-by: default avatarDan Carpenter <error27@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7ee3aebe
...@@ -296,26 +296,32 @@ my @status = (); ...@@ -296,26 +296,32 @@ my @status = ();
foreach my $file (@files) { foreach my $file (@files) {
#Do not match excluded file patterns my %hash;
my $tvi = find_first_section();
while ($tvi < @typevalue) {
my $start = find_starting_index($tvi);
my $end = find_ending_index($tvi);
my $exclude = 0; my $exclude = 0;
foreach my $line (@typevalue) { my $i;
#Do not match excluded file patterns
for ($i = $start; $i < $end; $i++) {
my $line = $typevalue[$i];
if ($line =~ m/^(\C):\s*(.*)/) { if ($line =~ m/^(\C):\s*(.*)/) {
my $type = $1; my $type = $1;
my $value = $2; my $value = $2;
if ($type eq 'X') { if ($type eq 'X') {
if (file_match_pattern($file, $value)) { if (file_match_pattern($file, $value)) {
$exclude = 1; $exclude = 1;
last;
} }
} }
} }
} }
if (!$exclude) { if (!$exclude) {
my $tvi = 0; for ($i = $start; $i < $end; $i++) {
my %hash; my $line = $typevalue[$i];
foreach my $line (@typevalue) {
if ($line =~ m/^(\C):\s*(.*)/) { if ($line =~ m/^(\C):\s*(.*)/) {
my $type = $1; my $type = $1;
my $value = $2; my $value = $2;
...@@ -331,12 +337,16 @@ foreach my $file (@files) { ...@@ -331,12 +337,16 @@ foreach my $file (@files) {
} }
} }
} }
$tvi++;
} }
}
$tvi += ($end - $start);
}
foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) { foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) {
add_categories($line); add_categories($line);
} }
}
if ($email && $email_git) { if ($email && $email_git) {
vcs_file_signoffs($file); vcs_file_signoffs($file);
...@@ -570,6 +580,20 @@ sub format_email { ...@@ -570,6 +580,20 @@ sub format_email {
return $formatted_email; return $formatted_email;
} }
sub find_first_section {
my $index = 0;
while ($index < @typevalue) {
my $tv = $typevalue[$index];
if (($tv =~ m/^(\C):\s*(.*)/)) {
last;
}
$index++;
}
return $index;
}
sub find_starting_index { sub find_starting_index {
my ($index) = @_; my ($index) = @_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment