diff --git a/en/cgi/cvsweb.cgi b/en/cgi/cvsweb.cgi index 3312657949..b708ede182 100755 --- a/en/cgi/cvsweb.cgi +++ b/en/cgi/cvsweb.cgi @@ -10,6 +10,7 @@ # Dick Balaska # Akinori MUSHA # Jens-Uwe Mager +# Ville Skyttä (html cleanup) # # Based on: # * Bill Fenners cvsweb.cgi revision 1.28 available from: @@ -18,7 +19,7 @@ # Copyright (c) 1996-1998 Bill Fenner # (c) 1998-1999 Henner Zeller # (c) 1999 Henrik Nordstrom -# (c) 2000-2001 Akinori MUSHA +# (c) 2000-2002 Akinori MUSHA # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -42,10 +43,9 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# FreeBSD: projects/cvsweb/cvsweb.cgi,v 1.87 2001/11/07 21:08:33 knu Exp -# $Id: cvsweb.cgi,v 1.78 2001-11-07 21:25:15 knu Exp $ +# $Id: cvsweb.cgi,v 1.79 2002-04-10 20:26:27 knu Exp $ # $Idaemons: /home/cvs/cvsweb/cvsweb.cgi,v 1.84 2001/10/07 20:50:10 knu Exp $ -# $FreeBSD: www/en/cgi/cvsweb.cgi,v 1.77 2001/11/07 16:32:11 sobomax Exp $ +# $FreeBSD: www/en/cgi/cvsweb.cgi,v 1.78 2001/11/07 21:25:15 knu Exp $ # ### @@ -144,7 +144,7 @@ sub forbidden_module($); ##### Start of Configuration Area ######## delete $ENV{PATH}; -$cvsweb_revision = '2.0.0'; +$cvsweb_revision = '2.0.1'; use File::Basename; @@ -230,7 +230,7 @@ $LOG_REVSEPARATOR = q/^-{28}$/; ); $cgi_style::hsty_base = 'http://www.FreeBSD.org'; -$_ = q$FreeBSD: www/en/cgi/cvsweb.cgi,v 1.77 2001/11/07 16:32:11 sobomax Exp $; +$_ = q$FreeBSD: www/en/cgi/cvsweb.cgi,v 1.78 2001/11/07 21:25:15 knu Exp $ @_ = split; $cgi_style::hsty_date = "@_[3,4]"; @@ -312,7 +312,7 @@ if (-f $config) { require $config || &fatal( "500 Internal Error", sprintf( - 'Error in loading configuration file: %s

%s
', + 'Error in loading configuration file: %s

%s
', $config, &htmlify($@) ) @@ -462,7 +462,7 @@ foreach $k (keys %ICONS) { if ($ipath) { ${"${k}icon"} = sprintf( - '%s', + '%s', hrefquote($ipath), htmlquote($itxt), $iwidth, $iheight) } else { ${"${k}icon"} = $itxt; @@ -477,7 +477,7 @@ if (-f $config_cvstree) { require $config_cvstree || &fatal( "500 Internal Error", sprintf( - 'Error in loading configuration file: %s

%s
', + 'Error in loading configuration file: %s

%s
', $config_cvstree, &htmlify($@) ) @@ -519,7 +519,7 @@ undef $rewrite; if (!-d $cvsroot) { &fatal("500 Internal Error", - '$CVSROOT not found!

The server on which the CVS tree lives is probably down. Please try again in a few minutes.' + '$CVSROOT not found!

