$config
'
- . 'in cvsweb.cgi, or the environment variable '
- . 'CVSWEB_CONFIG
, to your cvsweb.conf '
- . 'configuration file first.');
+ . 'in cvsweb.cgi to your cvsweb.conf configuration file first.');
}
undef %input;
@@ -750,10 +748,10 @@ if (-d $fullname) {
else {
print &link($backicon, $url);
}
- print " ", &link("Previous Directory", $url);
+ print " ", &link("Parent Directory", $url);
}
else {
- $url = urlencode($_) . "/$query";
+ $url = './' . urlencode($_) . "/$query";
print "";
if ($nofilelinks) {
print $diricon;
@@ -816,7 +814,7 @@ if (-d $fullname) {
}
elsif (s/,v$//) {
$fileurl = ($attic ? "Attic/" : "") . urlencode($_);
- $url = $fileurl . $query;
+ $url = './' . $fileurl . $query;
my $rev = '';
my $date = '';
my $log = '';
@@ -914,7 +912,7 @@ if (-d $fullname) {
&link("Download this directory in tarball",
# Mangle the filename so browsers show a reasonable
# filename to download.
- "$basefile.tar.gz$query".
+ "./$basefile.tar.gz$query".
($query ? "&" : "?")."tarball=1"),
"";
}
@@ -1108,11 +1106,11 @@ sub findLastModifiedSubdirs(@) {
sub htmlify_sub(&$) {
(my $proc, local $_) = @_;
- local @_ = split(m`(]+>[^<]*)`i);
+ my @a = split(m`(]+>[^<]*)`i);
my $linked;
my $result = '';
- while (($_, $linked) = splice(@_, 0, 2)) {
+ while (($_, $linked) = splice(@a, 0, 2)) {
&$proc();
$result .= $_ if defined($_);
$result .= $linked if defined($linked);
@@ -1228,6 +1226,8 @@ sub spacedHtmlText($;$) {
sub link($$) {
my($name, $url) = @_;
+ $url =~ s/:/sprintf("%%%02x", ord($&))/eg if $url =~ /^[^a-z]/; # relative
+
sprintf '%s', hrefquote($url), $name;
}
@@ -1305,6 +1305,7 @@ sub safeglob($) {
push(@results, "$dirname/" .$_);
}
}
+ closedir($dh);
}
@results;
@@ -1413,7 +1414,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", @cvs_options, "server")
+ $pid = open2($reader, $writer, $CMD{cvs}, @cvs_options, "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:
@@ -1704,7 +1705,11 @@ sub cvswebMarkup($$$) {
print "";
}
else {
- print ""; + while (<$filehandle>) { + print htmlquote($_); + } + print ""; } } @@ -1771,7 +1776,7 @@ sub doDiff($$$$$$) { while (($re1, $re2) = each %funcline_regexp) { if ($fullname =~ /$re1/) { - push @difftype, '-F', '$re2'; + push @difftype, '-F', $re2; last; } } @@ -2640,8 +2645,8 @@ sub human_readable_diff($){ print "
Line $oldline"; print " $funname |