===================================================================
RCS file: /cvs/cvsweb/cvsweb.cgi,v
retrieving revision 1.1.1.9
retrieving revision 3.26
diff -u -p -r1.1.1.9 -r3.26
--- cvsweb/cvsweb.cgi 2000/09/30 20:17:23 1.1.1.9
+++ cvsweb/cvsweb.cgi 2000/09/22 11:13:17 3.26
@@ -43,7 +43,7 @@
# SUCH DAMAGE.
#
# $zId: cvsweb.cgi,v 1.103 2000/09/20 17:02:29 jumager Exp $
-# $kId: cvsweb.cgi,v 1.30 2000/09/30 20:10:01 knu Exp $
+# $Id: cvsweb.cgi,v 3.26 2000/09/22 11:13:17 knu Exp $
#
###
@@ -125,13 +125,14 @@ sub forbidden_module($);
use Cwd;
# == EDIT this ==
-# Locations to search for user configuration, in order:
-for (
- $ENV{CVSWEB_CONFIG},
+# User configuration is stored in
+$config = undef;
+
+for ($ENV{CVSWEB_CONFIG},
+# '/home/knu/etc/cvsweb.conf',
'/usr/local/etc/cvsweb.conf',
- getcwd() . '/cvsweb.conf'
- ) {
- $config = $_ if defined($_) && -r $_;
+ getcwd . '/cvsweb.conf') {
+ $config = $_ if defined($_) && -r $_;
}
# == Configuration defaults ==
@@ -145,7 +146,7 @@ $allow_version_select = 1;
# These are defined to allow checking with perl -cw
%CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS = %MTYPES =
%tags = %alltags = @tabcolors = ();
-$cvstreedefault = $body_tag = $body_tag_for_src =
+$cvstreedefault = $body_tag = $body_tag_for_src =
$logo = $defaulttitle = $address =
$long_intro = $short_instruction = $shortLogLen =
$show_author = $dirtable = $tablepadding = $columnHeaderColorDefault =
@@ -223,11 +224,9 @@ $maycompress = (((defined($ENV{HTTP_ACCEPT_ENCODING})
@stickyvars = qw(cvsroot hideattic sortby logsort f only_with_tag);
if (-f $config) {
- do $config
- || &fatal("500 Internal Error",
- sprintf('Error in loading configuration file: %s
%s
',
- $config, &htmlify($@)));
-} else {
+ do $config;
+}
+else {
&fatal("500 Internal Error",
'Configuration not found. Set the variable $config
'
. 'in cvsweb.cgi, or the environment variable '
@@ -356,15 +355,8 @@ foreach my $k (keys %ICONS) {
}
}
-my $config_cvstree = "$config-$cvstree";
-
# Do some special configuration for cvstrees
-if (-f $config_cvstree) {
- do $config_cvstree
- || &fatal("500 Internal Error",
- sprintf('Error in loading configuration file: %s
%s
',
- $config_cvstree, &htmlify($@)));
-}
+do "$config-$cvstree" if (-f "$config-$cvstree");
$prcategories = '(?:' . join('|', @prcategories) . ')';
$prcgi .= '%s' if defined($prcgi) && $prcgi !~ /%s/;
@@ -1141,6 +1133,11 @@ sub doAnnotate($$) {
($pathname = $where) =~ s/(Attic\/)?[^\/]*$//;
($filename = $where) =~ s/^.*\///;
+ http_header();
+
+ navigateHeader($scriptwhere,$pathname,$filename,$rev, "annotate");
+ print "
Annotation of $pathname$filename, Revision $rev
\n";
+
# this seems to be necessary
$| = 1; $| = 0; # Flush
@@ -1150,7 +1147,7 @@ sub doAnnotate($$) {
# the public domain.
# we could abandon the use of rlog, rcsdiff and co using
# the cvsserver in a similiar way one day (..after rewrite)
- $pid = open2($reader, $writer, "cvs -Rl server") || fatal ("500 Internal Error",
+ $pid = open2($reader, $writer, "cvs server") || fatal ("500 Internal Error",
"Fatal Error - unable to open cvs for annotation");
# OK, first send the request to the server. A simplified example is:
@@ -1202,11 +1199,6 @@ sub doAnnotate($$) {
# were nicer about buffering, then we could just leave it open, I think.
close ($writer) || die "cannot close: $!";
- http_header();
-
- navigateHeader($scriptwhere,$pathname,$filename,$rev, "annotate");
- print "Annotation of $pathname$filename, Revision $rev
\n";
-
# Ready to get the responses from the server.
# For example:
# E Annotations for foo/xx
@@ -1239,41 +1231,33 @@ sub doAnnotate($$) {
}
elsif ($words[0] eq "M") {
$lineNr++;
- (my $lrev = substr($_, 2, 13)) =~ y/ //d;
- (my $lusr = substr($_, 16, 9)) =~ y/ //d;
- my $line = substr($_, 36);
- my $isCurrentRev = ($rev eq $lrev);
+ my $lrev = substr ($_, 2, 13);
+ my $lusr = substr ($_, 16, 9);
+ my $line = substr ($_, 36);
# we should parse the date here ..
if ($lrev eq $oldLrev) {
- $revprint = sprintf('%-8s', '');
+ $revprint = " ";
}
else {
- $revprint = sprintf('%-8s', $lrev);
- $revprint =~ s`\S+`$&`; # `
- $oldLusr = '';
+ $revprint = $lrev; $oldLusr = "";
+ $revprint =~ s`^(\S+)`$1`; # `
}
if ($lusr eq $oldLusr) {
- $usrprint = '';
+ $usrprint = " ";
}
else {
$usrprint = $lusr;
}
$oldLrev = $lrev;
$oldLusr = $lusr;
+ # is there a less timeconsuming way to strip spaces ?
+ ($lrev = $lrev) =~ s/\s+//g;
+ my $isCurrentRev = ($rev eq $lrev);
- # Set bold for text-based browsers only - graphical
- # browsers show bold fonts a bit wider than regular fonts,
- # so it looks irregular.
- print "" if ($isCurrentRev && $is_textbased);
-
- printf ("%s%s %-8s %4d:",
- $revprint,
- $isCurrentRev ? '!' : ' ',
- $usrprint,
- $lineNr);
+ print "" if ($isCurrentRev);
+ printf ("%8s%s%8s %4d:", $revprint, ($isCurrentRev ? "|" : " "), $usrprint, $lineNr);
print spacedHtmlText($line, $d{'tabstop'});
-
- print "" if ($isCurrentRev && $is_textbased);
+ print "" if ($isCurrentRev);
}
elsif ($words[0] eq "ok") {
# We could complain about any text received after this, like the
@@ -2486,7 +2470,7 @@ sub navigateHeader($$$$$) {
$swhere = urlencode($filename) if ($swhere eq "");
print "<\!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
print "\n\n";
- print '';
+ print '';
print "\n$path$filename - $title - $rev\n";
print "$body_tag_for_src\n";
print "";
@@ -2841,7 +2825,7 @@ sub http_header(;$) {
sub html_header($) {
my ($title) = @_;
- my $version = '$zRevision: 1.103 $ $kRevision: 1.30 $'; #'
+ my $version = '$zRevision: 1.103 $ $Revision: 3.26 $'; #'
http_header();
print <