===================================================================
RCS file: /cvs/cvsweb/cvsweb.cgi,v
retrieving revision 4.14
retrieving revision 4.16
diff -u -p -r4.14 -r4.16
--- cvsweb/cvsweb.cgi 2019/11/11 12:46:23 4.14
+++ cvsweb/cvsweb.cgi 2019/11/11 13:15:09 4.16
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# $Id: cvsweb.cgi,v 4.14 2019/11/11 12:46:23 schwarze Exp $
+# $Id: cvsweb.cgi,v 4.16 2019/11/11 13:15:09 schwarze Exp $
# $knu: cvsweb.cgi,v 1.299 2010/11/13 16:37:18 simon
#
# cvsweb - a CGI interface to CVS trees.
@@ -103,8 +103,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_EDIFF => eval { require String::Ediff; };
-
# -----------------------------------------------------------------------------
# All global initialization that can be done in compile time should go to
@@ -121,7 +119,7 @@ BEGIN
$HTML_META = <
-
+
EOM
@@ -3353,214 +3351,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 +3369,6 @@ EOF
}
print "\n
\n";
}
- }
}
}