The patch titled scripts/get_maintainer.pl: add maintainers in order listed in matched section has been added to the -mm tree. Its filename is scripts-get_maintainerpl-add-maintainers-in-order-listed-in-matched-section.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: scripts/get_maintainer.pl: add maintainers in order listed in matched section From: Joe Perches <joe@xxxxxxxxxxx> Previous behavior was "bottom-up" in each section from the pattern "F:" entry that matched. Now information is entered into the various lists in the "as entered" order for each matched section. This also allows the F: entry to be put anywhere in a section, not just as the last entries in the section. And a couple of improvements: Don't alphabetically sort before outputting the matched scm, status, subsystem and web sections. Ignore content after a single email address so these entries are acceptable M: name <address> whatever other comment And a fix: Make an M: entry without a name again use the name from an immediately preceding P: line if it exists. Signed-off-by: Joe Perches <joe@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- scripts/get_maintainer.pl | 70 +++++++++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 16 deletions(-) diff -puN scripts/get_maintainer.pl~scripts-get_maintainerpl-add-maintainers-in-order-listed-in-matched-section scripts/get_maintainer.pl --- a/scripts/get_maintainer.pl~scripts-get_maintainerpl-add-maintainers-in-order-listed-in-matched-section +++ a/scripts/get_maintainer.pl @@ -313,22 +313,22 @@ if ($email || $email_list) { } if ($scm) { - @scm = sort_and_uniq(@scm); + @scm = uniq(@scm); output(@scm); } if ($status) { - @status = sort_and_uniq(@status); + @status = uniq(@status); output(@status); } if ($subsystem) { - @subsystem = sort_and_uniq(@subsystem); + @subsystem = uniq(@subsystem); output(@subsystem); } if ($web) { - @web = sort_and_uniq(@web); + @web = uniq(@web); output(@web); } @@ -442,7 +442,7 @@ sub parse_email { $address = $2; } elsif ($formatted_email =~ /^\s*<(.+\@\S*)>.*$/) { $address = $1; - } elsif ($formatted_email =~ /^(.+\@\S*)$/) { + } elsif ($formatted_email =~ /^(.+\@\S*).*$/) { $address = $1; } @@ -485,12 +485,46 @@ sub format_email { return $formatted_email; } -sub add_categories { +sub find_starting_index { + + my ($index) = @_; + + while ($index > 0) { + my $tv = $typevalue[$index]; + if (!($tv =~ m/^(\C):\s*(.*)/)) { + last; + } + $index--; + } + + return $index; +} + +sub find_ending_index { my ($index) = @_; - $index = $index - 1; - while ($index >= 0) { + while ($index < @typevalue) { my $tv = $typevalue[$index]; + if (!($tv =~ m/^(\C):\s*(.*)/)) { + last; + } + $index++; + } + + return $index; +} + +sub add_categories { + my ($index) = @_; + + my $i; + my $start = find_starting_index($index); + my $end = find_ending_index($index); + + push(@subsystem, $typevalue[$start]); + + for ($i = $start + 1; $i < $end; $i++) { + my $tv = $typevalue[$i]; if ($tv =~ m/^(\C):\s*(.*)/) { my $ptype = $1; my $pvalue = $2; @@ -513,11 +547,12 @@ sub add_categories { } elsif ($ptype eq "M") { my ($name, $address) = parse_email($pvalue); if ($name eq "") { - if ($index >= 0) { - my $tv = $typevalue[$index - 1]; + if ($i > 0) { + my $tv = $typevalue[$i - 1]; if ($tv =~ m/^(\C):\s*(.*)/) { if ($1 eq "P") { $name = $2; + $pvalue = format_email($name, $address); } } } @@ -532,11 +567,6 @@ sub add_categories { } elsif ($ptype eq "S") { push(@status, $pvalue); } - - $index--; - } else { - push(@subsystem,$tv); - $index = -1; } } } @@ -559,6 +589,10 @@ sub push_email_address { my ($name, $address) = parse_email($line); + if ($address eq "") { + return 0; + } + if (!$email_remove_duplicates) { push(@email_to, format_email($name, $address)); } elsif (!email_inuse($name, $address)) { @@ -566,6 +600,8 @@ sub push_email_address { $email_hash_name{$name}++; $email_hash_address{$address}++; } + + return 1; } sub push_email_addresses { @@ -581,7 +617,9 @@ sub push_email_addresses { push_email_address($entry); } } else { - warn("Invalid MAINTAINERS address: '" . $address . "'\n"); + if (!push_email_address($address)) { + warn("Invalid MAINTAINERS address: '" . $address . "'\n"); + } } } _ Patches currently in -mm which might be from joe@xxxxxxxxxxx are linux-next.patch maintainers-add-ipvs-include-files.patch scripts-get_maintainerpl-add-git-blame.patch scripts-get_maintainerpl-add-sections-in-pattern-match-depth-order.patch scripts-get_maintainerpl-add-pattern-depth.patch scripts-get_maintainerpl-better-email-routines-use-perl-not-shell-where-possible.patch scripts-get_maintainerpl-add-mailmap-use-shell-and-email-cleanups.patch scripts-get_maintainerpl-using-separator-implies-nomultiline.patch scripts-get_maintainerpl-add-remove-duplicates.patch scripts-get_maintainerpl-add-maintainers-in-order-listed-in-matched-section.patch mmc-msm_sdccc-driver-for-htc-dream.patch msm_sdccc-convert-printkkern_level-to-pr_level.patch msm_sdccc-stylistic-cleaning.patch msm_sdccc-move-overly-indented-code-to-separate-function.patch maintainers-add-matt-mackall-and-herbert-xu-to-hardware-random-number-generator.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html