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

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

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
Loading
Loading
Loading
Loading
+54 −30
Original line number Diff line number Diff line
@@ -296,26 +296,32 @@ my @status = ();

foreach my $file (@files) {

    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 $i;

	#Do not match excluded file patterns

    my $exclude = 0;
    foreach my $line (@typevalue) {
	for ($i = $start; $i < $end; $i++) {
	    my $line = $typevalue[$i];
	    if ($line =~ m/^(\C):\s*(.*)/) {
		my $type = $1;
		my $value = $2;
		if ($type eq 'X') {
		    if (file_match_pattern($file, $value)) {
			$exclude = 1;
		    last;
		    }
		}
	    }
	}

	if (!$exclude) {
	my $tvi = 0;
	my %hash;
	foreach my $line (@typevalue) {
	    for ($i = $start; $i < $end; $i++) {
		my $line = $typevalue[$i];
		if ($line =~ m/^(\C):\s*(.*)/) {
		    my $type = $1;
		    my $value = $2;
@@ -331,12 +337,16 @@ foreach my $file (@files) {
			}
		    }
		}
	    $tvi++;
	    }
	}

	$tvi += ($end - $start);

    }

    foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) {
	add_categories($line);
    }
    }

    if ($email && $email_git) {
	vcs_file_signoffs($file);
@@ -570,6 +580,20 @@ sub format_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 {
    my ($index) = @_;