=================================================================== RCS file: /cvs/cvsweb/cvsweb.cgi,v retrieving revision 1.1.1.8 retrieving revision 3.31 diff -u -p -r1.1.1.8 -r3.31 --- cvsweb/cvsweb.cgi 2000/09/30 18:55:43 1.1.1.8 +++ cvsweb/cvsweb.cgi 2000/10/02 19:07:08 3.31 @@ -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.29 2000/09/30 18:48:16 knu Exp $ +# $Id: cvsweb.cgi,v 3.31 2000/10/02 19:07:08 knu Exp $ # ### @@ -279,25 +279,24 @@ foreach (keys %DEFAULTVALUE) } $barequery = ""; +my @barequery; foreach (@stickyvars) { # construct a query string with the sticky non default parameters set if (defined($input{$_}) && $input{$_} ne '' && !(defined($DEFAULTVALUE{$_}) && $input{$_} eq $DEFAULTVALUE{$_})) { - if ($barequery) { - $barequery = $barequery . "&"; - } - my $thisval = urlencode($_) . "=" . urlencode($input{$_}); - $barequery .= $thisval; + push @barequery, join('=', urlencode($_), urlencode($input{$_}); } } # is there any query ? -if ($barequery) { +if (@barequery) { + $barequery = join('&', @barequery); $query = "?$barequery"; - $barequery = "&" . $barequery; + $barequery = "&$barequery"; } else { $query = ""; } +undef @barequery; # get actual parameters $sortby = $input{"sortby"}; @@ -345,7 +344,8 @@ if ($input{'cvsroot'} && $CVSROOT{$input{'cvsroot'}}) $cvsroot = $CVSROOT{$cvstree}; # create icons out of description -foreach my $k (keys %ICONS) { +my $k +foreach $k (keys %ICONS) { no strict 'refs'; my ($itxt,$ipath,$iwidth,$iheight) = @{$ICONS{$k}}; if ($ipath) { @@ -355,6 +355,7 @@ foreach my $k (keys %ICONS) { ${"${k}icon"} = $itxt; } } +undef $k; my $config_cvstree = "$config-$cvstree"; @@ -365,6 +366,7 @@ if (-f $config_cvstree) { sprintf('Error in loading configuration file: %s

%s
', $config_cvstree, &htmlify($@))); } +undef $config_cvstree; $prcategories = '(?:' . join('|', @prcategories) . ')'; $prcgi .= '%s' if defined($prcgi) && $prcgi !~ /%s/; @@ -1141,11 +1143,6 @@ 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 @@ -1207,6 +1204,11 @@ 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,33 +1241,41 @@ sub doAnnotate($$) { } elsif ($words[0] eq "M") { $lineNr++; - my $lrev = substr ($_, 2, 13); - my $lusr = substr ($_, 16, 9); - my $line = substr ($_, 36); + (my $lrev = substr($_, 2, 13)) =~ y/ //d; + (my $lusr = substr($_, 16, 9)) =~ y/ //d; + my $line = substr($_, 36); + my $isCurrentRev = ($rev eq $lrev); # we should parse the date here .. if ($lrev eq $oldLrev) { - $revprint = " "; + $revprint = sprintf('%-8s', ''); } else { - $revprint = $lrev; $oldLusr = ""; - $revprint =~ s`^(\S+)`$1`; # ` + $revprint = sprintf('%-8s', $lrev); + $revprint =~ s`\S+`$&`; # ` + $oldLusr = ''; } 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); - print "" if ($isCurrentRev); - printf ("%8s%s%8s %4d:", $revprint, ($isCurrentRev ? "|" : " "), $usrprint, $lineNr); + # 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 spacedHtmlText($line, $d{'tabstop'}); - print "" if ($isCurrentRev); + + print "" if ($isCurrentRev && $is_textbased); } elsif ($words[0] eq "ok") { # We could complain about any text received after this, like the @@ -2478,7 +2488,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 ""; @@ -2833,7 +2843,7 @@ sub http_header(;$) { sub html_header($) { my ($title) = @_; - my $version = '$zRevision: 1.103 $ $kRevision: 1.29 $'; #' + my $version = '$zRevision: 1.103 $ $Revision: 3.31 $'; #' http_header(); print <