) {
$linenum++;
if ($line =~ m/^.$/ and 1 <= ord($line) && ord($line) <= 7) {
# state transitions
my $newstate;
my $statenum = ord($line);
$newstate = 'autocheck' if ($statenum == 1);
$newstate = 'recips' if ($statenum == 2);
$newstate = 'kill-end' if ($statenum == 3);
$newstate = 'go' if ($statenum == 5);
$newstate = 'html' if ($statenum == 6);
$newstate = 'incoming-recv' if ($statenum == 7);
# disallowed transitions:
$_ = "$normstate $newstate";
unless (m/^(go|go-nox|html) kill-end$/
|| m/^(kill-init|kill-end) (incoming-recv|autocheck|recips|html)$/
|| m/^kill-body go$/)
{
&quit("$ref: Transition from $normstate to $newstate at $linenum disallowed");
}
if ($newstate eq 'go') {
$this .= "\n";
}
if ($newstate eq 'html') {
$this = '';
}
if ($newstate eq 'kill-end') {
$this .= "
\n"
if $normstate eq 'go' || $normstate eq 'go-nox';
if ($normstate eq 'html') {
$this .= " Full text available.";
}
my $show = 1;
$show = $boring
if ($suppressnext && $normstate ne 'html');
$show = ($xmessage == $msg) if ($msg);
if ($show) {
if ($reverse) {
$log = "$this\n
$log";
} else {
$log .= "$this\n
\n";
}
}
$xmessage++ if ($normstate ne 'html');
$suppressnext = $normstate eq 'html';
}
$normstate = $newstate;
next;
}
$_ = $line;
if ($normstate eq 'incoming-recv') {
my $pl= $_;
$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$_";
$normstate= 'go';
} elsif ($normstate eq 'html') {
$this .= $_;
} elsif ($normstate eq 'go') {
$this .= htmlsanit($_);
} elsif ($normstate eq 'go-nox') {
next if !s/^X//;
$this .= htmlsanit($_);
} elsif ($normstate eq 'recips') {
if (m/^-t$/) {
$this = "Message sent:
\n";
} else {
s/\04/, /g; s/\n$//;
$this = "Message sent to ".htmlsanit($_).":
\n";
}
$normstate= 'kill-body';
} elsif ($normstate eq 'autocheck') {
next if !m/^X-Debian-Bugs(-\w+)?: This is an autoforward from (\S+)/;
$normstate= 'autowait';
$this = "Message received at $2:
\n";
} elsif ($normstate eq 'autowait') {
next if !m/^$/;
$normstate= 'go-nox';
$this .= "\n";
} else {
&quit("$ref state $normstate line \`$_'");
}
}
&quit("$ref state $normstate at end") unless $normstate eq 'kill-end';
close(L);
print "Content-Type: text/html\n\n";
print "\n";
print "\n" .
"$debbugs::gProject $debbugs::gBug report logs - $short\n" .
"\n" .
'' .
"\n";
print "" . "$debbugs::gProject $debbugs::gBug report logs - $short" .
"
" . htmlsanit($status{subject}) . "
\n";
print "$descriptivehead\n";
print "
";
print "$log";
print $tail_html;
print "\n";
exit 0;