===================================================================
RCS file: /cvs/cvsweb/cvsweb.cgi,v
retrieving revision 4.12
retrieving revision 4.19
diff -u -p -r4.12 -r4.19
--- cvsweb/cvsweb.cgi 2019/11/10 14:55:42 4.12
+++ cvsweb/cvsweb.cgi 2019/11/11 14:56:27 4.19
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# $Id: cvsweb.cgi,v 4.12 2019/11/10 14:55:42 schwarze Exp $
+# $Id: cvsweb.cgi,v 4.19 2019/11/11 14:56:27 schwarze Exp $
# $knu: cvsweb.cgi,v 1.299 2010/11/13 16:37:18 simon
#
# cvsweb - a CGI interface to CVS trees.
@@ -69,13 +69,13 @@ use vars qw (
%input $query $barequery $sortby $bydate $byrev $byauthor
$bylog $byfile $defaultDiffType $logsort $cvstree $cvsroot
$charset $output_filter
- @command_path %CMD $allow_compress $backicon $diricon $fileicon $graphicon
+ @command_path %CMD $allow_compress $backicon $diricon $fileicon
$fullname $cvstreedefault $logo $defaulttitle $address $binfileicon
$long_intro $short_instruction $shortLogLen $show_author
$tablepadding $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst
$inputTextSize $mime_types $allow_annotate $allow_markup $allow_mailtos
$allow_log_extra $allow_dir_extra $allow_source_extra
- $allow_cvsgraph $cvsgraph_config $use_java_script $edit_option_form
+ $edit_option_form
$show_subdir_lastmod $show_log_in_markup $preformat_in_markup
$tabstop $state $annTable $sel @ForbiddenFiles
$use_descriptions %descriptions @mytz $dwhere
@@ -83,9 +83,9 @@ use vars qw (
$allow_tar @tar_options @gzip_options @zip_options @cvs_options
@annotate_options @rcsdiff_options
$HTML_DOCTYPE $HTML_META $cssurl $CSS $cvshistory_url
- $allow_enscript @enscript_options %enscript_types
);
+require Compress::Zlib;
use Cwd qw(abs_path);
use File::Path qw(rmtree);
use File::Spec::Functions qw(canonpath catdir catfile curdir devnull rootdir
@@ -102,9 +102,6 @@ use constant CVSWEBMARKUP => qr{^text/(x-cvsweb|vnd\.v
use constant LOG_FILESEPR => qr/^={77}$/o;
use constant LOG_REVSEPR => qr/^-{28}$/o;
-use constant HAS_ZLIB => eval { require Compress::Zlib; };
-use constant HAS_EDIFF => eval { require String::Ediff; };
-
# -----------------------------------------------------------------------------
# All global initialization that can be done in compile time should go to
@@ -121,8 +118,7 @@ BEGIN
$HTML_META = <
-
-
+
EOM
@@ -138,10 +134,10 @@ EOM
# -----------------------------------------------------------------------------
-sub printDiffSelect($);
+sub printDiffSelect();
sub printDiffSelectStickyVars();
sub getDiffLinks($$$);
-sub printLogSortSelect($);
+sub printLogSortSelect();
sub findLastModifiedSubdirs(@);
sub htmlify_sub(&$);
sub htmlify($;$);
@@ -153,16 +149,12 @@ sub config_error($$);
sub redirect($;$);
sub safeglob($);
sub search_path($);
-sub getEnscriptHL($);
sub getMimeType($;$);
sub head($;$);
sub scan_directives(@);
sub openOutputFilter();
sub doAnnotate($$);
sub doCheckout($$$);
-sub doEnscript($$$;$);
-sub doGraph();
-sub doGraphView();
sub cvswebMarkup($$$$$$;$);
sub viewable($);
sub doDiff($$$$$$);
@@ -183,7 +175,6 @@ sub download_url($$;$);
sub download_link($$$;$);
sub display_url($$;$);
sub display_link($$;$$);
-sub graph_link($;$);
sub history_link($$;$);
sub toggleQuery($;$);
sub htmlquote($);
@@ -214,10 +205,10 @@ $cvstreedefault = $logo = $defaulttitle =
$address = $long_intro = $short_instruction = $shortLogLen = $show_author =
$tablepadding = $hr_breakable = $showfunc = $hr_ignwhite =
$hr_ignkeysubst = $inputTextSize = $mime_types = $allow_annotate =
- $allow_markup = $allow_compress = $use_java_script = $edit_option_form =
+ $allow_markup = $allow_compress = $edit_option_form =
$show_subdir_lastmod = $show_log_in_markup = $preformat_in_markup =
- $tabstop = $use_moddate = $gzip_open = $DEBUG = $allow_cvsgraph =
- $cvsgraph_config = $cvshistory_url = $allow_tar = undef;
+ $tabstop = $use_moddate = $gzip_open = $DEBUG =
+ $cvshistory_url = $allow_tar = undef;
$allow_version_select = $allow_mailtos = $allow_log_extra = 1;
@@ -317,7 +308,7 @@ $maycompress = (
&& $ENV{HTTP_ACCEPT_ENCODING} =~ /gzip/)
|| $is_mozilla3)
&& !$is_msie
- && !(defined($ENV{MOD_PERL}) && !HAS_ZLIB)
+ && !(defined($ENV{MOD_PERL}))
);
# Parameters that will be sticky in all constructed links/query strings.
@@ -365,7 +356,7 @@ if (defined($ENV{QUERY_STRING})) {
$val = uri_unescape($val);
$val =~ /([^a-zA-Z_01-9.\/-])/ and fatal('404 Not Found',
'Invalid character "%s" in the value "%s" of the query parameter "%s"',
- $1, $value, $key);
+ $1, $val, $key);
} else {
$val = 1;
}
@@ -376,8 +367,8 @@ if (defined($ENV{QUERY_STRING})) {
undef %input;
my $t;
-for my $p (qw(graph hideattic hidecvsroot hidenonreadable ignorecase ln copt
- makeimage options tarball)) {
+for my $p (qw(hideattic hidecvsroot hidenonreadable ignorecase ln copt
+ options tarball)) {
$t = $query{$p};
if (defined($t)) {
($input{$p}) = ($t =~ /^([01]|on)$/)
@@ -540,27 +531,6 @@ foreach (@stickyvars) {
}
}
-if ($allow_enscript) {
- push(@DIFFTYPES, qw(uc cc));
- @DIFFTYPES{qw(uc cc)} = (
- {
- 'descr' => 'unified, colored',
- 'opts' => ['-u'],
- 'colored' => 0,
- },
- {
- 'descr' => 'context, colored',
- 'opts' => ['-c'],
- 'colored' => 0,
- },
- );
-} else {
- # No Enscript -> respect difftype, but don't offer colorization.
- if ($input{f} && $input{f} =~ /^([ucs])c$/) {
- $input{f} = $1;
- }
-}
-
# is there any query ?
if (@barequery) {
$barequery = join (';', @barequery);
@@ -1059,12 +1029,11 @@ EOF
$filesfound++;
printf "
\n", ($dirrow % 2) ? 'even' : 'odd';
- printf '', $allow_cvsgraph ? '' : ' colspan="2"';
+ printf ' | ';
my $icon = $isbinary ? $binfileicon : $fileicon;
print $nofilelinks ? $icon : &link($icon, $url);
print ' ', &link(htmlquote($file), $url), $attic;
- print ' | ', graph_link($fileurl) if $allow_cvsgraph;
print " | \n", display_link($fileurl, $rev);
my $ageclass = 'age';
my $age = '';
@@ -1129,10 +1098,10 @@ EOF
|| $input{$var} ne $DEFAULTVALUE{$var})
&& $var ne 'only_with_tag');
}
- printf(<
|
EOF
- printLogSortSelect(0);
+ printLogSortSelect();
print <
@@ -1249,7 +1218,7 @@ EOF
|
EOF
- printDiffSelect(0);
+ printDiffSelect();
print <
@@ -1288,16 +1257,6 @@ elsif (-f $fullname . ',v') {
exit;
}
- if ($allow_cvsgraph && $input{graph}) {
- if ($input{makeimage}) {
- doGraph();
- } else {
- doGraphView();
- }
- gzipclose();
- exit;
- }
-
&doLog($fullname);
}
@@ -1373,12 +1332,9 @@ gzipclose();
## End MAIN
-sub printDiffSelect($)
+sub printDiffSelect()
{
- my ($use_java_script) = @_;
-
print ' |
EOF
- printDiffSelect($use_java_script);
+ printDiffSelect();
print <
|
@@ -3275,14 +3088,14 @@ EOF
if (@branchnames) {
- printf(<
|
-
+
EOF
my @tmp = ();
@@ -3315,7 +3128,7 @@ EOF
|
EOF
- printLogSortSelect($use_java_script);
+ printLogSortSelect();
print <
|
@@ -3353,214 +3166,6 @@ EOF
}
} elsif ($state eq "PreChange") { # state eq "PreChange"
# we got removes with subsequent adds
- if (HAS_EDIFF) {
- # construct the suffix tree
- my $left_diff = join("\n", @$leftColRef[0..$leftRow-1]);
- my $right_diff = join("\n", @$rightColRef[0..$rightRow-1]);
- my $diff_str = String::Ediff::ediff($left_diff, $right_diff);
-
- my @diff_str = split(/ /, $diff_str);
- my $INFINITY = 10000000;
- push(@diff_str, ($INFINITY) x 8);
- my ($idx, $b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
- (0, @diff_str[0..7]);
- my ($l_cul, $r_cul) = (0, 0);
- my ($ldx, $rdx) = (0, 0);
- my (@left_html, @right_html);
- for (my $j = 0; $j < $leftRow; $j++) {
- my $line_len = length(@$leftColRef[$j]);
- my $line = @$leftColRef[$j];
- $l_cul += length($line) + 1; # includes "\n"
- my $l_culx = $l_cul - 1; # not includes "\n"
- if ($j < $lb1) {
- $line = spacedHtmlText($line);
- push(@left_html, "$line | ");
- } elsif ($lb1 == $j) {
- my $html_line;
- while ($lb1 == $j) {
- my $begin_char = $l_culx - $b1;
-
- $line =~ /^(.*)(.{$begin_char})$/;
- $html_line .= spacedHtmlText($1) .
- '';
- $line = $2;
- last if ($j != $le1);
-
- my $end_char = $l_culx - $e1;
- $line =~ /^(.*)(.{$end_char})$/;
- $html_line .= spacedHtmlText($1) .
- '';
- $line = $2;
-
- $idx++;
- my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
- ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
- ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
- @diff_str[$idx*8..($idx+1)*8-1];
- $lb1 = $INFINITY if ($lb1 < 0);
- $lb2 = $INFINITY if ($lb2 < 0);
- $le1 = $INFINITY if ($le1 < 0);
- $le2 = $INFINITY if ($le2 < 0);
- if ($te1 > $b1) {
- ($b1, $lb1) = ($te1, $tle1);
- }
- if ($te2 > $b2) {
- ($b2, $lb2) = ($te2, $tle2);
- }
- }
- push(@left_html,
- sprintf('%s%s | ',
- $html_line, spacedHtmlText($line)));
- } elsif ($le1 == $j) {
- my $html_line;
- while ($le1 == $j) {
- my $end_char = $l_culx - $e1;
- $line =~ /^(.*)(.{$end_char})$/;
- $html_line .= spacedHtmlText($1) .
- '';
- $line = $2;
-
- $idx++;
- my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
- ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
- ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
- @diff_str[$idx*8..($idx+1)*8-1];
- $lb1 = $INFINITY if ($lb1 < 0);
- $lb2 = $INFINITY if ($lb2 < 0);
- $le1 = $INFINITY if ($le1 < 0);
- $le2 = $INFINITY if ($le2 < 0);
- if ($te1 > $b1) {
- ($b1, $lb1) = ($te1, $tle1);
- }
- if ($te2 > $b2) {
- ($b2, $lb2) = ($te2, $tle2);
- }
-
- last if ($lb1 != $j);
-
- my $begin_char = $l_culx - $b1;
-
- $line =~ /^(.*)(.{$begin_char})$/;
- $html_line .= spacedHtmlText($1) .
- '';
- $line = $2;
- }
- push(@left_html,
- sprintf('%s%s | ',
- $html_line, spacedHtmlText($line)));
- } else {
- $line = spacedHtmlText($line);
- push(@left_html, "$line | ");
- }
- }
- ($idx, $b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
- (0, @diff_str[0..7]);
- $lb1 = $INFINITY if ($lb1 < 0);
- $lb2 = $INFINITY if ($lb2 < 0);
- $le1 = $INFINITY if ($le1 < 0);
- $le2 = $INFINITY if ($le2 < 0);
- for (my $j = 0; $j < $rightRow; $j++) {
- my $line_len = length(@$rightColRef[$j]);
- my $line = @$rightColRef[$j];
- $r_cul += length($line) + 1; # includes "\n"
- my $r_culx = $r_cul - 1; # not includes "\n"
- if ($j < $lb2) {
- $line = spacedHtmlText($line);
- push(@right_html, "$line | ");
- } elsif ($lb2 == $j) {
- my $html_line;
- while ($lb2 == $j) {
- my $begin_char = $r_culx - $b2;
-
- $line =~ /^(.*)(.{$begin_char})$/;
- $html_line .= spacedHtmlText($1) .
- '';
- $line = $2;
-
- last if ($j != $le2);
-
- my $end_char = $r_culx - $e2;
- $line =~ /^(.*)(.{$end_char})$/;
- $html_line .= spacedHtmlText($1) .
- '';
- $line = $2;
-
- $idx++;
- my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
- ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
- ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
- @diff_str[$idx*8..($idx+1)*8-1];
- $lb1 = $INFINITY if ($lb1 < 0);
- $lb2 = $INFINITY if ($lb2 < 0);
- $le1 = $INFINITY if ($le1 < 0);
- $le2 = $INFINITY if ($le2 < 0);
- if ($te1 > $b1) {
- ($b1, $lb1) = ($te1, $tle1);
- }
- if ($te2 > $b2) {
- ($b2, $lb2) = ($te2, $tle2);
- }
- }
- push(@right_html,
- sprintf('%s%s | ',
- $html_line, spacedHtmlText($line)));
- } elsif ($le2 == $j) {
- my $html_line;
- while ($le2 == $j) {
- my $end_char = $r_culx - $e2;
- $line =~ /^(.*)(.{$end_char})$/;
- $html_line .= spacedHtmlText($1) .
- '';
- $line = $2;
-
- $idx++;
- my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
- ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
- ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
- @diff_str[$idx*8..($idx+1)*8-1];
- $lb1 = $INFINITY if ($lb1 < 0);
- $lb2 = $INFINITY if ($lb2 < 0);
- $le1 = $INFINITY if ($le1 < 0);
- $le2 = $INFINITY if ($le2 < 0);
- if ($te1 > $b1) {
- ($b1, $lb1) = ($te1, $tle1);
- }
- if ($te2 > $b2) {
- ($b2, $lb2) = ($te2, $tle2);
- }
-
- last if ($lb2 != $j);
-
- my $begin_char = $r_culx - $b2;
- $line =~ /^(.*)(.{$begin_char})$/;
- $html_line .= spacedHtmlText($1) .
- '';
- $line = $2;
- }
- push(@right_html,
- sprintf('%s%s | ',
- $html_line, spacedHtmlText($line)));
- } else {
- $line = spacedHtmlText ($line);
- push @right_html, "$line | ";
- }
- }
- for (my $j = 0; $j < $leftRow || $j < $rightRow ; $j++) { # dump out both cols
- print '';
- if ($j < $leftRow) {
- print $left_html[$j];
- } else {
- print ' | ';
- }
- if ($j < $rightRow) {
- print $right_html[$j];
- } else {
- print ' | ';
- }
- print " \n";
- }
- } else {
for (my $j = 0; $j < $leftRow || $j < $rightRow; $j++) { # dump both cols
print "\n";
if ($j < $leftRow) {
@@ -3579,7 +3184,6 @@ EOF
}
print "\n \n";
}
- }
}
}
@@ -3750,7 +3354,7 @@ EOF
| | | |