- }
-} elsif (defined $maintenc) {
- my %maintainers = %{getmaintainers()};
- $title = "encoded maintainer $maintenc";
- $title .= " in $dist" if defined $dist;
- @bugs = @{getbugs(sub {my %d=@_;
- foreach my $try (splitpackages($d{"pkg"})) {
- my @me = getparsedaddrs($maintainers{$try});
- return 1 if grep {
- maintencoded($_->address) eq $maintenc
- } @me;
- }
- return 0;
- })};
-} elsif (defined $submitter) {
- add_user($submitter);
- $title = "submitter $submitter";
- $title .= " in $dist" if defined $dist;
- my @submitters = map {lc ($_)} split /,/, $submitter;
- @bugs = get_bugs(submitter => \@submitters,
- archive=>$archive
- );
-} elsif (defined($severity) && defined($status)) {
- $title = "$status $severity bugs";
- $title .= " in $dist" if defined $dist;
- my @severities = split /,/, $severity;
- my @statuses = split /,/, $status;
- @bugs = @{getbugs(sub {my %d=@_;
- return (grep($d{"severity"} eq $_, @severities))
- && (grep($d{"status"} eq $_, @statuses));
- })};
-} elsif (defined($severity)) {
- $title = "$severity bugs";
- $title .= " in $dist" if defined $dist;
- my @severities = split /,/, $severity;
- @bugs = @{getbugs(sub {my %d=@_;
- return (grep($d{"severity"} eq $_, @severities));
- }, 'severity', @severities)};
-} elsif (defined($tag)) {
- $title = "bugs tagged $tag";
- $title .= " in $dist" if defined $dist;
- my @tags = split /,/, $tag;
- my %bugs = ();
- for my $t (@tags) {
- for my $b (@{$ut{$t}}) {
- $bugs{$b} = 1;
- }
- }
- @bugs = @{getbugs(sub {my %d = @_;
- return 1 if $bugs{$d{"bug"}};
- my %tags = map { $_ => 1 } split ' ', $d{"tags"};
- return grep(exists $tags{$_}, @tags);
- })};
+my %search_keys = @search_key_order;
+
+# Set the title sanely and clean up parameters
+my @title;
+use Data::Dumper;
+print STDERR Dumper(\%param);
+while (my ($key,$value) = splice @search_key_order, 0, 2) {
+ next unless exists $param{$key};
+ my @entries = ();
+ $param{$key} = [map {split /\s*,\s*/} make_list($param{$key})];
+ for my $entry (make_list($param{$key})) {
+ my $extra = '';
+ if (exists $param{dist} and ($key eq 'package' or $key eq 'src')) {
+ my @versions = get_versions(package => $entry,
+ (exists $param{dist}?(dist => $param{dist}):()),
+ (exists $param{arch}?(arch => $param{arch}):()),
+ ($key eq 'src'?(arch => q(source)):()),
+ );
+ my $verdesc = join(', ',@versions);
+ $verdesc = 'version'.(@versions>1?'s ':' ').$verdesc;
+ $extra= " ($verdesc)" if @versions;
+ }
+ push @entries, $entry.$extra;
+ }
+ push @title,$value.' '.join(' or ', @entries);