5 print header . start_html("Error");
6 print "An error occurred. Dammit.\n";
7 print "Error was: $msg.\n";
15 my %status = getbugstatus($ref);
18 if ($status{severity} eq 'normal') {
20 } elsif (grep($status{severity} eq $_, @debbugs::gStrongSeverities)) {
21 $showseverity = "<strong>Severity: $status{severity}</strong>;\n";
23 $showseverity = "Severity: <em>$status{severity}</em>;\n";
26 $result .= "Package: <a href=\"" . pkgurl($status{package}) . "\"><strong>"
27 . htmlsanit($status{package}) . "</strong></a>;\n"
28 if (length($status{package}));
29 $result .= $showseverity;
30 $result .= "Reported by: " . htmlsanit($status{originator});
31 $result .= ";\nKeywords: " . htmlsanit($status{keywords})
32 if (length($status{keywords}));
34 my @merged= split(/ /,$status{mergedwith});
36 my $mseparator= ";\nmerged with ";
38 $result .= $mseparator."<A href=\"" . bugurl($m) . "\">#$m</A>";
43 if (length($status{done})) {
44 $result .= ";\n<strong>Done:</strong> " . htmlsanit($status{done});
45 } elsif (length($status{forwarded})) {
46 $result .= ";\n<strong>Forwarded</strong> to "
47 . htmlsanit($status{forwarded});
49 my $daysold = int((time - $status{date}) / 86400); # seconds to days
53 $font = "em" if ($daysold > 30);
54 $font = "strong" if ($daysold > 60);
55 $efont = "</$font>" if ($font);
56 $font = "<$font>" if ($font);
58 my $yearsold = int($daysold / 364);
59 $daysold = $daysold - $yearsold * 364;
61 $result .= ";\n $font";
62 $result .= "1 year and " if ($yearsold == 1);
63 $result .= "$yearsold years and " if ($yearsold > 1);
64 $result .= "1 day old" if ($daysold == 1);
65 $result .= "$daysold days old" if ($daysold != 1);
77 my $params = "pkg=$ref";
78 foreach my $val (@_) { 1 }
80 return $debbugs::gCGIDomain . "pkgreport.cgi" . "?" . "$params";
83 %saniarray= ('<','lt', '>','gt', '&','amp', '"','quot');
88 while ($in =~ m/[<>&"]/) {
89 $out.= $`. '&'. $saniarray{$&}. ';';
98 my $params = "bug=$ref";
99 foreach my $val (@_) {
100 $params .= "\&msg=$1" if ($val =~ /^msg=([0-9]+)$/);
103 return $debbugs::gCGIDomain . "bugreport.cgi" . "?" . "$params";
108 return $debbugs::gCGIDomain . "package.cgi" . "?" . "package=$ref";
114 opendir(D, $debbugs::gSpoolDir/db) || &quit("opendir db: $!");
115 @bugs = sort { $a <=> $b }
117 (grep m/^[0-9]+\.status$/,
127 open I, "<$gAJIndex" || &quit("bugindex: $!");
129 push @bugs, $1 if (/^([0-9]+) $pkg$/);
131 @bugs = sort { $a <=> $b } @bugs;
138 open(MM,"$gMaintainerFile") || &quit("open $gMaintainerFile: $!");
140 m/^(\S+)\s+(\S.*\S)\s*$/ || &quit("$gMaintainerFile: \`$_'");
155 open(S,"$gSpoolDir/db/$bugnum.status") || &quit("open $bugnum.status: $!");
156 my @lines = qw(originator date subject msgid package keywords done
157 forwarded mergedwith severity);
160 $status{shift @lines} = $_;
163 $status{shift @lines} = '' while(@lines);
165 $status{package} =~ s/\s*$//;
166 $status{package} = 'unknown' if ($status{package} eq '');
167 $status{severity} = 'normal' if ($status{severity} eq '');
169 $status{pending} = 'pending';
170 $status{pending} = 'forwarded' if (length($status{forwarded}));
171 $status{pending} = 'done' if (length($status{done}));
178 return "$gSpoolDir/db/$bugnum.log";