version 3.23, 2000/09/19 19:57:58 |
version 3.24, 2000/09/19 20:07:16 |
|
|
sub redirect($); |
sub redirect($); |
sub safeglob($); |
sub safeglob($); |
sub getMimeTypeFromSuffix($); |
sub getMimeTypeFromSuffix($); |
|
sub head($;$); |
|
sub scan_directives(@); |
sub doAnnotate($$); |
sub doAnnotate($$); |
sub doCheckout($$); |
sub doCheckout($$); |
sub cvswebMarkup($$$); |
sub cvswebMarkup($$$); |
Line 1075 sub getMimeTypeFromSuffix($) { |
|
Line 1077 sub getMimeTypeFromSuffix($) { |
|
} |
} |
|
|
############################### |
############################### |
|
# read first lines like head(1) |
|
############################### |
|
sub head($;$) { |
|
my $fh = $_[0]; |
|
my $linecount = $_[1] || 10; |
|
|
|
my @buf; |
|
|
|
if ($linecount > 0) { |
|
my $i; |
|
for ($i = 0; !eof($fh) && $i < $linecount; $i++) { |
|
push @buf, scalar <$fh>; |
|
} |
|
} else { |
|
@buf = <$fh>; |
|
} |
|
|
|
@buf; |
|
} |
|
|
|
############################### |
|
# scan vim and Emacs directives |
|
############################### |
|
sub scan_directives(@) { |
|
my $ts = undef; |
|
|
|
for (@_) { |
|
$ts = $1 if /\b(?:ts|tabstop|tab-width)[:=]\s*([1-9]\d*)\b/; |
|
} |
|
|
|
('tabstop' => $ts); |
|
} |
|
|
|
############################### |
# show Annotation |
# show Annotation |
############################### |
############################### |
sub doAnnotate($$) { |
sub doAnnotate($$) { |
Line 1175 sub doAnnotate($$) { |
|
Line 1211 sub doAnnotate($$) { |
|
else { |
else { |
print "<pre>"; |
print "<pre>"; |
} |
} |
while (<$reader>) { |
|
|
# prefetch several lines |
|
my @buf = head($reader); |
|
|
|
my %d = scan_directives(@buf); |
|
|
|
while (@buf || !eof($reader)) { |
|
$_ = @buf ? shift @buf : <$reader>; |
|
|
my @words = split; |
my @words = split; |
# Adding one is for the (single) space which follows $words[0]. |
# Adding one is for the (single) space which follows $words[0]. |
my $rest = substr ($_, length ($words[0]) + 1); |
my $rest = substr ($_, length ($words[0]) + 1); |
Line 1209 sub doAnnotate($$) { |
|
Line 1253 sub doAnnotate($$) { |
|
|
|
print "<b>" if ($isCurrentRev); |
print "<b>" if ($isCurrentRev); |
printf ("%8s%s%8s %4d:", $revprint, ($isCurrentRev ? "|" : " "), $usrprint, $lineNr); |
printf ("%8s%s%8s %4d:", $revprint, ($isCurrentRev ? "|" : " "), $usrprint, $lineNr); |
print spacedHtmlText($line); |
print spacedHtmlText($line, $d{'tabstop'}); |
print "</b>" if ($isCurrentRev); |
print "</b>" if ($isCurrentRev); |
} |
} |
elsif ($words[0] eq "ok") { |
elsif ($words[0] eq "ok") { |
Line 1352 sub cvswebMarkup($$$) { |
|
Line 1396 sub cvswebMarkup($$$) { |
|
$input{only_with_tag}; |
$input{only_with_tag}; |
} |
} |
print "</td></tr></table>"; |
print "</td></tr></table>"; |
my @content = <$filehandle>; |
|
my $url = download_url($fileurl, $revision, $mimetype); |
my $url = download_url($fileurl, $revision, $mimetype); |
print "<HR noshade>"; |
print "<HR noshade>"; |
if ($mimetype =~ /^image/) { |
if ($mimetype =~ /^image/) { |
Line 1363 sub cvswebMarkup($$$) { |
|
Line 1406 sub cvswebMarkup($$$) { |
|
} |
} |
else { |
else { |
print "<PRE>"; |
print "<PRE>"; |
foreach (@content) { |
|
print spacedHtmlText($_); |
# prefetch several lines |
|
my @buf = head($filehandle); |
|
|
|
my %d = scan_directives(@buf); |
|
|
|
while (@buf || !eof($filehandle)) { |
|
$_ = @buf ? shift @buf : <$filehandle>; |
|
|
|
print spacedHtmlText($_, $d{'tabstop'}); |
} |
} |
print "</PRE>"; |
print "</PRE>"; |
} |
} |
Line 2254 sub flush_diff_rows($$$$) { |
|
Line 2305 sub flush_diff_rows($$$$) { |
|
# human_readable_diff(String revision_to_return_to); |
# human_readable_diff(String revision_to_return_to); |
## |
## |
sub human_readable_diff($){ |
sub human_readable_diff($){ |
my ($i,$difftxt, $where_nd, $filename, $pathname, $scriptwhere_nd); |
my ($difftxt, $where_nd, $filename, $pathname, $scriptwhere_nd); |
my ($fh, $rev) = @_; |
my ($fh, $rev) = @_; |
my ($date1, $date2, $r1d, $r2d, $r1r, $r2r, $rev1, $rev2, $sym1, $sym2); |
my ($date1, $date2, $r1d, $r2d, $r1r, $r2r, $rev1, $rev2, $sym1, $sym2); |
my (@rightCol, @leftCol); |
my (@rightCol, @leftCol); |
Line 2308 sub human_readable_diff($){ |
|
Line 2359 sub human_readable_diff($){ |
|
# cascading style sheets because we've to set the |
# cascading style sheets because we've to set the |
# font and color for each row. anyone ...? |
# font and color for each row. anyone ...? |
#### |
#### |
while (<$fh>) { |
|
$difftxt = $_; |
|
|
|
|
# prefetch several lines |
|
my @buf = head($fh); |
|
|
|
my %d = scan_directives(@buf); |
|
|
|
while (@buf || !eof($fh)) { |
|
$difftxt = @buf ? shift @buf : <$fh>; |
|
|
if ($difftxt =~ /^@@/) { |
if ($difftxt =~ /^@@/) { |
($oldline,$newline,$funname) = $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@(.*)/; |
($oldline,$newline,$funname) = $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@(.*)/; |
print "<tr bgcolor=\"$diffcolorHeading\"><td width=\"50%\">"; |
print "<tr bgcolor=\"$diffcolorHeading\"><td width=\"50%\">"; |
Line 2326 sub human_readable_diff($){ |
|
Line 2383 sub human_readable_diff($){ |
|
} |
} |
else { |
else { |
($diffcode,$rest) = $difftxt =~ /^([-+ ])(.*)/; |
($diffcode,$rest) = $difftxt =~ /^([-+ ])(.*)/; |
$_ = spacedHtmlText ($rest); |
$_ = spacedHtmlText($rest, $d{'tabstop'}); |
|
|
# Add fontface, size |
# Add fontface, size |
$_ = "$fs $_$fe"; |
$_ = "$fs $_$fe"; |