=================================================================== RCS file: /cvs/cvsweb/cvsweb.cgi,v retrieving revision 1.1.1.19 retrieving revision 1.1.1.20 diff -u -p -r1.1.1.19 -r1.1.1.20 --- cvsweb/cvsweb.cgi 2001/01/02 12:41:38 1.1.1.19 +++ cvsweb/cvsweb.cgi 2001/01/03 03:36:03 1.1.1.20 @@ -43,7 +43,7 @@ # SUCH DAMAGE. # # $zId: cvsweb.cgi,v 1.104 2000/11/01 22:05:12 hnordstrom Exp $ -# $kId: cvsweb.cgi,v 1.55 2001/01/02 12:23:20 knu Exp $ +# $kId: cvsweb.cgi,v 1.57 2001/01/03 02:55:30 knu Exp $ # ### @@ -53,7 +53,8 @@ use strict; use vars qw ( $config $allow_version_select $verbose - %CVSROOT %CVSROOTdescr %MIRRORS %DEFAULTVALUE %ICONS %MTYPES + @CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr + %MIRRORS %DEFAULTVALUE %ICONS %MTYPES @DIFFTYPES %DIFFTYPES @LOGSORTKEYS %LOGSORTKEYS %alltags @tabcolors %fileinfo %tags @branchnames %nameprinted %symrev %revsym @allrevisions %date %author @revdisplayorder @@ -138,7 +139,7 @@ use File::Basename; # Locations to search for user configuration, in order: for ( (dirname $0) . '/cvsweb.conf', - '/usr/local/etc/cvsweb.conf' + '/usr/local/etc/cvsweb/cvsweb.conf' ) { if (defined($_) && -r $_) { ($config) = /(.*)/; # untaint @@ -155,7 +156,8 @@ $allow_version_select = 1; ######## Configuration variables ######### # These are defined to allow checking with perl -cw -%CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS = %MTYPES = +@CVSrepositories = @CVSROOT = %CVSROOT = +%MIRRORS = %DEFAULTVALUE = %ICONS = %MTYPES = %tags = %alltags = @tabcolors = (); $cvstreedefault = $body_tag = $body_tag_for_src = $logo = $defaulttitle = $address = @@ -359,6 +361,10 @@ else { } undef @barequery; +if (defined($input{path})) { + redirect("$scriptname/$input{path}$query"); +} + # get actual parameters $sortby = $input{"sortby"}; $bydate = 0; @@ -386,7 +392,22 @@ $defaultDiffType = $input{'f'}; $logsort = $input{'logsort'}; +my @tmp = @CVSrepositories; +my @pair; +while (@pair = splice(@tmp, 0, 2)) { + my($key, $val) = @pair; + my($descr, $cvsroot) = @$val; + + next if !-d $cvsroot; + + $CVSROOTdescr{$key} = $descr; + $CVSROOT{$key} = $cvsroot; + push @CVSROOT, $key; +} +undef @tmp; +undef @pair; + ## Default CVS-Tree if (!defined($CVSROOT{$cvstreedefault})) { &fatal("500 Internal Error", @@ -459,7 +480,7 @@ if (-d $fullname) { # to allow relative URL's. If they're not, make a redirect. ## if (!($pathinfo =~ m|/$|) || ($pathinfo =~ m |/{2,}$|)) { - redirect ($scriptwhere . '/' . $query); + redirect("$scriptwhere/$query"); } else { $where .= '/'; @@ -865,6 +886,8 @@ if (-d $fullname) { ">$tag\n"; } print "\n"; + print " Module path or alias:\n"; + printf "\n", htmlquote($where); print "\n"; print "\n"; } @@ -872,7 +895,7 @@ if (-d $fullname) { if ($allow_tar) { my($basefile) = ($where =~ m,(?:.*/)?([^/]+),); - if ($basefile ne '') { + if (defined($basefile) && $basefile ne '') { print "