=================================================================== RCS file: /cvs/cvsweb/cvsweb.cgi,v retrieving revision 1.1.1.9 retrieving revision 3.27 diff -u -p -r1.1.1.9 -r3.27 --- cvsweb/cvsweb.cgi 2000/09/30 20:17:23 1.1.1.9 +++ cvsweb/cvsweb.cgi 2000/09/28 18:06:58 3.27 @@ -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.27 2000/09/28 18:06:58 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 = @@ -1141,6 +1142,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 +1156,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 +1208,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 +1240,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 +2479,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 +2834,7 @@ sub http_header(;$) { sub html_header($) { my ($title) = @_; - my $version = '$zRevision: 1.103 $ $kRevision: 1.30 $'; #' + my $version = '$zRevision: 1.103 $ $Revision: 3.27 $'; #' http_header(); print <