version 3.4, 2000/07/28 17:24:35 |
version 3.11, 2000/08/13 18:58:24 |
|
|
#!/usr/bin/perl -ws |
#!/usr/bin/perl5 -ws |
# |
# |
# cvsweb - a CGI interface to CVS trees. |
# cvsweb - a CGI interface to CVS trees. |
# |
# |
|
|
# |
# |
# Based on: |
# Based on: |
# * Bill Fenners cvsweb.cgi revision 1.28 available from: |
# * Bill Fenners cvsweb.cgi revision 1.28 available from: |
# http://www.freebsd.org/cgi/cvsweb.cgi/www/en/cgi/cvsweb.cgi |
# http://www.FreeBSD.org/cgi/cvsweb.cgi/www/en/cgi/cvsweb.cgi |
# |
# |
# Copyright (c) 1996-1998 Bill Fenner |
# Copyright (c) 1996-1998 Bill Fenner |
# (c) 1998-1999 Henner Zeller |
# (c) 1998-1999 Henner Zeller |
|
|
# 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.93 2000/07/27 17:42:28 hzeller Exp $ |
# $Id$ |
# $Id$ |
# |
# |
### |
### |
|
|
$checkoutMagic $doCheckout $scriptname $scriptwhere |
$checkoutMagic $doCheckout $scriptname $scriptwhere |
$where $pathinfo $Browser $nofilelinks $maycompress @stickyvars |
$where $pathinfo $Browser $nofilelinks $maycompress @stickyvars |
%funcline_regexp $is_mod_perl |
%funcline_regexp $is_mod_perl |
$is_lynx $is_msie $is_mozilla3 |
$is_lynx $is_w3m $is_msie $is_mozilla3 $is_textbased |
%input $query $barequery $sortby $bydate $byrev $byauthor |
%input $query $barequery $sortby $bydate $byrev $byauthor |
$bylog $byfile $hr_default $logsort $cvstree $cvsroot |
$bylog $byfile $hr_default $logsort $cvstree $cvsroot |
$mimetype $defaultTextPlain $defaultViewable $allow_compress |
$mimetype $defaultTextPlain $defaultViewable $allow_compress |
|
|
); |
); |
|
|
##### Start of Configuration Area ######## |
##### Start of Configuration Area ######## |
|
use Cwd; |
|
|
# == EDIT this == |
# == EDIT this == |
# User configuration is stored in |
# User configuration is stored in |
$config = defined($ENV{CVSWEB_CONFIG}) ? $ENV{CVSWEB_CONFIG} : '/usr/local/etc/cvsweb.conf'; |
$config = undef; |
|
|
|
for ($ENV{CVSWEB_CONFIG}, '/usr/local/etc/cvsweb.conf', getcwd . '/cvsweb.conf') { |
|
$config = $_ if -r $_; |
|
} |
|
|
# == Configuration defaults == |
# == Configuration defaults == |
# Defaults for configuration variables that shouldn't need |
# Defaults for configuration variables that shouldn't need |
# to be configured.. |
# to be configured.. |
Line 133 $is_mod_perl = defined($ENV{MOD_PERL}); |
|
Line 140 $is_mod_perl = defined($ENV{MOD_PERL}); |
|
# per file, so disable the link at the icon |
# per file, so disable the link at the icon |
# in this case: |
# in this case: |
$Browser = $ENV{HTTP_USER_AGENT} || ''; |
$Browser = $ENV{HTTP_USER_AGENT} || ''; |
$is_lynx = ($Browser =~ m`^Lynx/`); |
$is_lynx = ($Browser =~ m`^Lynx/`i); |
|
$is_w3m = ($Browser =~ m`^w3m/`i); |
$is_msie = ($Browser =~ m`MSIE`); |
$is_msie = ($Browser =~ m`MSIE`); |
$is_mozilla3 = ($Browser =~ m`^Mozilla/[3456789]`); |
$is_mozilla3 = ($Browser =~ m`^Mozilla/[3-9]`); |
|
|
$nofilelinks = $is_lynx; |
$is_textbased = ($is_lynx || $is_w3m); |
|
|
|
$nofilelinks = $is_textbased; |
|
|
# newer browsers accept gzip content encoding |
# newer browsers accept gzip content encoding |
# and state this in a header |
# and state this in a header |
# (netscape did always but didn't state it) |
# (netscape did always but didn't state it) |
Line 158 $maycompress =(($ENV{HTTP_ACCEPT_ENCODING} =~ m`gzip` |
|
Line 168 $maycompress =(($ENV{HTTP_ACCEPT_ENCODING} =~ m`gzip` |
|
# to hold our state - they will be added (with |
# to hold our state - they will be added (with |
# their current value) to any link/query string |
# their current value) to any link/query string |
# you construct |
# you construct |
@stickyvars = qw(cvsroot hideattic sortby logsort fonly_with_tag); |
@stickyvars = qw(cvsroot hideattic sortby logsort f only_with_tag); |
|
|
if (-f $config) { |
if (-f $config) { |
do $config; |
do $config; |
|
|
|
|
# get #PR as link .. |
# get #PR as link .. |
if ($pr && defined($prcgi)) { |
if ($pr && defined($prcgi)) { |
1 while $string =~ s`\b(pr[:#]?\s*(?:#?\d+[,\s]\s*)*#?)(\d+)\b`$1<A HREF="$prcgi?pr=$2">$2</A>`i; |
1 while $string =~ s`\b(pr[:#]?\s*(?:#?\d+[,\s]\s*)*#?)(\d+)\b`$1<A HREF="$prcgi$2">$2</A>`i; |
$string =~ s`\b${prcategories}/(\d+)\b`<A HREF="$prcgi?pr=$1">$&</A>`igo; |
$string =~ s`\b${prcategories}/(\d+)\b`<A HREF="$prcgi$1">$&</A>`igo; |
} |
} |
|
|
return $string; |
return $string; |
Line 1469 sub getDirLogs { |
|
Line 1479 sub getDirLogs { |
|
if ($tag) { |
if ($tag) { |
#can't use -r<tag> as - is allowed in tagnames, but misinterpreated by rlog.. |
#can't use -r<tag> as - is allowed in tagnames, but misinterpreated by rlog.. |
if (! open($fh, "-|")) { |
if (! open($fh, "-|")) { |
close(STDERR); # rlog may complain; ignore. |
open(STDERR, '>/dev/null'); # rlog may complain; ignore. |
exec("rlog",@files); |
exec('rlog', @files); |
} |
} |
} |
} |
else { |
else { |
my $kidpid = open($fh, "-|"); |
my $kidpid = open($fh, "-|"); |
if (! $kidpid) { |
if (! $kidpid) { |
open(STDERR, '>/dev/null'); # rlog may complain; ignore. |
open(STDERR, '>/dev/null'); # rlog may complain; ignore. |
exec("rlog","-r",@files); |
exec('rlog', '-r', @files); |
} |
} |
} |
} |
$state = "start"; |
$state = "start"; |
Line 2326 sub navigateHeader ($$$$$) { |
|
Line 2336 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 $Revision$ -->'; |
print '<!-- CVSweb $zRevision: 1.93 $ $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 BGCOLOR=\"$backcolor\">\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\">"; |
Line 2680 sub http_header { |
|
Line 2690 sub http_header { |
|
|
|
sub html_header($) { |
sub html_header($) { |
my ($title) = @_; |
my ($title) = @_; |
my $version = '$Revision$'; |
my $version = '$zRevision: 1.93 $ $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" |