[BACK]Return to cvsweb.cgi CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / cvsweb

Diff for /cvsweb/cvsweb.cgi between version 1.17 and 1.36

version 1.17, 1998/05/05 16:05:32 version 1.36, 1999/09/19 10:55:19
Line 3 
Line 3 
 # cvsweb - a CGI interface to the CVS tree.  # cvsweb - a CGI interface to the CVS tree.
 #  #
 # Written by Bill Fenner <fenner@parc.xerox.com> on his own time.  # Written by Bill Fenner <fenner@parc.xerox.com> on his own time.
 # Insert BSD copyright here.  
 #  #
   # Copyright (c) 1996-1998 Bill Fenner
   # All rights reserved.
   #
   # Redistribution and use in source and binary forms, with or without
   # modification, are permitted provided that the following conditions
   # are met:
   # 1. Redistributions of source code must retain the above copyright
   #    notice, this list of conditions and the following disclaimer.
   # 2. Redistributions in binary form must reproduce the above copyright
   #    notice, this list of conditions and the following disclaimer in the
   #    documentation and/or other materials provided with the distribution.
   #
   # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   # SUCH DAMAGE.
   #
   # $FreeBSD: www/en/cgi/cvsweb.cgi,v 1.35 1999/09/17 18:56:44 wosch Exp $
   #
   
   
 #HTTP_USER_AGENT: Mozilla/1.1N (X11; I; SunOS 4.1.3_U1 sun4m) via proxy gateway CERN-HTTPD/3.0 libwww/2.17  #HTTP_USER_AGENT: Mozilla/1.1N (X11; I; SunOS 4.1.3_U1 sun4m) via proxy gateway CERN-HTTPD/3.0 libwww/2.17
 #SERVER_NAME: www.freebsd.org  #SERVER_NAME: www.freebsd.org
 #QUERY_STRING: baz  #QUERY_STRING: baz
Line 34  require 'cgi-style.pl';
Line 61  require 'cgi-style.pl';
   
 %CVSROOT = (  %CVSROOT = (
             'freebsd', '/home/ncvs',              'freebsd', '/home/ncvs',
             'openbsd', '/home/OpenBSD/cvs',  
             'learn', '/c/learncvs',              'learn', '/c/learncvs',
             'mozilla', '/a/mozilla-cvs',  
             );              );
   
 %CVSROOTdescr = (  %CVSROOTdescr = (
             'freebsd', 'FreeBSD',              'freebsd', 'FreeBSD',
             'openbsd', 'OpenBSD',  
             'learn', 'Learn',              'learn', 'Learn',
             'mozilla', 'Mozilla FreeBSD',  
             );              );
   
   %mirrors = (
               'Germany', 'http://www.de.freebsd.org/cgi/cvsweb.cgi',
               'Spain', 'http://www.es.freebsd.org/cgi/cvsweb.cgi',
               'California', 'http://www.freebsd.org/cgi/cvsweb.cgi',
               'Japan', 'http://www.jp.freebsd.org/cgi/cvsweb.cgi',
              );
   
 $cvstreedefault = 'freebsd';  $cvstreedefault = 'freebsd';
 $cvstree = $cvstreedefault;  $cvstree = $cvstreedefault;
 $cvsroot = $CVSROOT{"$cvstree"} || "/home/ncvs";  $cvsroot = $CVSROOT{"$cvstree"} || "/home/ncvs";
