version 3.24, 2000/09/19 20:07:16 |
version 3.28, 2000/09/30 18:27:16 |
|
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
# SUCH DAMAGE. |
# SUCH DAMAGE. |
# |
# |
# $zId: cvsweb.cgi,v 1.101 2000/09/13 22:44:05 jumager Exp $ |
# $zId: cvsweb.cgi,v 1.103 2000/09/20 17:02:29 jumager Exp $ |
# $Id$ |
# $Id$ |
# |
# |
### |
### |
|
|
$bylog $byfile $hr_default $logsort $cvstree $cvsroot |
$bylog $byfile $hr_default $logsort $cvstree $cvsroot |
$mimetype $defaultTextPlain $defaultViewable $allow_compress |
$mimetype $defaultTextPlain $defaultViewable $allow_compress |
$GZIPBIN $backicon $diricon $fileicon $fullname $newname |
$GZIPBIN $backicon $diricon $fileicon $fullname $newname |
$cvstreedefault $body_tag $logo $defaulttitle $address |
$cvstreedefault $body_tag $body_tag_for_src |
$backcolor $long_intro $short_instruction $shortLogLen |
$logo $defaulttitle $address |
|
$long_intro $short_instruction $shortLogLen |
$show_author $dirtable $tablepadding $columnHeaderColorDefault |
$show_author $dirtable $tablepadding $columnHeaderColorDefault |
$columnHeaderColorSorted $hr_breakable $showfunc $hr_ignwhite |
$columnHeaderColorSorted $hr_breakable $showfunc $hr_ignwhite |
$hr_ignkeysubst $diffcolorHeading $diffcolorEmpty $diffcolorRemove |
$hr_ignkeysubst $diffcolorHeading $diffcolorEmpty $diffcolorRemove |
Line 124 sub forbidden_module($); |
|
Line 125 sub forbidden_module($); |
|
use Cwd; |
use Cwd; |
|
|
# == EDIT this == |
# == EDIT this == |
# User configuration is stored in |
# Locations to search for user configuration, in order: |
$config = undef; |
for ( |
|
$ENV{CVSWEB_CONFIG}, |
for ($ENV{CVSWEB_CONFIG}, |
|
# '/home/knu/etc/cvsweb.conf', |
|
'/usr/local/etc/cvsweb.conf', |
'/usr/local/etc/cvsweb.conf', |
getcwd . '/cvsweb.conf') { |
getcwd() . '/cvsweb.conf' |
$config = $_ if defined($_) && -r $_; |
) { |
|
$config = $_ if defined($_) && -r $_; |
} |
} |
|
|
# == Configuration defaults == |
# == Configuration defaults == |
Line 145 $allow_version_select = 1; |
|
Line 145 $allow_version_select = 1; |
|
# These are defined to allow checking with perl -cw |
# These are defined to allow checking with perl -cw |
%CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS = %MTYPES = |
%CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS = %MTYPES = |
%tags = %alltags = @tabcolors = (); |
%tags = %alltags = @tabcolors = (); |
$cvstreedefault = $body_tag = $logo = $defaulttitle = $address = |
$cvstreedefault = $body_tag = $body_tag_for_src = |
$backcolor = $long_intro = $short_instruction = $shortLogLen = |
$logo = $defaulttitle = $address = |
|
$long_intro = $short_instruction = $shortLogLen = |
$show_author = $dirtable = $tablepadding = $columnHeaderColorDefault = |
$show_author = $dirtable = $tablepadding = $columnHeaderColorDefault = |
$columnHeaderColorSorted = $hr_breakable = $showfunc = $hr_ignwhite = |
$columnHeaderColorSorted = $hr_breakable = $showfunc = $hr_ignwhite = |
$hr_ignkeysubst = $diffcolorHeading = $diffcolorEmpty = $diffcolorRemove = |
$hr_ignkeysubst = $diffcolorHeading = $diffcolorEmpty = $diffcolorRemove = |
Line 156 $allow_markup = $use_java_script = $open_extern_window |
|
Line 157 $allow_markup = $use_java_script = $open_extern_window |
|
$extern_window_width = $extern_window_height = $edit_option_form = |
$extern_window_width = $extern_window_height = $edit_option_form = |
$checkout_magic = $show_subdir_lastmod = $show_log_in_markup = $v = |
$checkout_magic = $show_subdir_lastmod = $show_log_in_markup = $v = |
$navigationHeaderColor = $tableBorderColor = $markupLogColor = |
$navigationHeaderColor = $tableBorderColor = $markupLogColor = |
$tabstop = $use_moddate = $moddate = undef; |
$tabstop = $use_moddate = $moddate = $gzip_open = undef; |
|
|
##### End of configuration variables ##### |
##### End of configuration variables ##### |
|
|
Line 209 $nofilelinks = $is_textbased; |
|
Line 210 $nofilelinks = $is_textbased; |
|
# display garbage then :-/ |
# display garbage then :-/ |
# Turn off gzip if running under mod_perl and no zlib is available, |
# Turn off gzip if running under mod_perl and no zlib is available, |
# piping does not work as expected inside the server. |
# piping does not work as expected inside the server. |
$maycompress = (($ENV{HTTP_ACCEPT_ENCODING} =~ m`gzip` |
$maycompress = (((defined($ENV{HTTP_ACCEPT_ENCODING}) |
|
&& $ENV{HTTP_ACCEPT_ENCODING} =~ m`gzip`) |
|| $is_mozilla3) |
|| $is_mozilla3) |
&& !$is_msie |
&& !$is_msie |
&& !($is_mod_perl && !$has_zlib)); |
&& !($is_mod_perl && !$has_zlib)); |
Line 221 $maycompress = (($ENV{HTTP_ACCEPT_ENCODING} =~ m`gzip` |
|
Line 223 $maycompress = (($ENV{HTTP_ACCEPT_ENCODING} =~ m`gzip` |
|
@stickyvars = qw(cvsroot hideattic sortby logsort f only_with_tag); |
@stickyvars = qw(cvsroot hideattic sortby logsort f only_with_tag); |
|
|
if (-f $config) { |
if (-f $config) { |
do $config; |
do $config |
} |
|| &fatal("500 Internal Error", |
else { |
sprintf('Error in loading configuration file: %s<BR><BR>%s<BR>', |
|
$config, &htmlify($@))); |
|
} else { |
&fatal("500 Internal Error", |
&fatal("500 Internal Error", |
'Configuration not found. Set the variable <code>$config</code> ' |
'Configuration not found. Set the variable <code>$config</code> ' |
. 'in cvsweb.cgi, or the environment variable ' |
. 'in cvsweb.cgi, or the environment variable ' |
Line 352 foreach my $k (keys %ICONS) { |
|
Line 356 foreach my $k (keys %ICONS) { |
|
} |
} |
} |
} |
|
|
|
my $config_cvstree = "$config-$cvstree"; |
|
|
# Do some special configuration for cvstrees |
# Do some special configuration for cvstrees |
do "$config-$cvstree" if (-f "$config-$cvstree"); |
if (-f $config_cvstree) { |
|
do $config_cvstree |
|
|| &fatal("500 Internal Error", |
|
sprintf('Error in loading configuration file: %s<BR><BR>%s<BR>', |
|
$config_cvstree, &htmlify($@))); |
|
} |
|
|
$prcategories = '(?:' . join('|', @prcategories) . ')'; |
$prcategories = '(?:' . join('|', @prcategories) . ')'; |
$prcgi .= '%s' if defined($prcgi) && $prcgi !~ /%s/; |
$prcgi .= '%s' if defined($prcgi) && $prcgi !~ /%s/; |
Line 782 elsif (-d $fullname) { |
|
Line 793 elsif (-d $fullname) { |
|
elsif (-f $fullname . ',v') { |
elsif (-f $fullname . ',v') { |
if (defined($input{'rev'}) || $doCheckout) { |
if (defined($input{'rev'}) || $doCheckout) { |
&doCheckout($fullname, $input{'rev'}); |
&doCheckout($fullname, $input{'rev'}); |
close(GZIP) if ($gzip_open); |
gzipclose(); |
exit; |
exit; |
} |
} |
if (defined($input{'annotate'}) && $allow_annotate) { |
if (defined($input{'annotate'}) && $allow_annotate) { |
&doAnnotate($input{'annotate'}); |
&doAnnotate($input{'annotate'}); |
close(GZIP) if ($gzip_open); |
gzipclose(); |
exit; |
exit; |
} |
} |
if (defined($input{'r1'}) && defined($input{'r2'})) { |
if (defined($input{'r1'}) && defined($input{'r2'})) { |
&doDiff($fullname, $input{'r1'}, $input{'tr1'}, |
&doDiff($fullname, $input{'r1'}, $input{'tr1'}, |
$input{'r2'}, $input{'tr2'}, $input{'f'}); |
$input{'r2'}, $input{'tr2'}, $input{'f'}); |
close(GZIP) if ($gzip_open); |
gzipclose(); |
exit; |
exit; |
} |
} |
print("going to dolog($fullname)\n") if ($verbose); |
print("going to dolog($fullname)\n") if ($verbose); |
Line 816 elsif (-d $fullname) { |
|
Line 827 elsif (-d $fullname) { |
|
# e.g. foo.c |
# e.g. foo.c |
&doDiff($fullname, $input{'r1'}, $input{'tr1'}, |
&doDiff($fullname, $input{'r1'}, $input{'tr1'}, |
$input{'r2'}, $input{'tr2'}, $input{'f'}); |
$input{'r2'}, $input{'tr2'}, $input{'f'}); |
close(GZIP) if ($gzip_open); |
gzipclose(); |
exit; |
exit; |
} |
} |
elsif (($newname = $fullname) =~ s|/([^/]+)$|/Attic/$1| && |
elsif (($newname = $fullname) =~ s|/([^/]+)$|/Attic/$1| && |
Line 851 elsif (-d $fullname) { |
|
Line 862 elsif (-d $fullname) { |
|
&fatal("404 Not Found","$where: no such file or directory"); |
&fatal("404 Not Found","$where: no such file or directory"); |
} |
} |
|
|
close(GZIP) if ($gzip_open); |
gzipclose(); |
## End MAIN |
## End MAIN |
|
|
sub printDiffSelect($) { |
sub printDiffSelect($) { |
Line 1522 sub doDiff($$$$$$) { |
|
Line 1533 sub doDiff($$$$$$) { |
|
if ($human_readable) { |
if ($human_readable) { |
http_header(); |
http_header(); |
&human_readable_diff($fh, $rev2); |
&human_readable_diff($fh, $rev2); |
close(GZIP) if ($gzip_open); |
gzipclose(); |
exit; |
exit; |
} |
} |
else { |
else { |
Line 2467 sub navigateHeader($$$$$) { |
|
Line 2478 sub navigateHeader($$$$$) { |
|
$swhere = urlencode($filename) if ($swhere eq ""); |
$swhere = urlencode($filename) if ($swhere eq ""); |
print "<\!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"; |
print "<\!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"; |
print "<HTML>\n<HEAD>\n"; |
print "<HTML>\n<HEAD>\n"; |
print '<!-- CVSweb $zRevision: 1.101 $ $Revision$ -->'; |
print '<!-- CVSweb $zRevision: 1.103 $ $Revision$ -->'; |
print "\n<TITLE>$path$filename - $title - $rev</TITLE></HEAD>\n"; |
print "\n<TITLE>$path$filename - $title - $rev</TITLE></HEAD>\n"; |
print "<BODY BGCOLOR=\"$backcolor\">\n"; |
print "$body_tag_for_src\n"; |
print "<table width=\"100%\" border=0 cellspacing=0 cellpadding=1 bgcolor=\"$navigationHeaderColor\">"; |
print "<table width=\"100%\" border=0 cellspacing=0 cellpadding=1 bgcolor=\"$navigationHeaderColor\">"; |
print "<tr valign=bottom><td>"; |
print "<tr valign=bottom><td>"; |
print "<a href=\"$swhere$query#rev$rev\">$backicon"; |
print "<a href=\"$swhere$query#rev$rev\">$backicon"; |
Line 2822 sub http_header(;$) { |
|
Line 2833 sub http_header(;$) { |
|
|
|
sub html_header($) { |
sub html_header($) { |
my ($title) = @_; |
my ($title) = @_; |
my $version = '$zRevision: 1.101 $ $Revision$'; #' |
my $version = '$zRevision: 1.103 $ $Revision$'; #' |
http_header(); |
http_header(); |
print <<EOH; |
print <<EOH; |
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" |
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" |
Line 2867 sub forbidden_module($) { |
|
Line 2878 sub forbidden_module($) { |
|
} |
} |
|
|
return 0; |
return 0; |
|
} |
|
|
|
# Close the GZIP handle remove the tie. |
|
|
|
sub gzipclose { |
|
if ($gzip_open) { |
|
select(STDOUT); |
|
close(GZIP); |
|
untie *GZIP; |
|
$gzip_open = 0; |
|
} |
} |
} |
|
|
# implement a gzipped file handle via the Compress:Zlib compression |
# implement a gzipped file handle via the Compress:Zlib compression |