]> git.donarmstrong.com Git - debbugs.git/blobdiff - cgi/common.pl
[project @ 2003-09-21 21:30:40 by cjwatson]
[debbugs.git] / cgi / common.pl
index ba944a0ffb15c3a0f5f79253f05b0c93ec2aeea2..63f0db0f8c1779d4cd69ba6feb3a433634718e77 100644 (file)
@@ -46,6 +46,7 @@ sub contains_field_match {
 
 sub detect_user_agent {
     my $userAgent = $ENV{HTTP_USER_AGENT};
+    return { 'name' => 'unknown' } unless defined $userAgent;
     return { 'name' => 'links' } if ( $userAgent =~ m,^ELinks,);
     return { 'name' => 'lynx' } if ( $userAgent =~ m,^Lynx,);
     return { 'name' => 'wget' } if ( $userAgent =~ m,^Wget,);
@@ -53,6 +54,7 @@ sub detect_user_agent {
     return { 'name' => 'ie' } if ( $userAgent =~ m,^.*MSIE.*,);
     return { 'name' => 'unknown' };
 }
+
 my %field_match = (
     'subject' => \&contains_field_match,
     'tags' => sub {
@@ -317,7 +319,11 @@ sub htmlindexentrystatus {
     } elsif (length($status{done})) {
         $result .= ";\n<strong>Done:</strong> " . htmlsanit($status{done});
         $days = ceil($debbugs::gRemoveAge - -M buglog($status{id}));
-       $result .= ";\n<strong>Will Be Archived:</strong>" . ( $days == 0 ? " today" : $days == 1 ? " in $days day" : " in $days days" );
+        if ($days >= 0) {
+            $result .= ";\n<strong>Will be archived:</strong>" . ( $days == 0 ? " today" : $days == 1 ? " in $days day" : " in $days days" );
+        } else {
+            $result .= ";\n<strong>Archived</strong>";
+        }
     }
 
     unless (length($status{done})) {
@@ -462,7 +468,8 @@ sub allbugs {
 
 sub bugmatches(\%\%) {
     my ($hash, $status) = @_;
-    while ((my ($key, $value) = each(%$hash))) {
+    foreach my $key( keys( %$hash ) ) {
+        my $value = $hash->{$key};
        my $sub = $field_match{$key};
        return 1 if ($sub->($key, $value, $status));
     }
@@ -470,7 +477,7 @@ sub bugmatches(\%\%) {
 }
 sub bugfilter($%) {
     my ($bug, %status) = @_;
-    local (%seenmerged);
+    our (%seenmerged);
     if (%common_include) {
        return 1 if (!bugmatches(%common_include, %status));
     }
@@ -555,9 +562,13 @@ sub htmlizebugs {
        for ( my $i = 0; $i < @order; $i++ ) {
            my $order = $order[ $i ];
            next unless defined $section{$order};
-           my $count = $count{"_$order"};
-           my $bugs = $count == 1 ? "bug" : "bugs";
-           $result .= "<HR><H2><a name=\"$order\"></a>$headers[$i] ($count $bugs)</H2>\n";
+           if ($common{show_list_header}) {
+               my $count = $count{"_$order"};
+               my $bugs = $count == 1 ? "bug" : "bugs";
+               $result .= "<HR><H2><a name=\"$order\"></a>$headers[$i] ($count $bugs)</H2>\n";
+           } else {
+               $result .= "<HR><H2>$headers[$i]</H2>\n";
+           }
            $result .= "<UL>\n";
            $result .= $section{$order};
            $result .= "</UL>\n";
@@ -579,7 +590,7 @@ sub htmlizebugs {
 
     $result = $header . $result if ( $common{show_list_header} );
     $result .= $debbugs::gHTMLExpireNote if $gRemoveAge and $anydone;
-    $result .= $footer if ( $common{show_list_footer} );
+    $result .= "<hr>" . $footer if ( $common{show_list_footer} );
     return $result;
 }