]> git.donarmstrong.com Git - debbugs.git/blobdiff - cgi/pkgreport.cgi
* Even though it's meaningless, fix the stupid ARRAY(0x...) printout
[debbugs.git] / cgi / pkgreport.cgi
index 062aef8113577a6aee988317763cb4a6aeb42dd4..673a2db9cba1891976b0c3c2c8de0f2b8b4a226a 100755 (executable)
@@ -201,15 +201,16 @@ for my $user (map {split /[\s*,\s*]+/} make_list($param{users}||[])) {
 }
 
 if (defined $param{usertag}) {
-    my %select_ut = ();
-    my ($u, $t) = split /:/, $param{usertag}, 2;
-    Debbugs::User::read_usertags(\%select_ut, $u);
-    unless (defined $t && $t ne "") {
-        $t = join(",", keys(%select_ut));
-    }
-
-    add_user($u);
-    push @{$param{tag}}, split /,/, $t;
+     for my $usertag (make_list($param{usertag})) {
+         my %select_ut = ();
+         my ($u, $t) = split /:/, $usertag, 2;
+         Debbugs::User::read_usertags(\%select_ut, $u);
+         unless (defined $t && $t ne "") {
+              $t = join(",", keys(%select_ut));
+         }
+         add_user($u);
+         push @{$param{tag}}, split /,/, $t;
+     }
 }
 
 my $Archived = $archive ? " Archived" : "";
@@ -307,6 +308,7 @@ while (my ($key,$value) = splice @search_key_order, 0, 2) {
                                           (exists $param{dist}?(dist => $param{dist}):()),
                                           (exists $param{arch}?(arch => $param{arch}):()),
                                           ($key eq 'src'?(arch => q(source)):()),
+                                          no_source_arch => 1,
                                          );
               my $verdesc = join(', ',@versions);
               $verdesc = 'version'.(@versions>1?'s ':' ').$verdesc;
@@ -397,9 +399,17 @@ for my $package (make_list($param{src}||[])) {
 
 sub output_package_info{
     my ($srcorbin,$package) = @_;
+
+    my %pkgsrc = %{getpkgsrc()};
+    my $srcforpkg = $package;
+    if ($srcorbin eq 'binary') {
+        $srcforpkg = $pkgsrc{$package};
+        defined $srcforpkg or $srcforpkg = $package;
+    }
+
     my $showpkg = html_escape($package);
     my $maintainers = getmaintainers();
-    my $maint = $maintainers->{$package};
+    my $maint = $maintainers->{$srcforpkg};
     if (defined $maint) {
         print '<p>';
         print htmlize_maintlinks(sub { $_[0] == 1 ? "Maintainer for $showpkg is "
@@ -410,12 +420,6 @@ sub output_package_info{
     } else {
         print "<p>No maintainer for $showpkg. Please do not report new bugs against this package.</p>\n";
     }
-    my %pkgsrc = %{getpkgsrc()};
-    my $srcforpkg = $package;
-    if ($srcorbin eq 'binary') {
-        $srcforpkg = $pkgsrc{$package};
-        defined $srcforpkg or $srcforpkg = $package;
-    }
     my @pkgs = getsrcpkgs($srcforpkg);
     @pkgs = grep( !/^\Q$package\E$/, @pkgs );
     if ( @pkgs ) {
@@ -519,12 +523,12 @@ print "    <td><input id=\"b_1_2\" name=vt value=bysuite type=radio onchange=\"e
 
 if (defined $pkg) {
     my $v = html_escape($version) || "";
-    my $pkgsane = html_escape($pkg);
+    my $pkgsane = html_escape($pkg->[0]);
     print "<tr><td></td>";
     print "    <td><input id=\"b_1_3\" name=vt value=bypkg type=radio onchange=\"enable(1);\" $checked_ver>$pkgsane version <input id=\"b_1_3_1\" name=version value=\"$v\"></td></tr>\n";
 } elsif (defined $src) {
     my $v = html_escape($version) || "";
-    my $srcsane = html_escape($src);
+    my $srcsane = html_escape($src->[0]);
     print "<tr><td></td>";
     print "    <td><input name=vt value=bysrc type=radio onchange=\"enable(1);\" $checked_ver>$srcsane version <input id=\"b_1_3_1\" name=version value=\"$v\"></td></tr>\n";
 }
@@ -750,13 +754,19 @@ sub pkg_htmlizebugs {
     for my $include (make_list($param{include})) {
         next unless defined $include;
         my ($key,$value) = split /\s*:\s*/,$include,2;
-        next unless defined $value;
+        unless (defined $value) {
+            $key = 'tags';
+            $value = $include;
+        }
         push @{$include{$key}}, split /\s*,\s*/, $value;
     }
     for my $exclude (make_list($param{exclude})) {
         next unless defined $exclude;
         my ($key,$value) = split /\s*:\s*/,$exclude,2;
-        next unless defined $value;
+        unless (defined $value) {
+            $key = 'tags';
+            $value = $exclude;
+        }
         push @{$exclude{$key}}, split /\s*,\s*/, $value;
     }
 
@@ -1096,9 +1106,9 @@ sub determine_ordering {
 
            ($h->{"nam"}) = make_list($param{"nam$i"})
                 if (defined $param{"nam$i"});
-            $h->{"ord"} = [ split /\s*,\s*/, make_list($param{"ord$i"}) ]
+            $h->{"ord"} = [ map {split /\s*,\s*/} make_list($param{"ord$i"}) ]
                 if (defined $param{"ord$i"});
-            $h->{"ttl"} = [ split /\s*,\s*/, make_list($param{"ttl$i"}) ]
+           $h->{"ttl"} = [ map {split /\s*,\s*/} make_list($param{"ttl$i"}) ]
                 if (defined $param{"ttl$i"});
 
             push @c, $h;