Line 119  if (!-d $cvsroot) {
Line 149  if (!-d $cvsroot) {
 {  {
     local(@foo, $i);      local(@foo, $i);
     local($scriptname) = $ENV{'SCRIPT_NAME'};      local($scriptname) = $ENV{'SCRIPT_NAME'};
     foreach (keys %CVSROOT) {      foreach (sort keys %CVSROOT) {
         if (-d $CVSROOT{$_}) {          if (-d $CVSROOT{$_}) {
             push(@foo, $_);              push(@foo, $_);
         }          }
     }      }
     if ($#foo > 1) {      if ($#foo > 1) {
         $intro .= "<p>\nThis script support the following CVS trees:\n";          $intro .= "<p>\nThis script supports the following CVS trees:\n";
         for($i = 0; $i <= $#foo; $i++) {          for($i = 0; $i <= $#foo; $i++) {
             $intro .= qq{<a href="$scriptname?cvsroot=$foo[$i]">} .              $intro .= qq{<a href="$scriptname?cvsroot=$foo[$i]">} .
                 ($CVSROOTdescr{$foo[$i]} ?                  ($CVSROOTdescr{$foo[$i]} ?
Line 136  if (!-d $cvsroot) {
Line 166  if (!-d $cvsroot) {
 }  }
   
   
   {
       local(@mirrors) = sort keys %mirrors;;
       if ($#mirrors >= 0) {
           $intro .= "<p>\nThis script is mirrored in:\n";
           local($m);
           for($m = 0; $m <= $#mirrors; $m++) {
               $intro .= qq(<a href="$mirrors{$mirrors[$m]}">$mirrors[$m]</a>);
               $intro .= ',' if $m != $#mirrors;
               $intro .= "\n";
           }
       }
   }
   
   
 if (-d $fullname) {  if (-d $fullname) {
         opendir(DIR, $fullname) || &fatal("404 Not Found","$where: $!");          opendir(DIR, $fullname) || &fatal("404 Not Found","$where: $!");
         @dir = readdir(DIR);          @dir = readdir(DIR);
Line 148  if (-d $fullname) {
Line 192  if (-d $fullname) {
             print $shortinstr;              print $shortinstr;
         }          }
         print "<p>";          print "<p>";
         print "Current CVS tree: <b>$cvstree</b><br>\n"          print "Current CVS tree: <b>",
             if $cvstree ne $cvstreedefault;                  ($CVSROOTdescr{"$cvstree"} ? $CVSROOTdescr{"$cvstree"} :
                           $cvstree), "</b><br>\n";
         print "Current directory: <b>/$where</b>\n";          print "Current directory: <b>/$where</b>\n";
         print "<P><HR NOSHADE>\n";          print "<P><HR NOSHADE>\n";
         # Using <MENU> in this manner violates the HTML2.0 spec but          # Using <MENU> in this manner violates the HTML2.0 spec but
Line 174  if (-d $fullname) {
Line 219  if (-d $fullname) {
             if ($_ eq '.') {              if ($_ eq '.') {
                 next;                  next;
             }              }
               # ignore CVS lock and stale NFS files
               next if /^#cvs\.|^,|^\.nfs/;
   
             if (s|^Attic/||) {              if (s|^Attic/||) {
                 $attic = " (in the Attic)";                  $attic = " (in the Attic)";
             } else {              } else {
Line 281  sub htmlify {
Line 329  sub htmlify {
         $string =~ s/>/&gt;/g;          $string =~ s/>/&gt;/g;
   
         if ($pr) {          if ($pr) {
                 $string =~ s|\bpr(\W+[a-z]+/\W*)(\d+)|<A HREF=/cgi/query-pr.cgi?pr=$2>$&</A>|ig;                  $string =~ s!\b((pr[:#]?\s*#?)|((bin|conf|docs|gnu|i386|kern|misc|ports)\/))(\d+)\b!<A HREF=http://www.freebsd.org/cgi/query-pr.cgi?pr=\5>$&</A>!ig;
         }          }
   
         $string;          $string;
Line 381  sub checkout {
Line 429  sub checkout {
                 "Unexpected output from co: $_");                  "Unexpected output from co: $_");
         }          }
         $_ = <RCS>;          $_ = <RCS>;
         if (/^revision\s+$rev\s*$/) {          if ($rev eq ".") {
               # latest rev requested, don't check
           } elsif (/^revision\s+$rev\s*$/) {
             # As expected              # As expected
         } else {          } else {
             &fatal("500 Internal Error",              &fatal("500 Internal Error",

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.36

CVSweb