Merge from FreeBSD-CVSweb 2.0.4.

Refer to the project page for details.
This commit is contained in:
Akinori MUSHA 2002-07-07 04:46:06 +00:00
parent 8daa6f1bb4
commit 7a8fd215b9
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=13575
2 changed files with 88 additions and 89 deletions

View file

@ -10,7 +10,7 @@
# Dick Balaska <dick@buckosoft.com> # Dick Balaska <dick@buckosoft.com>
# Akinori MUSHA <knu@FreeBSD.org> # Akinori MUSHA <knu@FreeBSD.org>
# Jens-Uwe Mager <jum@helios.de> # Jens-Uwe Mager <jum@helios.de>
# Ville Skyttä <ville.skytta@iki.fi> (html cleanup) # Ville Skyttä <scop@FreeBSD.org>
# #
# Based on: # Based on:
# * Bill Fenners cvsweb.cgi revision 1.28 available from: # * Bill Fenners cvsweb.cgi revision 1.28 available from:
@ -18,9 +18,9 @@
# #
# Copyright (c) 1996-1998 Bill Fenner # Copyright (c) 1996-1998 Bill Fenner
# (c) 1998-1999 Henner Zeller # (c) 1998-1999 Henner Zeller
# (c) 1999 Henrik Nordstrom # (c) 1999 Henrik Nordstrom
# (c) 2000-2002 Akinori MUSHA # (c) 2000-2002 Akinori MUSHA
# All rights reserved. # (c) 2002 Ville Skyttä# All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions # modification, are permitted provided that the following conditions
@ -43,10 +43,10 @@
# 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.
# #
# FreeBSD: projects/cvsweb/cvsweb.cgi,v 1.104 2002/05/22 08:10:18 knu Exp # FreeBSD: projects/cvsweb/cvsweb.cgi,v 1.112 2002/07/06 18:15:19 scop Exp
# $Id: cvsweb.cgi,v 1.83 2002-05-22 08:33:27 knu Exp $ # $Id: cvsweb.cgi,v 1.84 2002-07-07 04:46:06 knu Exp $
# $Idaemons: /home/cvs/cvsweb/cvsweb.cgi,v 1.84 2001/10/07 20:50:10 knu Exp $ # $Idaemons: /home/cvs/cvsweb/cvsweb.cgi,v 1.84 2001/10/07 20:50:10 knu Exp $
# $FreeBSD: www/en/cgi/cvsweb.cgi,v 1.82 2002/05/22 08:31:02 knu Exp $ # $FreeBSD: www/en/cgi/cvsweb.cgi,v 1.83 2002/05/22 08:33:27 knu Exp $
# #
### ###
@ -93,7 +93,7 @@ use vars qw (
$use_moddate $has_zlib $gzip_open $use_moddate $has_zlib $gzip_open
$allow_tar @tar_options @gzip_options @zip_options @cvs_options $allow_tar @tar_options @gzip_options @zip_options @cvs_options
$LOG_FILESEPARATOR $LOG_REVSEPARATOR $LOG_FILESEPARATOR $LOG_REVSEPARATOR
$tmpdir $HTML_DOCTYPE $tmpdir $HTML_DOCTYPE $HTML_META
); );
sub printDiffSelect($); sub printDiffSelect($);
@ -148,7 +148,7 @@ sub forbidden_module($);
##### Start of Configuration Area ######## ##### Start of Configuration Area ########
delete $ENV{PATH}; delete $ENV{PATH};
$cvsweb_revision = '2.0.3'; $cvsweb_revision = '2.0.4';
use File::Basename (); use File::Basename ();
@ -186,7 +186,7 @@ $cvstreedefault = $body_tag = $body_tag_for_src = $logo = $defaulttitle =
$extern_window_width = $extern_window_height = $edit_option_form = $extern_window_width = $extern_window_height = $edit_option_form =
$show_subdir_lastmod = $show_log_in_markup = $v = $navigationHeaderColor = $show_subdir_lastmod = $show_log_in_markup = $v = $navigationHeaderColor =
$tableBorderColor = $markupLogColor = $tabstop = $use_moddate = $moddate = $tableBorderColor = $markupLogColor = $tabstop = $use_moddate = $moddate =
$gzip_open = $HTML_DOCTYPE = undef; $gzip_open = $HTML_DOCTYPE = $HTML_META = undef;
$tmpdir = defined($ENV{TMPDIR}) ? $ENV{TMPDIR} : "/var/tmp"; $tmpdir = defined($ENV{TMPDIR}) ? $ENV{TMPDIR} : "/var/tmp";
$LOG_FILESEPARATOR = q/^={77}$/; $LOG_FILESEPARATOR = q/^={77}$/;
@ -235,7 +235,7 @@ $LOG_REVSEPARATOR = q/^-{28}$/;
); );
$cgi_style::hsty_base = 'http://www.FreeBSD.org'; $cgi_style::hsty_base = 'http://www.FreeBSD.org';
$_ = q$FreeBSD: www/en/cgi/cvsweb.cgi,v 1.82 2002/05/22 08:31:02 knu Exp $; $_ = q$FreeBSD: www/en/cgi/cvsweb.cgi,v 1.83 2002/05/22 08:33:27 knu Exp $;
@_ = split; @_ = split;
$cgi_style::hsty_date = "@_[3,4]"; $cgi_style::hsty_date = "@_[3,4]";
@ -249,6 +249,13 @@ package main;
$HTML_DOCTYPE = $HTML_DOCTYPE =
'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'; '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">';
$HTML_META = <<EOM;
<meta name="robots" content="nofollow">
<meta name="generator" content="FreeBSD-CVSweb $cvsweb_revision">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
EOM
##### End of configuration variables ##### ##### End of configuration variables #####
use Time::Local (); use Time::Local ();
@ -643,14 +650,14 @@ if (-d $fullname) {
print $short_instruction; print $short_instruction;
} }
my $descriptions; if ($use_descriptions && open(DESC, "<$cvsroot/CVSROOT/descriptions"))
if (($use_descriptions) && open(DESC, "<$cvsroot/CVSROOT/descriptions"))
{ {
while (<DESC>) { while (<DESC>) {
chomp; chomp;
my ($dir, $description) = /(\S+)\s+(.*)/; my ($dir, $description) = /(\S+)\s+(.*)/;
$descriptions{$dir} = $description; $descriptions{$dir} = $description;
} }
close(DESC);
} }
print "<p><a name=\"dirlist\"></a></p>\n"; print "<p><a name=\"dirlist\"></a></p>\n";
@ -1015,8 +1022,9 @@ if (-d $fullname) {
|| $input{$var} ne $DEFAULTVALUE{$var}) || $input{$var} ne $DEFAULTVALUE{$var})
&& $input{$var} ne "" && $var ne "only_with_tag"); && $input{$var} ne "" && $var ne "only_with_tag");
} }
print "<p>Show only files with tag:\n"; print "<p><label for=\"only_with_tag\" accesskey=\"T\">";
print "<select name=\"only_with_tag\""; print "Show only files with tag:</label>\n";
print "<select id=\"only_with_tag\" name=\"only_with_tag\"";
print " onchange=\"this.form.submit()\"" if $use_java_script; print " onchange=\"this.form.submit()\"" if $use_java_script;
print ">"; print ">";
print "<option value=\"\">All tags / default branch</option>\n"; print "<option value=\"\">All tags / default branch</option>\n";
@ -1028,10 +1036,11 @@ if (-d $fullname) {
">$tag</option>\n"; ">$tag</option>\n";
} }
print "</select>\n"; print "</select>\n";
print " Module path or alias:\n"; print " <label for=\"path\" accesskey=\"P\">";
printf "<input type=\"text\" name=\"path\" value=\"%s\" size=\"15\">\n", print "Module path or alias:</label>\n";
printf "<input type=\"text\" id=\"path\" name=\"path\" value=\"%s\" size=\"15\">\n",
htmlquote($where); htmlquote($where);
print "<input type=\"submit\" value=\"Go\"></p>\n"; print "<input type=\"submit\" value=\"Go\" accesskey=\"G\"></p>\n";
print "</form>\n"; print "</form>\n";
} }
@ -1069,7 +1078,9 @@ if (-d $fullname) {
print "<center>\n<table cellpadding=\"0\" cellspacing=\"0\">"; print "<center>\n<table cellpadding=\"0\" cellspacing=\"0\">";
print "\n<tr style=\"background-color: $columnHeaderColorDefault\">\n"; print "\n<tr style=\"background-color: $columnHeaderColorDefault\">\n";
print "<th colspan=\"2\">Preferences</th>\n</tr>\n"; print "<th colspan=\"2\">Preferences</th>\n</tr>\n";
print "<tr>\n<td>Sort files by <select name=\"sortby\">\n"; print "<tr>\n<td>";
print "<label for=\"sortby\" accesskey=\"F\">Sort files by ";
print "</label><select id=\"sortby\" name=\"sortby\">\n";
print "<option value=\"\">File</option>\n"; print "<option value=\"\">File</option>\n";
print "<option", $bydate ? " selected" : "", print "<option", $bydate ? " selected" : "",
" value=\"date\">Age</option>\n"; " value=\"date\">Age</option>\n";
@ -1081,18 +1092,21 @@ if (-d $fullname) {
print "<option", $bylog ? " selected" : "", print "<option", $bylog ? " selected" : "",
" value=\"log\">Log message</option>\n"; " value=\"log\">Log message</option>\n";
print "</select>\n</td>\n"; print "</select>\n</td>\n";
print "<td>Sort log by: "; print "<td><label for=\"logsort\" accesskey=\"L\">";
print "Sort log by: </label>";
printLogSortSelect(0); printLogSortSelect(0);
print "</td>\n</tr>\n"; print "</td>\n</tr>\n";
print "<tr>\n<td>Diff format: "; print "<tr>\n<td><label for=\"f\" accesskey=\"D\">";
print "Diff format: </label>";
printDiffSelect(0); printDiffSelect(0);
print "</td>\n"; print "</td>\n";
print "<td><label>Show Attic files: "; print "<td><label for=\"hideattic\" accesskey=\"A\">";
print "<input name=\"hideattic\" type=\"checkbox\"", print "Show Attic files: </label>";
print "<input id=\"hideattic\" name=\"hideattic\" type=\"checkbox\"",
$input{'hideattic'} ? " checked" : "", $input{'hideattic'} ? " checked" : "",
"></label></td>\n</tr>\n"; "></td>\n</tr>\n";
print "<tr>\n<td align=\"center\" colspan=\"2\">"; print "<tr>\n<td align=\"center\" colspan=\"2\">";
print "<input type=\"submit\" value=\"Change Options\">"; print "<input type=\"submit\" value=\"Change Options\" accesskey=\"C\">";
print "</td>\n</tr>\n</table>\n</center>\n</form>\n"; print "</td>\n</tr>\n</table>\n</center>\n</form>\n";
} }
html_footer(); html_footer();
@ -1197,7 +1211,7 @@ sub printDiffSelect($) {
my ($use_java_script) = @_; my ($use_java_script) = @_;
my $f = $input{'f'}; my $f = $input{'f'};
print '<select name="f"'; print '<select id="f" name="f"';
print ' onchange="this.form.submit()"' if $use_java_script; print ' onchange="this.form.submit()"' if $use_java_script;
print ">\n"; print ">\n";
@ -1213,7 +1227,7 @@ sub printDiffSelect($) {
sub printLogSortSelect($) { sub printLogSortSelect($) {
my ($use_java_script) = @_; my ($use_java_script) = @_;
print '<select name="logsort"'; print '<select id="logsort" name="logsort"';
print ' onchange="this.form.submit()"' if $use_java_script; print ' onchange="this.form.submit()"' if $use_java_script;
print ">\n"; print ">\n";
@ -2776,7 +2790,6 @@ sub printLog($;$) {
printDiffLinks($input{'r1'}, $url); printDiffLinks($input{'r1'}, $url);
} }
print '<br>' if $diff;
} }
print "\n</p>\n<pre>\n"; print "\n</p>\n<pre>\n";
print &htmlify($log{$_}, $allow_log_extra); print &htmlify($log{$_}, $allow_log_extra);
@ -2838,41 +2851,47 @@ sub doLog($) {
|| $input{$_} ne $DEFAULTVALUE{$_}) && $input{$_} ne "")); || $input{$_} ne $DEFAULTVALUE{$_}) && $input{$_} ne ""));
} }
print "<table style=\"border: none\">\n<tr>\n"; print "<table style=\"border: none\">\n<tr>\n";
print "<td align=\"right\">Diffs between \n"; print "<td align=\"right\">";
print "<select name=\"r1\">\n"; print "<label for=\"r1\" accesskey=\"1\">Diffs between </label>\n";
print "<select id=\"r1\" name=\"r1\">\n";
print "<option value=\"text\" selected>Use Text Field</option>\n"; print "<option value=\"text\" selected>Use Text Field</option>\n";
print $sel; print $sel;
print "</select>\n"; print "</select>\n";
$diffrev = $revdisplayorder[$#revdisplayorder]; $diffrev = $revdisplayorder[$#revdisplayorder];
$diffrev = $input{"r1"} if (defined($input{"r1"})); $diffrev = $input{"r1"} if (defined($input{"r1"}));
print print
"<input type=\"text\" size=\"$inputTextSize\" name=\"tr1\" value=\"$diffrev\" onchange=\"document.diff_select.r1.selectedIndex=0\"></td>\n"; "<input type=\"text\" size=\"$inputTextSize\" name=\"tr1\" value=\"$diffrev\" onchange=\"this.form.r1.selectedIndex=0\"></td>\n";
print "<td><br></td>\n</tr>\n"; print "<td><br></td>\n</tr>\n";
print "<tr>\n<td align=\"right\">and \n"; print "<tr>\n<td align=\"right\">";
print "<select name=\"r2\">\n"; print "<label for=\"r2\" accesskey=\"2\">and </label>\n";
print "<select id=\"r2\" name=\"r2\">\n";
print "<option value=\"text\" selected>Use Text Field</option>\n"; print "<option value=\"text\" selected>Use Text Field</option>\n";
print $sel; print $sel;
print "</select>\n"; print "</select>\n";
$diffrev = $revdisplayorder[0]; $diffrev = $revdisplayorder[0];
$diffrev = $input{"r2"} if (defined($input{"r2"})); $diffrev = $input{"r2"} if (defined($input{"r2"}));
print print
"<input type=\"text\" size=\"$inputTextSize\" name=\"tr2\" value=\"$diffrev\" onchange=\"document.diff_select.r2.selectedIndex=0\"></td>\n"; "<input type=\"text\" size=\"$inputTextSize\" name=\"tr2\" value=\"$diffrev\" onchange=\"this.form.r2.selectedIndex=0\"></td>\n";
print "<td><input type=\"submit\" value=\" Get Diffs \"></td>\n"; print "<td><input type=\"submit\" value=\" Get Diffs \" accesskey=\"G\"></td>\n";
print "</tr>\n</table>\n"; print "</tr>\n</table>\n";
print "</form>\n"; print "</form>\n";
print "<hr noshade>\n"; print "<hr noshade>\n";
print "<form method=\"get\" action=\"$scriptwhere\">\n"; print "<form method=\"get\" action=\"$scriptwhere\">\n";
print "<table style=\"border: none\">\n"; print "<table style=\"border: none\">\n";
print "<tr>\n<td align=\"right\">Preferred Diff type:</td>\n"; print "<tr>\n<td align=\"right\">";
print "<label for=\"f\" accesskey=\"D\">Preferred Diff type:";
print "</label></td>\n";
print "<td>"; print "<td>";
printDiffSelect($use_java_script); printDiffSelect($use_java_script);
print "</td>\n<td></td>\n</tr>\n"; print "</td>\n<td></td>\n</tr>\n";
if (@branchnames) { if (@branchnames) {
print "<tr>\n<td align=\"right\">View only Branch:</td>\n"; print "<tr>\n<td align=\"right\">";
print "<label for=\"only_with_tag\" accesskey=\"B\">";
print "View only Branch:</label></td>\n";
print "<td>"; print "<td>";
print "<a name=\"branch\"></a>\n"; print "<a name=\"branch\"></a>\n";
print "<select name=\"only_with_tag\""; print "<select id=\"only_with_tag\" name=\"only_with_tag\"";
print " onchange=\"this.form.submit()\"" if $use_java_script; print " onchange=\"this.form.submit()\"" if $use_java_script;
print ">\n"; print ">\n";
print "<option value=\"\""; print "<option value=\"\"";
@ -2902,11 +2921,11 @@ sub doLog($) {
} }
print "<tr>\n<td align=\"right\">"; print "<tr>\n<td align=\"right\">";
print "<a name=\"logsort\"></a>\n"; print "<a name=\"logsort\"></a>\n";
print "Sort log by:</td>\n"; print "<label for=\"logsort\" accesskey=\"L\">Sort log by:";
print "<td>"; print "</label></td>\n<td>";
printLogSortSelect($use_java_script); printLogSortSelect($use_java_script);
print "</td>\n"; print "</td>\n";
print "<td><input type=\"submit\" value=\" Set \"></td>\n"; print "<td><input type=\"submit\" value=\" Set \" accesskey=\"S\"></td>\n";
print "</tr>\n</table>\n"; print "</tr>\n</table>\n";
print "</form>\n"; print "</form>\n";
html_footer(); html_footer();
@ -3159,12 +3178,8 @@ sub navigateHeader($$$$$) {
$HTML_DOCTYPE $HTML_DOCTYPE
<html> <html>
<head> <head>
<meta name="robots" content="nofollow">
<meta http-equiv="Content-Script-Type" content="application/x-javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<!-- FreeBSD-cvsweb $cvsweb_revision -->
<title>$path$filename - $title - $rev</title>$css <title>$path$filename - $title - $rev</title>$css
</head> $HTML_META</head>
$body_tag_for_src $body_tag_for_src
<table width="100%" style="border: none; background-color: $navigationHeaderColor" cellspacing="0" cellpadding="1"> <table width="100%" style="border: none; background-color: $navigationHeaderColor" cellspacing="0" cellpadding="1">
<tr valign="bottom"><td> <tr valign="bottom"><td>
@ -3294,8 +3309,8 @@ sub chooseCVSRoot() {
# isn't gray and the form elements are not placed # isn't gray and the form elements are not placed
# within a table ... # within a table ...
print "<table style=\"border: none\">\n<tr>\n"; print "<table style=\"border: none\">\n<tr>\n";
print "<td>CVS Root:</td>\n"; print "<td><label for=\"cvsroot\" accesskey=\"C\">CVS Root:</label></td>\n";
print "<td>\n<select name=\"cvsroot\""; print "<td>\n<select id=\"cvsroot\" name=\"cvsroot\"";
print " onchange=\"this.form.submit()\"" if $use_java_script; print " onchange=\"this.form.submit()\"" if $use_java_script;
print ">\n"; print ">\n";
@ -3314,9 +3329,10 @@ sub chooseCVSRoot() {
print "CVS Root: <b>[$cvstree]</b>"; print "CVS Root: <b>[$cvstree]</b>";
} }
print " Module path or alias:\n"; print " <label for=\"path\" accesskey=\"P\">Module path or alias:";
print "<input type=\"text\" name=\"path\" value=\"\" size=\"15\">\n"; print "</label>\n";
print "<input type=\"submit\" value=\"Go\">"; print "<input type=\"text\" id=\"path\" name=\"path\" value=\"\" size=\"15\">\n";
print "<input type=\"submit\" value=\"Go\" accesskey=\"G\">";
if (2 <= @CVSROOT) { if (2 <= @CVSROOT) {
print "</td>\n</tr>\n</table>"; print "</td>\n</tr>\n</table>";
@ -3336,7 +3352,7 @@ sub chooseMirror() {
# #
# Should perhaps exlude the current site somehow.. # Should perhaps exlude the current site somehow..
if (keys %MIRRORS) { if (keys %MIRRORS) {
print "\nThis cvsweb is mirrored in:\n"; print "\nThis CVSweb is mirrored in:\n";
foreach $mirror (keys %MIRRORS) { foreach $mirror (keys %MIRRORS) {
print ", " if ($moremirrors); print ", " if ($moremirrors);
@ -3610,12 +3626,8 @@ sub html_header($) {
$HTML_DOCTYPE $HTML_DOCTYPE
<html> <html>
<head> <head>
<meta name="robots" content="nofollow">
<meta http-equiv="Content-Script-Type" content="application/x-javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>$title</title> <title>$title</title>
<!-- FreeBSD-cvsweb $cvsweb_revision --> $HTML_META</head>
</head>
$header $header
EOH EOH
} }

View file

@ -5,11 +5,13 @@
# (c) 1998-1999 H. Zeller <zeller@think.de> # (c) 1998-1999 H. Zeller <zeller@think.de>
# 1999 H. Nordstrom <hno@hem.passagen.se> # 1999 H. Nordstrom <hno@hem.passagen.se>
# 2000-2002 A. MUSHA <knu@FreeBSD.org> # 2000-2002 A. MUSHA <knu@FreeBSD.org>
# 2002 V. Skyttä <scop@FreeBSD.org>
# based on work by Bill Fenner <fenner@FreeBSD.org> # based on work by Bill Fenner <fenner@FreeBSD.org>
# #
# $Id: cvsweb.conf,v 1.28 2002-07-01 16:22:34 fenner Exp $ # FreeBSD: projects/cvsweb/cvsweb.conf,v 1.35 2002/07/06 18:10:44 scop Exp
# $Id: cvsweb.conf,v 1.29 2002-07-07 04:46:06 knu Exp $
# $Idaemons: /home/cvs/cvsweb/cvsweb.conf,v 1.27 2001/08/01 09:48:39 knu Exp $ # $Idaemons: /home/cvs/cvsweb/cvsweb.conf,v 1.27 2001/08/01 09:48:39 knu Exp $
# $FreeBSD: www/en/cgi/cvsweb.conf,v 1.27 2002/05/22 08:31:06 knu Exp $ # $FreeBSD: www/en/cgi/cvsweb.conf,v 1.28 2002/07/01 16:22:34 fenner Exp $
# #
### ###
@ -153,11 +155,11 @@ $body_tag_for_src = '<body text="#000000" bgcolor="#eeeeee">';
# Wanna have a logo on the page ? # Wanna have a logo on the page ?
$logo = ''; $logo = '';
# The title of the Page on startup # The title of the Page on startup. This will be put inside a <h1> tag.
$defaulttitle = "CVS Repository"; $defaulttitle = "CVS Repository";
# The address is shown on the footer # The address is shown on the footer. This will be put inside a <address> tag.
$address = '<font size="-1">CVSweb by &lt;knu@FreeBSD.org&gt;</font>'; $address = '<span style="font-size: smaller">FreeBSD-CVSweb &lt;<a href="mailto:freebsd-cvsweb@FreeBSD.org">freebsd-cvsweb@FreeBSD.org</a>&gt;</span>';
# color of navigation Header for # color of navigation Header for
# diffs and annotations # diffs and annotations
@ -177,44 +179,29 @@ a form at the bottom of the page that allows you to
display diffs between arbitrary revisions. display diffs between arbitrary revisions.
</p> </p>
<p> <p>
This script has been written by Bill Fenner &lt;<a This script has been written by Bill Fenner and improved by Henner Zeller,
href="mailto:fenner\@FreeBSD.org">fenner\@FreeBSD.org</a>&gt; and Henrik Nordstr&ouml;m, and Ken Coar, then Akinori MUSHA brought it
improved by Henner Zeller &lt;<a
href="mailto:zeller\@think.de">zeller\@think.de</a>&gt;, Henrik
Nordstr&ouml;m &lt;<a
href="mailto:hno\@hem.passagen.se">hno\@hem.passagen.se</a>&gt;, and
Ken Coar &lt;<a
href="mailto:Ken.Coar\@Golux.Com">Ken.Coar\@Golux.Com</a>&gt;, then
Akinori MUSHA &lt;<a
href="mailto:knu\@FreeBSD.org">knu\@FreeBSD.org</a>&gt; brought it
back to FreeBSD community and made further improvements; it is covered back to FreeBSD community and made further improvements; it is covered
by the <a by <a
href="http://www.opensource.org/licenses/bsd-license.html">BSD-Licence</a>. href="http://www.opensource.org/licenses/bsd-license.html">The BSD Licence</a>.
</p> </p>
<p> <p>
If you would like to use this CGI script on your own web server and If you would like to use this CGI script on your own web server and
CVS tree, download the latest version <a CVS tree, download the latest version from &lt;URL:<a
href="http://www.idaemons.org/~knu/cvsweb/">here</a>, and also check href="http://www.FreeBSD.org/projects/cvsweb.html">http://www.FreeBSD.org/projects/cvsweb.html</a>&gt;.
out Zeller's <a
href="http://linux.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi" >CVSweb
distribution site</a>. Bill's original script can be found <a
href="http://www.FreeBSD.org/~fenner/cvsweb/">here</a>.
</p> </p>
<p> <p>
Please send any suggestions, comments, etc. to Feel free to send any patches, suggestions and comments to the FreeBSD-CVSweb
<a href="mailto:fenner\@FreeBSD.org">Bill Fenner</a> or, regarding the mailing list at
modifications, to &lt;<a
<a href="mailto:knu\@FreeBSD.org">Akinori MUSHA</a>, href="mailto:freebsd-cvsweb\@FreeBSD.org">freebsd-cvsweb\@FreeBSD.org</a>&gt;.
<a href="mailto:zeller\@think.de">Henner Zeller</a>,
<a href="mailto:hno\@hem.passagen.se">Henrik Nordstr&ouml;m</a>, or
<a href="mailto:Ken.Coar\@Golux.Com">Ken Coar</a>.
</p> </p>
EOT EOT
$short_instruction = <<EOT; $short_instruction = <<EOT;
<p> <p>
Click on a directory to enter that directory. Click on a file to display Click on a directory to enter that directory. Click on a file to display
its revision history and to get a chance to display diffs between revisions. its revision history and to get a chance to display diffs between revisions.
</p> </p>
EOT EOT
@ -518,7 +505,7 @@ $allow_tar = '';
# compression, or higher, for better compression. # compression, or higher, for better compression.
# Options to pass to cvs(1). # Options to pass to cvs(1).
@cvs_options = qw(-l); @cvs_options = qw(-lf);
push @cvs_options, '-R' if ($uname eq 'FreeBSD' || $uname eq 'OpenBSD'); push @cvs_options, '-R' if ($uname eq 'FreeBSD' || $uname eq 'OpenBSD');