diff options
Diffstat (limited to 'scripts/get_maintainer.pl')
| -rwxr-xr-x | scripts/get_maintainer.pl | 84 |
1 files changed, 54 insertions, 30 deletions
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl index 445e8845f0a4..090f24839700 100755 --- a/scripts/get_maintainer.pl +++ b/scripts/get_maintainer.pl | |||
| @@ -296,46 +296,56 @@ my @status = (); | |||
| 296 | 296 | ||
| 297 | foreach my $file (@files) { | 297 | foreach my $file (@files) { |
| 298 | 298 | ||
| 299 | #Do not match excluded file patterns | 299 | my %hash; |
| 300 | 300 | my $tvi = find_first_section(); | |
| 301 | my $exclude = 0; | 301 | while ($tvi < @typevalue) { |
| 302 | foreach my $line (@typevalue) { | 302 | my $start = find_starting_index($tvi); |
| 303 | if ($line =~ m/^(\C):\s*(.*)/) { | 303 | my $end = find_ending_index($tvi); |
| 304 | my $type = $1; | 304 | my $exclude = 0; |
| 305 | my $value = $2; | 305 | my $i; |
| 306 | if ($type eq 'X') { | 306 | |
| 307 | if (file_match_pattern($file, $value)) { | 307 | #Do not match excluded file patterns |
| 308 | $exclude = 1; | ||
| 309 | last; | ||
| 310 | } | ||
| 311 | } | ||
| 312 | } | ||
| 313 | } | ||
| 314 | 308 | ||
| 315 | if (!$exclude) { | 309 | for ($i = $start; $i < $end; $i++) { |
| 316 | my $tvi = 0; | 310 | my $line = $typevalue[$i]; |
| 317 | my %hash; | ||
| 318 | foreach my $line (@typevalue) { | ||
| 319 | if ($line =~ m/^(\C):\s*(.*)/) { | 311 | if ($line =~ m/^(\C):\s*(.*)/) { |
| 320 | my $type = $1; | 312 | my $type = $1; |
| 321 | my $value = $2; | 313 | my $value = $2; |
| 322 | if ($type eq 'F') { | 314 | if ($type eq 'X') { |
| 323 | if (file_match_pattern($file, $value)) { | 315 | if (file_match_pattern($file, $value)) { |
| 324 | my $value_pd = ($value =~ tr@/@@); | 316 | $exclude = 1; |
| 325 | my $file_pd = ($file =~ tr@/@@); | ||
| 326 | $value_pd++ if (substr($value,-1,1) ne "/"); | ||
| 327 | if ($pattern_depth == 0 || | ||
| 328 | (($file_pd - $value_pd) < $pattern_depth)) { | ||
| 329 | $hash{$tvi} = $value_pd; | ||
| 330 | } | ||
| 331 | } | 317 | } |
| 332 | } | 318 | } |
| 333 | } | 319 | } |
| 334 | $tvi++; | ||
| 335 | } | 320 | } |
| 336 | foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) { | 321 | |
| 337 | add_categories($line); | 322 | if (!$exclude) { |
| 323 | for ($i = $start; $i < $end; $i++) { | ||
| 324 | my $line = $typevalue[$i]; | ||
| 325 | if ($line =~ m/^(\C):\s*(.*)/) { | ||
| 326 | my $type = $1; | ||
| 327 | my $value = $2; | ||
| 328 | if ($type eq 'F') { | ||
| 329 | if (file_match_pattern($file, $value)) { | ||
| 330 | my $value_pd = ($value =~ tr@/@@); | ||
| 331 | my $file_pd = ($file =~ tr@/@@); | ||
| 332 | $value_pd++ if (substr($value,-1,1) ne "/"); | ||
| 333 | if ($pattern_depth == 0 || | ||
| 334 | (($file_pd - $value_pd) < $pattern_depth)) { | ||
| 335 | $hash{$tvi} = $value_pd; | ||
| 336 | } | ||
| 337 | } | ||
| 338 | } | ||
| 339 | } | ||
| 340 | } | ||
| 338 | } | 341 | } |
| 342 | |||
| 343 | $tvi += ($end - $start); | ||
| 344 | |||
| 345 | } | ||
| 346 | |||
| 347 | foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) { | ||
| 348 | add_categories($line); | ||
| 339 | } | 349 | } |
| 340 | 350 | ||
| 341 | if ($email && $email_git) { | 351 | if ($email && $email_git) { |
| @@ -570,6 +580,20 @@ sub format_email { | |||
| 570 | return $formatted_email; | 580 | return $formatted_email; |
| 571 | } | 581 | } |
| 572 | 582 | ||
| 583 | sub find_first_section { | ||
| 584 | my $index = 0; | ||
| 585 | |||
| 586 | while ($index < @typevalue) { | ||
| 587 | my $tv = $typevalue[$index]; | ||
| 588 | if (($tv =~ m/^(\C):\s*(.*)/)) { | ||
| 589 | last; | ||
| 590 | } | ||
| 591 | $index++; | ||
| 592 | } | ||
| 593 | |||
| 594 | return $index; | ||
| 595 | } | ||
| 596 | |||
| 573 | sub find_starting_index { | 597 | sub find_starting_index { |
| 574 | my ($index) = @_; | 598 | my ($index) = @_; |
| 575 | 599 | ||