The server on which the CVS tree lives is probably down. Please try again in a few minutes.' ); } @@ -548,9 +548,9 @@ if ($input{tarball}) { "You cannot download the top level directory."); } - my $tmpdir = "/tmp/.cvsweb.$$." . int(time); + my $tmpexportdir = "$tmpdir/.cvsweb.$$." . int(time); - mkdir($tmpdir, 0700) + mkdir($tmpexportdir, 0700) or &fatal("500 Internal Error", "Unable to make temporary directory: $!"); @@ -560,26 +560,30 @@ if ($input{tarball}) { (exists $input{only_with_tag} && length $input{only_with_tag}) ? $input{only_with_tag} : "HEAD"; + if ($tag eq 'MAIN') { + $tag = 'HEAD'; + } + if (system $CMD{cvs}, @cvs_options, '-Qd', $cvsroot, 'export', '-r', - $tag, '-d', "$tmpdir/$basedir", $module) + $tag, '-d', "$tmpexportdir/$basedir", $module) { @fatal = ("500 Internal Error", "cvs co failure: $!: $module"); } else { $| = 1; # Essential to get the buffering right. if ($ext eq '.tar.gz') { - print "Content-type: application/x-gzip\r\n\r\n"; + print "Content-Type: application/x-gzip\r\n\r\n"; system - "$CMD{tar} @tar_options -cf - -C $tmpdir $basedir | $CMD{gzip} @gzip_options -c" + "$CMD{tar} @tar_options -cf - -C $tmpexportdir $basedir | $CMD{gzip} @gzip_options -c" and @fatal = ("500 Internal Error", "tar zc failure: $!: $basedir"); } elsif ($ext eq '.zip' && $CMD{zip}) { - print "Content-type: application/zip\r\n\r\n"; + print "Content-Type: application/zip\r\n\r\n"; system - "cd $tmpdir && $CMD{zip} @zip_options -r - $basedir" + "cd $tmpexportdir && $CMD{zip} @zip_options -r - $basedir" and @fatal = ("500 Internal Error", "zip failure: $!: $basedir"); } else { @@ -588,7 +592,7 @@ if ($input{tarball}) { } } - system $CMD{rm}, '-rf', $tmpdir if -d $tmpdir; + system $CMD{rm}, '-rf', $tmpexportdir if -d $tmpexportdir; &fatal(@fatal) if @fatal; @@ -626,7 +630,7 @@ if (-d $fullname) { } } - print "

\n"; + print "

\n"; # give direct access to dirs if ($where eq '/') { @@ -634,16 +638,16 @@ if (-d $fullname) { chooseCVSRoot (); } else { print "

Current directory: ", &clickablePath($where, 0), - "\n"; + "

\n"; - print "

Current tag: ", $input{only_with_tag}, "\n" + print "

Current tag: ", $input{only_with_tag},"

