]> git.donarmstrong.com Git - debbugs.git/blobdiff - cgi/pkgreport.cgi
merge changes from source
[debbugs.git] / cgi / pkgreport.cgi
index e32e45c8b85c366bfee3fa37be7c8f798ff82002..1d0e41374d2feb83a6c5f9c0d7e1eb9d6ff7647f 100755 (executable)
@@ -111,7 +111,9 @@ my %cats = (
     "normal" => [ qw(status severity classification) ],
 );
 
-my ($pkg, $src, $maint, $maintenc, $submitter, $severity, $status, $tag, $usertag);
+my ($pkg, $src, $maint, $maintenc, $submitter, $severity, $status, $tag, $usertag,
+    $owner,
+   );
 
 my %which = (
         'pkg' => \$pkg,
@@ -122,6 +124,7 @@ my %which = (
         'severity' => \$severity,
         'tag' => \$tag,
        'usertag' => \$usertag,
+       'owner'   => \$owner,
         );
 my @allowedEmpty = ( 'maint' );
 
@@ -265,7 +268,17 @@ if (defined $pkg) {
   add_user($maint);
   $title = "maintainer $maint";
   $title .= " in $dist" if defined $dist;
-  @bugs = get_bugs(maint=>[split /,/,$maint]);
+  if ($maint eq "") {
+       my %maintainers = %{getmaintainers()};
+       @bugs = @{getbugs(sub {my %d=@_;
+                             foreach my $try (splitpackages($d{"pkg"})) {
+                                  return 1 if !getparsedaddrs($maintainers{$try});
+                             }
+                             return 0;
+                        })};
+  } else {
+       @bugs = get_bugs(maint=>[map {lc ($_)} split /,/,$maint]);
+  }
 } elsif (defined $maintenc) {
   my %maintainers = %{getmaintainers()};
   $title = "encoded maintainer $maintenc";
@@ -283,7 +296,7 @@ if (defined $pkg) {
   add_user($submitter);
   $title = "submitter $submitter";
   $title .= " in $dist" if defined $dist;
-  my @submitters = split /,/, $submitter;
+  my @submitters = map {lc ($_)} split /,/, $submitter;
   @bugs = get_bugs(submitter => \@submitters);
 } elsif (defined($severity) && defined($status)) {
   $title = "$status $severity bugs";
@@ -317,6 +330,14 @@ if (defined $pkg) {
                          return grep(exists $tags{$_}, @tags);
                         })};
 }
+elsif (defined $owner) {
+     $title = "bugs owned by $owner";
+     $title .= " in $dist" if defined $dist;
+     my @owners = map {lc ($_)} split /,/, $owner;
+     my %bugs = ();
+     @bugs = get_bugs(owner=>\@owners);
+
+}
 $title = htmlsanit($title);
 
 my @names; my @prior; my @title; my @order;
@@ -333,7 +354,7 @@ print "Content-Type: text/html; charset=utf-8\n\n";
 
 print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
 print "<HTML><HEAD>\n" . 
-    "<TITLE>$gProject$Archived $gBug report logs: $title</TITLE>\n" .
+    "<TITLE>$title -- $gProject$Archived $gBug report logs</TITLE>\n" .
     qq(<link rel="stylesheet" href="$gWebHostBugDir/css/bugs.css" type="text/css">) .
     "</HEAD>\n" .
     '<BODY onload="pagemain();">' .
@@ -994,9 +1015,9 @@ sub determine_ordering {
 
            $h->{"nam"} = $param{"nam$i"}
                 if (defined $param{"nam$i"}); 
-            $h->{"ord"} = [ split /,/, $param{"ord$i"} ]
+            $h->{"ord"} = [ split /\s*,\s*/, $param{"ord$i"} ]
                 if (defined $param{"ord$i"}); 
-            $h->{"ttl"} = [ split /,/, $param{"ttl$i"} ]
+            $h->{"ttl"} = [ split /\s*,\s*/, $param{"ttl$i"} ]
                 if (defined $param{"ttl$i"}); 
 
             push @c, $h;
@@ -1032,7 +1053,7 @@ sub determine_ordering {
  
     $i = 0;
     for my $c (@cats) {
-        $i++;
+       $i++;
         push @prior, $c->{"pri"};
        push @names, ($c->{"nam"} || "Bug attribute #" . $i);
         if (defined $c->{"ord"}) {
@@ -1041,8 +1062,8 @@ sub determine_ordering {
             push @order, [ 0..$#{$prior[-1]} ];
         }
         my @t = @{ $c->{"ttl"} } if defined $c->{ttl};
-       if (($#t+1) < $#{$prior[-1]}) {
-            push @t, map { toenglish($prior[-1]->[$_]) } ($#t+1)..($#{$prior[-1]});
+       if (@t < $#{$prior[-1]}) {
+            push @t, map { toenglish($prior[-1][$_]) } @t..($#{$prior[-1]});
        }
        push @t, $c->{"def"} || "";
         push @title, [@t];