) {
$pl =~ s/\n+$//;
m/^Received: \(at (\S+)\) by (\S+)\;/
|| &quit("bad line \`$pl' in state incoming-recv");
- $this = "Message received at ".htmlsanit("$1\@$2")
- . ":
\n\n$_";
+ $thisheader = "Message received at ".htmlsanit("$1\@$2")
+ . ":
\n";
+ $this = '';
$normstate= 'go';
+ $mail .= $_;
} elsif ($normstate eq 'html') {
$this .= $_;
} elsif ($normstate eq 'go') {
- $this .= htmlsanit($_);
+ if ($mail) {
+ $mail .= $_;
+ } else {
+ $this .= htmlsanit($_);
+ }
} elsif ($normstate eq 'go-nox') {
next if !s/^X//;
- $this .= htmlsanit($_);
+ if ($mail) {
+ $mail .= $_;
+ } else {
+ $this .= htmlsanit($_);
+ }
} elsif ($normstate eq 'recips') {
if (m/^-t$/) {
$this = "Message sent:
\n";
@@ -210,6 +285,26 @@ while(my $line = ) {
&quit("$ref state $normstate at end") unless $normstate eq 'kill-end';
close(L);
+if ( $mbox ) {
+ print "Content-Type: text/plain\n\n";
+ foreach ( @mails ) {
+ my @lines = split( "\n", $_, -1 );
+ if ( $lines[ 1 ] =~ m/^From / ) {
+ my $tmp = $lines[ 0 ];
+ $lines[ 0 ] = $lines[ 1 ];
+ $lines[ 1 ] = $tmp;
+ $_ = join( "\n", @lines ) . "\n";
+ }
+ if ( !( $lines[ 0 ] =~ m/^From / ) ) {
+ $ENV{ PATH } = "/bin:/usr/bin:/usr/local/bin";
+ my $date = `date "+%a %b %d %T %Y"`;
+ chomp $date;
+ $_ = "From unknown $date\n" . $_;
+ }
+ }
+ print join("", @mails );
+ exit 0;
+}
print "Content-Type: text/html\n\n";
print "\n";
@@ -222,6 +317,7 @@ print "\n";
print "$descriptivehead\n";
+printf "
Download as mbox\n", mboxurl($ref);
print "
";
print "$log";
print $tail_html;
diff --git a/cgi/common.pl b/cgi/common.pl
index e2343192..eb3a62d1 100644
--- a/cgi/common.pl
+++ b/cgi/common.pl
@@ -249,9 +249,22 @@ sub bugurl {
return urlsanit($debbugs::gCGIDomain . "bugreport.cgi" . "?" . "$params");
}
-sub packageurl {
+sub dlurl {
my $ref = shift;
- return urlsanit($debbugs::gCGIDomain . "package.cgi" . "?" . "package=$ref");
+ my $params = "bug=$ref";
+ my $filename = '';
+ foreach my $val (@_) {
+ $params .= "\&$1=$2" if ($val =~ /^(msg|att)=([0-9]+)/);
+ $filename = $1 if ($val =~ /^filename=(.*)$/);
+ }
+ $params .= "&archive=yes" if ($common_archive);
+
+ return urlsanit($debbugs::gCGIDomain . "bugreport.cgi/$filename?$params");
+}
+
+sub mboxurl {
+ my $ref = shift;
+ return urlsanit($debbugs::gCGIDomain . "bugreport.cgi" . "?" . "bug=$ref&mbox=yes");
}
sub allbugs {
@@ -497,7 +510,7 @@ sub getpkgsrc {
sub getbugdir {
my ( $bugnum, $ext ) = @_;
my $archdir = sprintf "%02d", $bugnum % 100;
- foreach ( ( "$gSpoolDir/db-h/$archdir", "$gSpoolDir/db", "$gSpoolDir/archive/$archdir" ) ) {
+ foreach ( ( "$gSpoolDir/db-h/$archdir", "$gSpoolDir/db", "$gSpoolDir/archive/$archdir", "/debian/home/joeyh/tmp/infomagic-95/$archdir" ) ) {
return $_ if ( -r "$_/$bugnum.$ext" );
}
return undef;