\n" if $input{only_with_tag}; } - print "
\n"; + print "
\n"; - # Using in this manner violates the HTML2.0 spec but + # Using in this manner violates the HTML2.0 spec but # provides the results that I want in most browsers. Another # case of layout spooging up HTML. @@ -653,12 +657,12 @@ if (-d $fullname) { # Can't this be done by defining the border for the inner table? print - "
"; + "
"; } print - "\n"; + "
\n"; $infocols++; - printf '"; $infocols++; - printf '"; } $infocols++; - printf '"; } elsif ($use_descriptions) { - printf '
', + printf '
', $byfile ? $columnHeaderColorSorted : $columnHeaderColorDefault; @@ -679,7 +683,7 @@ if (-d $fullname) { # with revision information: if (scalar(%fileinfo)) { $infocols++; - printf '', + printf '', $byrev ? $columnHeaderColorSorted : $columnHeaderColorDefault; @@ -696,7 +700,7 @@ if (-d $fullname) { } print "', + printf '', $bydate ? $columnHeaderColorSorted : $columnHeaderColorDefault; @@ -715,7 +719,7 @@ if (-d $fullname) { if ($show_author) { $infocols++; - printf '', + printf '', $byauthor ? $columnHeaderColorSorted : $columnHeaderColorDefault; @@ -736,7 +740,7 @@ if (-d $fullname) { print "', + printf '', $bylog ? $columnHeaderColorSorted : $columnHeaderColorDefault; @@ -753,7 +757,7 @@ if (-d $fullname) { } print "', + printf '', $columnHeaderColorDefault; print "Description"; $infocols++; @@ -834,7 +838,7 @@ if (-d $fullname) { print " ", &link("Parent Directory", $url); } else { $url = './' . urlencode($_) . "/$query"; - print ""; + print ""; if ($nofilelinks) { print $diricon; @@ -873,10 +877,11 @@ if (-d $fullname) { print " " if ($dirtable); $filename =~ s%^[^/]+/%%; print "$filename/$rev"; - print "
" if ($dirtable); + print "
" if ($dirtable); if ($log) { - print " ", &htmlify( + print " ", + &htmlify( substr($log, 0, $shortLogLen)); if (length $log > 80) { print "..."; @@ -890,8 +895,8 @@ if (-d $fullname) { if ($use_descriptions && defined $descriptions{$dwhere}) { - print "
 " + print " " if $dirtable; print $descriptions{$dwhere}; } elsif ($dirtable && $infocols > 1) { @@ -925,7 +930,7 @@ if (-d $fullname) { $filesfound++; printf '
', $tabcolors[$dirrow % 2] if $dirtable; - print ""; + print ""; if ($nofilelinks) { print $fileicon; @@ -950,7 +955,7 @@ if (-d $fullname) { print " " if ($dirtable); if ($log) { - print " ", + print " ", &htmlify(substr($log, 0, $shortLogLen)); if (length $log > 80) { print "..."; @@ -964,14 +969,15 @@ if (-d $fullname) { print "\n"; } + print($dirtable ? "
\n" : "\n"); + if ($dirtable && defined($tableBorderColor)) { print "
"; } - print($dirtable == 1 ? "
\n" : "
\n"); if ($filesexists && !$filesfound) { print - "

NOTE: There are $filesexists files, but none matches the current tag ($input{only_with_tag})\n"; + "

NOTE: There are $filesexists files, but none matches the current tag ($input{only_with_tag}).

\n"; } if ($input{only_with_tag} && (!%tags || !$tags{$input{only_with_tag}})) { @@ -981,45 +987,45 @@ if (-d $fullname) { if (scalar %tags || $input{only_with_tag} || $edit_option_form || defined($input{"options"})) { - print "
"; + print "
"; } if (scalar %tags || $input{only_with_tag}) { - print "
\n"; + print "\n"; foreach my $var (@stickyvars) { print - "\n" + "\n" if (defined($input{$var}) && (!defined($DEFAULTVALUE{$var}) || $input{$var} ne $DEFAULTVALUE{$var}) && $input{$var} ne "" && $var ne "only_with_tag"); } - print "Show only files with tag:\n"; - print ""; - print "\n"; foreach my $tag (reverse sort { lc $a cmp lc $b } keys %tags) { - print "$tag\n"; + && $input{only_with_tag} eq $tag ? " selected" : "", + ">$tag\n"; } - print "\n"; + print "\n"; print " Module path or alias:\n"; - printf "\n", + printf "\n", htmlquote($where); - print "\n"; - print "\n"; + print "

\n"; + print "\n"; } if ($allow_tar) { my ($basefile) = ($where =~ m,(?:.*/)?([^/]+),); if (defined($basefile) && $basefile ne '') { - print "
\n", - "
Download this directory in "; + print "
\n", + "
Download this directory in "; # Mangle the filename so browsers show a reasonable # filename to download. @@ -1030,7 +1036,7 @@ if (-d $fullname) { &link("zip archive", "./$basefile.zip$query" . ($query ? "&" : "?") . "tarball=1"); } - print "
"; + print "
"; } } @@ -1038,41 +1044,41 @@ if (-d $fullname) { $formwhere =~ s|Attic/?$|| if ($input{'hideattic'}); if ($edit_option_form || defined($input{"options"})) { - print "
\n"; - print "\n"; + print "\n"; + print "\n"; if ($cvstree ne $cvstreedefault) { print - "\n"; + "\n"; } - print "
"; + print "
"; print - ""; - print ""; + print ""; + print "Revision"; + print "Log message"; + print ""; print ""; print ""; - print "\n"; + print "\n"; print - "
Preferences
Sort files by
Preferences
Sort files by Sort log by: "; printLogSortSelect(0); print "
Diff format: "; printDiffSelect(0); print "Show Attic files: "; - print "
"; - print "
\n"; + ""; + print "\n"; } print &html_footer; - print "\n"; } ############################### @@ -1172,34 +1178,34 @@ sub printDiffSelect($) { my ($use_java_script) = @_; my $f = $input{'f'}; - print '"; + print ""; } sub printLogSortSelect($) { my ($use_java_script) = @_; - print '"; + print ""; } sub findLastModifiedSubdirs(@) { @@ -1371,7 +1377,7 @@ sub link($$) { $url =~ s/:/sprintf("%%%02x", ord($&))/eg if $url =~ /^[^a-z]/; # relative - sprintf '%s', hrefquote($url), $name; + sprintf '%s', hrefquote($url), $name; } sub revcmp($$) { @@ -1641,7 +1647,7 @@ sub doAnnotate($$) { navigateHeader($scriptwhere, $pathname, $filename, $rev, "annotate"); print - "

Annotation of $pathname$filename, Revision $rev

\n"; + "

Annotation of $pathname$filename, Revision $rev

\n"; # Ready to get the responses from the server. # For example: @@ -1654,7 +1660,7 @@ sub doAnnotate($$) { my ($revprint, $usrprint); if ($annTable) { - print "\n"; + print "
\n"; } else { print "
";
 	}
@@ -1842,7 +1848,7 @@ sub cvswebMarkup($$$) {
 	http_header();
 
 	navigateHeader($scriptwhere, $pathname, $filename, $revision, "view");
-	print "
"; + print "
"; print "
"; print "File: ", &clickablePath($where, 1); print " ("; @@ -1854,27 +1860,27 @@ sub cvswebMarkup($$$) { &download_link($fileurl, $revision, "as text", "text/plain"); print ")"; } - print "
\n"; + print "
\n"; if ($show_log_in_markup) { readLog($fullname); #,$revision); printLog($revision, 0); } else { - print "Version: $revision
\n"; - print "Tag: ", $input{only_with_tag}, "
\n" + print "Version: $revision
\n"; + print "Tag: ", $input{only_with_tag}, "
\n" if $input{only_with_tag}; } print "
"; my $url = download_url($fileurl, $revision, $mimetype); - print "
"; + print "
"; if ($mimetype =~ /^image/) { - printf '
', hrefquote("$url$barequery"); + printf '
', hrefquote("$url$barequery"); } elsif ($mimetype =~ m%^application/pdf%) { - printf '
', + printf '
', hrefquote("$url$barequery"); } elsif ($preformat_in_markup) { - print "
";
+		print "
";
 
 		# prefetch several lines
 		my @buf = head($filehandle);
@@ -1886,14 +1892,14 @@ sub cvswebMarkup($$$) {
 
 			print spacedHtmlText($_, $d{'tabstop'});
 		}
-		print "
"; + print "
"; } else { - print "
";
+		print "
";
 
 		while (<$filehandle>) {
 			print htmlquote($_);
 		}
-		print "
"; + print "
"; } } @@ -2448,7 +2454,7 @@ sub readLog($;$) { } $revsym{$rev} .= ", " if ($revsym{$rev}); $revsym{$rev} .= $_; - $sel .= "\n"; } print "Done associating revisions with branches\n" if ($verbose); @@ -2526,11 +2532,11 @@ sub printLog($;$) { my ($filename); ($filename = $where) =~ s/^.*\///; my ($fileurl) = urlencode($filename); - print ""; + print ""; if (defined($revsym{$_})) { foreach my $sym (split (", ", $revsym{$_})) { - print ""; + print ""; } } @@ -2538,7 +2544,7 @@ sub printLog($;$) { && !defined($nameprinted{$br})) { foreach my $sym (split (", ", $revsym{$br})) { - print ""; + print ""; } $nameprinted{$br} = 1; } @@ -2593,7 +2599,7 @@ sub printLog($;$) { } } } else { - print "Revision $_"; + print "Revision $_"; } if (/^1\.1\.1\.\d+$/) { @@ -2608,13 +2614,13 @@ sub printLog($;$) { print readableTime(time() - $date{$_}, 1), " ago)"; print " by "; print "", $author{$_}, "\n"; - print "
Branch: ", $link ? link_tags($revsym{$br}) : $revsym{$br}, + print "
Branch: ", $link ? link_tags($revsym{$br}) : $revsym{$br}, "\n" if ($revsym{$br}); - print "
CVS Tags: ", $link ? link_tags($revsym{$_}) : $revsym{$_}, + print "
CVS Tags: ", $link ? link_tags($revsym{$_}) : $revsym{$_}, "" if ($revsym{$_}); - print "
Branch point for: ", + print "
Branch point for: ", $link ? link_tags($branchpoint{$_}) : $branchpoint{$_}, "\n" if ($branchpoint{$_}); @@ -2633,17 +2639,17 @@ sub printLog($;$) { if ($prev ne "") { if ($difflines{$_}) { print - "
Changes since $prev: $difflines{$_} lines"; + "
Changes since $prev: $difflines{$_} lines"; } } if ($isDead) { - print "
FILE REMOVED\n"; + print "
FILE REMOVED\n"; } elsif ($link) { my %diffrev = (); $diffrev{$_} = 1; $diffrev{""} = 1; - print "
Diff"; + print "
Diff"; # # Offer diff to previous revision @@ -2728,9 +2734,9 @@ sub printLog($;$) { printDiffLinks($input{'r1'}, $url); } } - print "
\n";
+	print "
\n";
 	print &htmlify($log{$_}, 1);
-	print "
\n"; + print "
\n"; } sub doLog($) { @@ -2746,117 +2752,116 @@ sub doLog($) { print &link($backicon, "$backurl#$filename"), " Up to ", &clickablePath($upwhere, 1), "

\n"; print &link('Request diff between arbitrary revisions', '#diff'); - print '


'; + print '
'; if ($curbranch) { print "Default branch: ", ($revsym{$curbranch} || $curbranch); } else { print "No default branch"; } - print "
\n"; + print "
\n"; if ($input{only_with_tag}) { - print "Current tag: $input{only_with_tag}
\n"; + print "Current tag: $input{only_with_tag}
\n"; } undef %nameprinted; for (my $i = 0 ; $i <= $#revdisplayorder ; $i++) { - print "
"; + print "
"; printLog($revdisplayorder[$i]); } - print "
"; - print "\n"; + print "
"; + print "
\n"; print "This form allows you to request diff's between any two\n"; print "revisions of a file. You may select a symbolic revision\n"; print "name using the selection box or you may type in a numeric\n"; print "name using the type-in text box.\n"; - print "

\n"; + print "

\n"; print - "

\n"; + "\n"; foreach (@stickyvars) { - printf('', $_, + printf('', $_, $input{$_}) if (defined($input{$_}) && ((!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_}) && $input{$_} ne "")); } - print "\n"; - print ""; + print ""; + print "\n"; + print "
Diffs between \n"; - print "\n"; + print ""; - print "\n"; - print ""; + print "\n"; + print ""; - print "\n"; - print "\n"; - print "
Diffs between \n"; + print "\n"; + print "\n"; $diffrev = $revdisplayorder[$#revdisplayorder]; $diffrev = $input{"r1"} if (defined($input{"r1"})); print - "
and \n"; - print "
and \n"; + print "\n"; + print "\n"; $diffrev = $revdisplayorder[0]; $diffrev = $input{"r2"} if (defined($input{"r2"})); print - "
\n"; - print "
\n"; - print ""; - print "\n"; - print ""; - print ""; + print "\n"; + print "\n"; + print "
Preferred Diff type:"; + "
\n"; + print "
\n"; + print ""; + print "\n"; + print ""; + print "\n"; + print "\n"; if (@branchnames) { - print ""; - print ""; + print "\n"; + print "\n"; } foreach (@stickyvars) { next if ($_ eq "f"); next if ($_ eq "only_with_tag"); next if ($_ eq "logsort"); - print "\n" + print "\n" if (defined($input{$_}) && (!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_}) && $input{$_} ne ""); } - print ""; - print ""; + print ""; - print ""; - print "\n"; - print "
Preferred Diff type:"; printDiffSelect($use_java_script); - print "
View only Branch:"; - print "\n"; - print "View only Branch:"; + print "\n"; + print "
"; - print "\n"; - print "Sort log by:"; + print "
"; + print "\n"; + print "Sort log by:"; printLogSortSelect($use_java_script); - print "
"; + print "
"; print &html_footer; - print "\n"; } sub flush_diff_rows($$$$) { @@ -2934,13 +2939,13 @@ sub human_readable_diff($) { } print - "

Diff for /$where_nd between version $rev1 and $rev2

\n", - "\n", - "\n", "
", + "

Diff for /$where_nd between version $rev1 and $rev2

\n", + "\n", + "\n", "\n", "\n", "\n"; @@ -2973,14 +2978,14 @@ sub human_readable_diff($) { print "\n"; $state = "dump"; $leftRow = 0; @@ -3023,50 +3028,51 @@ sub human_readable_diff($) { } } } + close($fh); + flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow; # state is empty if we didn't have any change if (!$state) { - print ""; - print ""; + print ""; + print ""; print - ""; + ""; } print "
", "version $rev1"; print ", $date1" if (defined($date1)); print "
Tag: $sym1\n" if ($sym1); - print "
", "version $rev2"; + print "", "version $rev2"; print ", $date2" if (defined($date2)); print "
Tag: $sym2\n" if ($sym1); print "
"; print - "
Line $oldline"; + "
Line $oldline"; print - " $funname
"; + " $funname
"; print "
"; print - "
Line $newline"; + "
Line $newline"; print - " $funname
"; + " $funname
"; print "
 
 
- No viewable Change -
- No viewable change -
"; - close($fh); print "

\n"; - print ""; + print "
"; print "
"; # print legend - print ""; print "
"; - print "Legend:
\n"; + print "
"; + print "Legend:
\n"; print - ""; + ""; print - ""; + ""; print - ""; + ""; print "
Removed from v.$rev1 
Removed from v.$rev1 
changed lines
changed lines
 Added in v.$rev2
 Added in v.$rev2
\n"; print "
"; # Print format selector - print "
\n"; + print "\n"; foreach my $var (keys %input) { next if ($var eq "f"); next if (defined($DEFAULTVALUE{$var}) && $DEFAULTVALUE{$var} eq $input{$var}); - print "\n"; + print "\n"; } printDiffSelect($use_java_script); - print "\n"; - print "
\n"; + print "\n"; + print "\n"; print "
"; @@ -3078,15 +3084,16 @@ sub navigateHeader($$$$$) { $swhere = './' . urlencode($filename) if ($swhere eq ""); print < - - - + + + + -$path$filename - $title - $rev +$path$filename - $title - $rev + $body_tag_for_src - -
+ +"; - print ""; print "
EOF print &link($backicon, "$swhere$query#rev$rev"); @@ -3094,7 +3101,8 @@ EOF " CVS log"; print " $fileicon$diricon Up to ", &clickablePath($path, 1), + print "$diricon Up to ", + &clickablePath($path, 1), "
"; } @@ -3203,7 +3211,7 @@ sub chooseCVSRoot() { my ($k); print "
\n"; foreach $k (keys %input) { - print "\n" + print "\n" if ($input{$k}) && ($k ne "cvsroot"); } @@ -3213,13 +3221,13 @@ sub chooseCVSRoot() { print ""; print ""; print ""; @@ -3227,13 +3235,13 @@ sub chooseCVSRoot() { } else { # no choice -- but we need the form to select module/path, at least for Netscape - print "\n"; + print "\n"; print "CVS Root: [$cvstree]"; } print " Module path or alias:\n"; - print "\n"; - print ""; + print "\n"; + print ""; if (2 <= @CVSROOT) { print "
CVS Root:\n\n
"; @@ -3325,7 +3333,7 @@ sub download_link($$$;$) { $fullurl =~ s/:/sprintf("%%%02x", ord($&))/eg; - printf '$textlink"; + print ">$textlink"; } # Returns a Query string with the @@ -3462,7 +3474,7 @@ sub http_header(;$) { if ($is_mod_perl) { Apache->request->content_type($content_type); } else { - print "Content-type: $content_type\r\n"; + print "Content-Type: $content_type\r\n"; } if ($allow_compress && $maycompress) { @@ -3477,7 +3489,7 @@ sub http_header(;$) { Vary => "Accept-Encoding"); Apache->request->send_http_header; } else { - print "Content-encoding: x-gzip\r\n"; + print "Content-Encoding: x-gzip\r\n"; print "Vary: Accept-Encoding\r\n" ; #RFC 2068, 14.43 print "\r\n"; # Close headers @@ -3499,7 +3511,7 @@ sub http_header(;$) { print "\r\n"; # Close headers } print - "Unable to find gzip binary in the \$command_path ($command_path) to compress output
"; + "Unable to find gzip binary in the \$command_path ($command_path) to compress output
"; } } else { @@ -3518,8 +3530,7 @@ sub html_header($) { (my $header = &cgi_style::html_header) =~ s/^.*\n\n//; # remove HTTP response header print < + $header EOH