X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FBugs.pm;h=e4f8cc8825e7fc887949a17c213d2a3115e7f548;hb=b69442768953b3b0df0ed6ba8f00fc97d4759721;hp=a68235827bdd78c0fb7002a3fcd11c2608a185f8;hpb=2fdee702bf617ca20b5870bcf8fa42fcf3a0907f;p=debbugs.git diff --git a/Debbugs/Bugs.pm b/Debbugs/Bugs.pm index a682358..e4f8cc8 100644 --- a/Debbugs/Bugs.pm +++ b/Debbugs/Bugs.pm @@ -55,7 +55,7 @@ use Params::Validate qw(validate_with :types); use IO::File; use Debbugs::Status qw(splitpackages get_bug_status); use Debbugs::Packages qw(getsrcpkgs getpkgsrc); -use Debbugs::Common qw(getparsedaddrs getmaintainers getmaintainers_reverse make_list); +use Debbugs::Common qw(getparsedaddrs package_maintainer getmaintainers make_list); use Fcntl qw(O_RDONLY); use MLDBM qw(DB_File Storable); use List::Util qw(first); @@ -325,7 +325,7 @@ sub bug_filter { optional => 1, }, repeat_merged => {type => BOOLEAN, - optional => 1, + default => 1, }, include => {type => HASHREF, optional => 1, @@ -623,7 +623,7 @@ sub get_bugs_flatfile{ } my @bugs; BUG: while (<$flatfile>) { - next unless m/^(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+\[\s*([^]]*)\s*\]\s+(\w+)\s+(.*)$/; + next unless m/^(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+\[\s*(.*)\s*\]\s+(\w+)\s+(.*)$/; my ($pkg,$bug,$time,$status,$submitter,$severity,$tags) = ($1,$2,$3,$4,$5,$6,$7); next if $grep_bugs and not exists $bugs{$bug}; if (exists $param{package}) { @@ -742,10 +742,8 @@ sub __handle_pkg_src_and_maint{ } if (exists $param{maint}) { my $key_inc = 0; - my $maint_rev = getmaintainers_reverse(); my %_temp_p = (); - for my $package (map { exists $maint_rev->{$_}?@{$maint_rev->{$_}}:()} - make_list($param{maint})) { + for my $package (package_maintainer(maintainer=>$param{maint})) { $packages{$package}++ unless exists $_temp_p{$package}; $_temp_p{$package} = 1; $key_inc = 1; @@ -777,7 +775,11 @@ sub __bug_matches { my ($hash, $status) = @_; foreach my $key( keys( %$hash ) ) { my $value = $hash->{$key}; + next unless exists $field_match{$key}; my $sub = $field_match{$key}; + if (not defined $sub) { + die "No defined subroutine for key: $key"; + } return 1 if ($sub->($key, $value, $status)); } return 0;