=================================================================== 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 <