===================================================================
RCS file: /cvs/cvsweb/cvsweb.cgi,v
retrieving revision 4.5
retrieving revision 4.25
diff -u -p -r4.5 -r4.25
--- cvsweb/cvsweb.cgi 2019/11/09 09:24:13 4.5
+++ cvsweb/cvsweb.cgi 2019/11/26 11:53:01 4.25
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# $Id: cvsweb.cgi,v 4.5 2019/11/09 09:24:13 schwarze Exp $
+# $Id: cvsweb.cgi,v 4.25 2019/11/26 11:53:01 schwarze Exp $
# $knu: cvsweb.cgi,v 1.299 2010/11/13 16:37:18 simon
#
# cvsweb - a CGI interface to CVS trees.
@@ -62,30 +62,29 @@ use vars qw (
%alltags %fileinfo %tags @branchnames %nameprinted
%symrev %revsym @allrevisions %date %author @revdisplayorder
@revisions %state %difflines %log %branchpoint @revorder $keywordsubstitution
- $prcgi @prcategories $re_prcategories $prkeyword $re_prkeyword $mancgi
- $doCheckout $scriptname $scriptwhere
+ $mancgi $doCheckout $scriptname $scriptwhere
$where $Browser $nofilelinks $maycompress @stickyvars
$is_links $is_lynx $is_w3m $is_msie $is_mozilla3 $is_textbased
%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
+ $use_descriptions %descriptions $dwhere
$use_moddate $gzip_open $file_list_len
- $allow_tar @tar_options @gzip_options @zip_options @cvs_options
+ $allow_tar @tar_options @gzip_options @cvs_options
@annotate_options @rcsdiff_options
- $HTML_DOCTYPE $HTML_META $cssurl $CSS $cvshistory_url
- $allow_enscript @enscript_options %enscript_types
+ $HTML_DOCTYPE $HTML_META $cssurl $CSS
);
+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 +101,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
@@ -113,7 +109,7 @@ use constant HAS_EDIFF => eval { require String::Ed
BEGIN
{
- $VERSION = '3.0.6';
+ $VERSION = '3.1';
$HTML_DOCTYPE =
'$config in cvsweb.cgi to your cvsweb.conf configuration file first.');
+{
+ $config =~ m|^/| or fatal '500 Internal Error',
+ 'Configuration file name "%s
" is not an absolute path.',
+ $config;
+ defined do $config and last;
+ $@ and fatal '500 Internal Error',
+ 'Error loading configuration file "%s
":
\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 = '';
@@ -1120,10 +1083,10 @@ EOF
|| $input{$var} ne $DEFAULTVALUE{$var})
&& $var ne 'only_with_tag');
}
- printf(<
|
EOF
- printLogSortSelect(0);
+ printLogSortSelect();
print <
@@ -1240,7 +1200,7 @@ EOF
|
EOF
- printDiffSelect(0);
+ printDiffSelect();
print <
@@ -1279,16 +1239,6 @@ elsif (-f $fullname . ',v') {
exit;
}
- if ($allow_cvsgraph && $input{graph}) {
- if ($input{makeimage}) {
- doGraph();
- } else {
- doGraphView();
- }
- gzipclose();
- exit;
- }
-
&doLog($fullname);
}
@@ -1364,12 +1314,9 @@ gzipclose();
## End MAIN
-sub printDiffSelect($)
+sub printDiffSelect()
{
- my ($use_java_script) = @_;
-
print ' |
EOF
- printDiffSelect($use_java_script);
+ printDiffSelect();
print <
|
@@ -3266,14 +3017,14 @@ EOF
if (@branchnames) {
- printf(<
|
-
+
EOF
my @tmp = ();
@@ -3306,7 +3057,7 @@ EOF
|
EOF
- printLogSortSelect($use_java_script);
+ printLogSortSelect();
print <
|
@@ -3344,214 +3095,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) {
@@ -3570,7 +3113,6 @@ EOF
}
print "\n \n";
}
- }
}
}
@@ -3741,7 +3283,7 @@ EOF
| | | |