]> git.donarmstrong.com Git - debbugs.git/blobdiff - cgi/pkgreport.cgi
skip undefined includes/excludes
[debbugs.git] / cgi / pkgreport.cgi
index eb33dc1f3fae32691025d4a6670d70461f4e924c..c36f9f68b8623f8bc0b1b00c7fd6c040a5ff144a 100755 (executable)
@@ -20,7 +20,7 @@ use Debbugs::Config qw(:globals :text :config);
 use Debbugs::User;
 use Debbugs::CGI qw(version_url maint_decode);
 use Debbugs::Common qw(getparsedaddrs :date make_list getmaintainers);
-use Debbugs::Bugs qw(get_bugs bug_filter);
+use Debbugs::Bugs qw(get_bugs bug_filter newest_bug);
 use Debbugs::Packages qw(getsrcpkgs getpkgsrc get_versions);
 use Debbugs::Status qw(:status);
 use Debbugs::CGI qw(:all);
@@ -41,7 +41,7 @@ our %param = cgi_parameters(query => $q,
                            single => [qw(ordering archive repeatmerged),
                                       qw(bug-rev pend-rev sev-rev),
                                       qw(maxdays mindays version),
-                                      qw(data which dist),
+                                      qw(data which dist newest),
                                      ],
                            default => {ordering => 'normal',
                                        archive  => 0,
@@ -85,7 +85,7 @@ unless (defined $ordering) {
    $ordering = "raw" if $raw_sort;
    $ordering = 'age' if $age_sort;
 }
-my ($bug_order) = $ordering =~ /(age(?:rev)?)/;
+our ($bug_order) = $ordering =~ /(age(?:rev)?)/;
 $bug_order = '' if not defined $bug_order;
 
 my $bug_rev = ($param{'bug-rev'} || "no") eq "yes";
@@ -165,7 +165,7 @@ our %cats = (
 );
 
 my @select_key = (qw(submitter maint pkg package src usertag),
-                 qw(status tag maintenc owner severity)
+                 qw(status tag maintenc owner severity newest)
                 );
 
 if (exists $param{which} and exists $param{data}) {
@@ -316,7 +316,7 @@ while (my ($key,$value) = splice @search_key_order, 0, 2) {
      }
      push @title,$value.' '.join(' or ', @entries);
 }
-my $title = join(' and ', map {/ or /?"($_)":$_} @title);
+my $title = $gBugs.' '.join(' and ', map {/ or /?"($_)":$_} @title);
 @title = ();
 
 # we have to special case the maint="" search, unfortunatly.
@@ -330,7 +330,12 @@ if (defined $param{maint} and $param{maint} eq "") {
                           return 0;
                      }
                     );
-     $title = 'in packages with no maintainer';
+     $title = $gBugs.' in packages with no maintainer';
+}
+elsif (defined $param{newest}) {
+     my $newest_bug = newest_bug();
+     @bugs = ($newest_bug - $param{newest} + 1) .. $newest_bug;
+     $title = @bugs.' newest '.$gBugs;
 }
 else {
      #yeah for magick!
@@ -368,7 +373,7 @@ print "<HTML><HEAD>\n" .
     "</HEAD>\n" .
     '<BODY onload="pagemain();">' .
     "\n";
-print "<H1>" . "$gProject$Archived $gBug report logs: $gBugs $title" .
+print "<H1>" . "$gProject$Archived $gBug report logs: $title" .
       "</H1>\n";
 
 my $showresult = 1;
@@ -421,7 +426,7 @@ sub output_package_info{
              print "<p>You may want to refer to the following individual bug pages:\n";
         }
         #push @pkgs, $src if ( $src && !grep(/^\Q$src\E$/, @pkgs) );
-        print join( ", ", map( "<A href=\"" . html_escape(munge_url($this,package=>$_)) . "\">$_</A>", @pkgs ) );
+        print join( ", ", map( "<A href=\"" . html_escape(munge_url($this,package=>$_,src=>[],newest=>[])) . "\">$_</A>", @pkgs ) );
         print ".\n";
     }
     my @references;
@@ -440,7 +445,7 @@ sub output_package_info{
         }
         # Only output this if the source listing is non-trivial.
         if ($srcorbin eq 'binary' and $srcforpkg) {
-             push @references, sprintf "to the source package <a href=\"%s\">%s</a>'s bug page", html_escape(munge_url($this,src=>$srcforpkg,package=>[])), html_escape($srcforpkg);
+             push @references, sprintf "to the source package <a href=\"%s\">%s</a>'s bug page", html_escape(munge_url($this,src=>$srcforpkg,package=>[],newest=>[])), html_escape($srcforpkg);
         }
     }
     if (@references) {
@@ -744,11 +749,13 @@ sub pkg_htmlizebugs {
     my %include;
     my %exclude;
     for my $include (make_list($param{include})) {
+        next unless defined $include;
         my ($key,$value) = split /\s*:\s*/,$include,2;
         next unless defined $value;
         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;
         push @{$exclude{$key}}, split /\s*,\s*/, $value;
@@ -871,7 +878,7 @@ sub pkg_htmlpackagelinks {
     return 'Package' . (@pkglist > 1 ? 's' : '') . ': ' .
            join(', ',
                 map {
-                    '<a class="submitter" href="' . munge_url($this,src=>[],package=>$_) . '">' .
+                    '<a class="submitter" href="' . munge_url($this,src=>[],package=>$_,newest=>[]) . '">' .
                     $openstrong . html_escape($_) . $closestrong . '</a>'
                 } @pkglist
            );