From ad94296c148bb2ddb66f1d2ce312bdffb4ff4a91 Mon Sep 17 00:00:00 2001
From: gecko <>
Date: Mon, 25 Oct 1999 05:18:14 -0800
Subject: [PATCH] [project @ 1999-10-25 06:18:13 by gecko] A few bugs fixes in
the *report.cgi scripts
---
cgi/bugreport.cgi | 8 ++------
cgi/common.pl | 39 ++++++++++++++++++++++++++++++++++-----
cgi/pkgreport.cgi | 20 ++++++++++++++------
debian/changelog | 6 ++++++
scripts/rebuild.in | 29 ++++++++++++++++++++++++++---
5 files changed, 82 insertions(+), 20 deletions(-)
diff --git a/cgi/bugreport.cgi b/cgi/bugreport.cgi
index 584f1dbc..647011f9 100755
--- a/cgi/bugreport.cgi
+++ b/cgi/bugreport.cgi
@@ -40,7 +40,7 @@ $tail_html =~ s/SUBSTITUTE_DTIME/$dtime/;
$|=1;
-$tpack = lc $status{package};
+$tpack = lc $status{'package'};
$tpack =~ s/[^-+._a-z0-9()].*$//;
if ($status{severity} eq 'normal') {
@@ -79,7 +79,7 @@ my ($short, $tmaint);
$short = $ref; $short =~ s/^\d+/#$&/;
$tmaint = defined($maintainer{$tpack}) ? $maintainer{$tpack} : '(unknown)';
$descriptivehead= $indexentry.$submitted.";\nMaintainer for $status{package} is\n".
- ''.&sani($tmaint).'.';
+ ''.&sani($tmaint).'.';
my $buglog = buglog($ref, $archive);
open L, "<$buglog" || &quit("open log for $ref: $!");
@@ -210,8 +210,4 @@ print $tail_html;
print end_html;
-sub maintencoded {
- return "";
-}
-
exit 0;
diff --git a/cgi/common.pl b/cgi/common.pl
index b46f9e2b..47bb36ff 100644
--- a/cgi/common.pl
+++ b/cgi/common.pl
@@ -9,6 +9,15 @@ sub quit {
exit 0;
}
+sub abort {
+ my $msg = shift;
+ my $archive = shift;
+ print header . start_html("Sorry");
+ print "Sorry bug #$msg doesn't seem to be in the $archive database.\n";
+ print end_html;
+ exit 0;
+}
+
sub htmlindexentry {
my $ref = shift;
my $archive = shift;
@@ -125,7 +134,10 @@ sub allbugs {
sub pkgbugs {
my $pkg = shift;
- open I, "<$debbugs::gSpoolDir/archive/index" || &quit("bugindex: $!");
+ my $archive = shift;
+ if ( $archive ) { open I, "<$debbugs::gSpoolDir/index.archive" || &quit("bugindex: $!"); }
+ else { open I, "<$debbugs::gSpoolDir/index.db" || &quit("bugindex: $!"); }
+
while()
{ if (/^$pkg\s+(\d+)\s+(.+)/)
{
@@ -137,13 +149,30 @@ sub pkgbugs {
}
sub pkgbugsindex {
- my $pkg = shift;
+ my $archive = shift;
my @bugs = ();
- open I, "<$debbugs::gSpoolDir/archive/index" || &quit("bugindex: $!");
+ if ( $archive ) { open I, "<$debbugs::gSpoolDir/index.archive" || &quit("bugindex: $!"); }
+ else { open I, "<$debbugs::gSpoolDir/index.db" || &quit("bugindex: $!"); }
while() { $descstr{ $1 } = 1 if (/^(\S+)/); }
return %descstr;
}
+sub maintencoded {
+ my $input = $_;
+ my $encoded = '';
+
+ while ($input =~ m/\W/)
+ { $encoded.=$`.sprintf("-%02x_",unpack("C",$&));
+ $input= $';
+ }
+ $encoded.= $input;
+ $encoded =~ s/-2e_/\./g;
+ $encoded =~ s/^([^,]+)-20_-3c_(.*)-40_(.*)-3e_/$1,$2,$3,/;
+ $encoded =~ s/^(.*)-40_(.*)-20_-28_([^,]+)-29_$/,$1,$2,$3/;
+ $encoded =~ s/-20_/_/g;
+ $encoded =~ s/-([^_]+)_-/-$1/g;
+ return $input;
+}
sub getmaintainers {
my %maintainer;
@@ -167,9 +196,9 @@ sub getbugstatus {
if ( $archive )
{ my $archdir = $bugnum % 100;
- open(S,"$gSpoolDir/archive/$archdir/$bugnum.status" ) || &quit("open $bugnum.status: $!");
+ open(S,"$gSpoolDir/archive/$archdir/$bugnum.status" ) || &abort("$bugnum", "archive" );
} else
- { open(S,"$gSpoolDir/db/$bugnum.status") || &quit("open $bugnum.status: $!"); }
+ { open(S,"$gSpoolDir/db/$bugnum.status") || &abort("$bugnum"); }
my @lines = qw(originator date subject msgid package keywords done
forwarded mergedwith severity);
while() {
diff --git a/cgi/pkgreport.cgi b/cgi/pkgreport.cgi
index 5526b7e8..60d87188 100755
--- a/cgi/pkgreport.cgi
+++ b/cgi/pkgreport.cgi
@@ -12,8 +12,11 @@ require '/etc/debbugs/config';
require '/etc/debbugs/text';
my $pkg = param('pkg');
+my $archive = (param('archive') || 'no') eq 'yes';
+my $arc = 'yes';
$pkg = 'ALL' unless defined( $pkg );
+$arc = 'no' unless $archive;
my $repeatmerged = (param('repeatmerged') || 'yes') eq 'yes';
my $this = "";
@@ -33,8 +36,13 @@ $tail_html =~ s/SUBSTITUTE_DTIME/$dtime/;
print header;
-print start_html("$debbugs::gProject Archived $debbugs::gBug report logs: package $pkg");
-print h1("$debbugs::gProject Archived $debbugs::gBug report logs: package $pkg");
+if( $archive )
+{ print start_html("$debbugs::gProject Archived $debbugs::gBug report logs: package $pkg");
+ print h1("$debbugs::gProject Archived $debbugs::gBug report logs: package $pkg");
+} else
+{ print start_html("$debbugs::gProject $debbugs::gBug report logs: package $pkg");
+ print h1("$debbugs::gProject $debbugs::gBug report logs: package $pkg");
+}
#if (defined $maintainer{$pkg}) {
# print "
Maintainer for $pkg is Note that with multi-binary packages there may be other reports\n"; print "filed under the different binary package names.
\n"; if ( $pkg ne 'ALL' ) -{ %strings = pkgbugs($pkg); +{ %strings = pkgbugs($pkg, $archive); foreach my $bug ( keys %strings ) - { $this .= "