Quote all values to be used in urls or in html output.
Bug #261616 r=timeless
This commit is contained in:
Родитель
f404ddb2db
Коммит
ee84b4fa36
|
@ -106,7 +106,7 @@ sub PutsHeader {
|
|||
$h2 = "";
|
||||
}
|
||||
|
||||
print "<HTML><HEAD>\n<TITLE>$title</TITLE>\n";
|
||||
print "<HTML><HEAD>\n<TITLE>" . &html_quote($title) . "</TITLE>\n";
|
||||
print $::Setup_String if (defined($::Setup_String) && $::Setup_String);
|
||||
print Param("headerhtml") . "\n</HEAD>\n";
|
||||
print "<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\"\n";
|
||||
|
|
|
@ -89,7 +89,9 @@ if ($filename eq '')
|
|||
print "\nFiles in the CVSROOT dir cannot be viewed.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
my ($file_head, $file_tail) = $filename =~ m@(.*/)?(.+)@;
|
||||
$file_head = '' if !defined($file_head);
|
||||
my $url_filename = url_quote($filename);
|
||||
my $url_file_tail = url_quote($file_tail);
|
||||
|
||||
|
@ -115,7 +117,8 @@ if (defined $root and $root ne '') {
|
|||
} else {
|
||||
print "\n";
|
||||
&print_top;
|
||||
print "Error: Root, $root, is not a directory.<BR><BR>\n";
|
||||
print "Error: Root, " . &html_quote($root) .
|
||||
", is not a directory.<BR><BR>\n";
|
||||
print "</BODY></HTML>\n";
|
||||
&print_bottom;
|
||||
exit;
|
||||
|
@ -436,7 +439,7 @@ sub max {
|
|||
}
|
||||
|
||||
sub print_top {
|
||||
my ($title_text) = "for $file_tail (";
|
||||
my ($title_text) = "for " . &html_quote($file_tail) . " (";
|
||||
$title_text .= "$browse_revtag:" unless $browse_revtag eq 'HEAD';
|
||||
$title_text .= $revision if $revision;
|
||||
$title_text .= ")";
|
||||
|
@ -706,6 +709,7 @@ sub print_raw_data {
|
|||
my %revs_seen = ();
|
||||
my $prev_rev = $::revision_map[0];
|
||||
my $count = 0;
|
||||
print "<PRE>\n";
|
||||
for my $rev (@::revision_map) {
|
||||
if ($prev_rev eq $rev) {
|
||||
$count++;
|
||||
|
@ -721,6 +725,7 @@ sub print_raw_data {
|
|||
for my $rev (sort keys %revs_seen) {
|
||||
print "$rev|$::revision_ctime{$rev}|$::revision_author{$rev}|$::revision_log{$rev}.\n";
|
||||
}
|
||||
print "</PRE>\n";
|
||||
}
|
||||
|
||||
sub link_includes {
|
||||
|
|
|
@ -62,7 +62,7 @@ if( @fl == 0 ){
|
|||
print "<h3>No files matched this file name. It may have been added recently.</h3>";
|
||||
}
|
||||
elsif( @fl == 1 ){
|
||||
$s = $fl[0];
|
||||
$s = &url_quote($fl[0]);
|
||||
print "<head>
|
||||
<meta http-equiv=Refresh
|
||||
content=\"0; URL=cvsblame.cgi?file=$s&rev=$rev&root=$CVS_ROOT&mark=$mark#$ln\">
|
||||
|
@ -72,6 +72,7 @@ elsif( @fl == 1 ){
|
|||
else {
|
||||
print "<h3>Pick the file that best matches the one you are looking for:</h3>\n";
|
||||
for $s (@fl) {
|
||||
print "<dt><a href=cvsblame.cgi?file=$s&rev=$rev&mark=$mark#$ln>$s</a>";
|
||||
print "<dt><a href=cvsblame.cgi?file=" . &url_quote($s) .
|
||||
"&rev=$rev&mark=$mark#$ln>$s</a>";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -129,8 +129,9 @@ unless ($found_rcs_file) {
|
|||
|
||||
|
||||
my $rcs_path;
|
||||
my $url_rcs_path;
|
||||
($rcs_path) = $rcs_filename =~ m@$root/(.*)/.+?,v@;
|
||||
|
||||
$url_rcs_path = &url_quote($rcs_path);
|
||||
|
||||
# Parse the rcs file ($::opt_rev is passed as a global)
|
||||
#
|
||||
|
@ -213,7 +214,7 @@ foreach my $path (split('/',$rcs_path)) {
|
|||
print "<A HREF='$lxr_path'>$path</a>/ ";
|
||||
}
|
||||
$lxr_path = Fix_LxrLink("$link_path$file_tail");
|
||||
print "<A HREF='$lxr_path'>$file_tail</a> ";
|
||||
print "<A HREF='$lxr_path'>" . &html_quote($file_tail) . "</a> ";
|
||||
|
||||
my $graph_cell = Param('cvsgraph') ? <<"--endquote--" : "";
|
||||
</TR><TR>
|
||||
|
@ -246,7 +247,7 @@ print qq(
|
|||
</TD>
|
||||
</TR><TR>
|
||||
<TD>
|
||||
<A HREF="cvsview2.cgi?command=DIRECTORY&subdir=$rcs_path&files=$url_file_tail&branch=$::opt_rev">diff</A>
|
||||
<A HREF="cvsview2.cgi?command=DIRECTORY&subdir=$url_rcs_path&files=$url_file_tail&branch=$::opt_rev">diff</A>
|
||||
</TD><TD NOWRAP>
|
||||
Compare any two version.
|
||||
</TD>
|
||||
|
@ -455,11 +456,11 @@ sub revision_link {
|
|||
my $link = Param('urlbase') . "cvsview2.cgi";
|
||||
if (defined($::prev_revision{$revision})) {
|
||||
$link .= "?diff_mode=context&whitespace_mode=show&file=$url_file_tail"
|
||||
. "&branch=$::opt_rev&root=$root&subdir=$rcs_path"
|
||||
. "&branch=$::opt_rev&root=$root&subdir=$url_rcs_path"
|
||||
. "&command=DIFF_FRAMESET&rev1=$::prev_revision{$revision}"
|
||||
. "&rev2=$revision";
|
||||
} else {
|
||||
$link .= "?files=$url_file_tail&root=$root&subdir=$rcs_path"
|
||||
$link .= "?files=$url_file_tail&root=$root&subdir=$url_rcs_path"
|
||||
. "\&command=DIRECTORY\&rev2=$revision&branch=$::opt_rev";
|
||||
$link .= "&branch=$browse_revtag" unless $browse_revtag eq 'HEAD';
|
||||
}
|
||||
|
@ -513,7 +514,7 @@ sub sprint_author {
|
|||
|
||||
|
||||
sub print_top {
|
||||
my ($title_text) = "for $file_tail (";
|
||||
my ($title_text) = "for " . &html_quote($file_tail) . " (";
|
||||
$title_text .= "$browse_revtag:" unless $browse_revtag eq 'HEAD';
|
||||
$title_text .= $revision if $revision;
|
||||
$title_text .= ")";
|
||||
|
@ -606,14 +607,17 @@ sub print_useful_links {
|
|||
my ($path) = @_;
|
||||
my ($dir, $file) = $path =~ m@(.*/)?(.+)@;
|
||||
$dir =~ s@/$@@;
|
||||
my $url_dir = &url_quote($dir);
|
||||
my $url_file = &url_quote($file);
|
||||
|
||||
my $diff_base = "cvsview2.cgi";
|
||||
my $blame_base = "cvsblame.cgi";
|
||||
|
||||
my $lxr_path = $path;
|
||||
my $lxr_link = Fix_LxrLink($lxr_path);
|
||||
my $diff_link = "$diff_base?command=DIRECTORY\&subdir=$dir\&files=$file\&branch=$::opt_rev";
|
||||
my $blame_link = "$blame_base?root=$::CVS_ROOT\&file=$path\&rev=$::opt_rev";
|
||||
my $url_path = &url_quote($path);
|
||||
my $diff_link = "$diff_base?command=DIRECTORY\&subdir=$url_dir\&files=$url_file\&branch=$::opt_rev";
|
||||
my $blame_link = "$blame_base?root=$::CVS_ROOT\&file=$url_path\&rev=$::opt_rev";
|
||||
|
||||
print "<DIV ALIGN=RIGHT>
|
||||
<TABLE BORDER CELLPADDING=10 CELLSPACING=0>
|
||||
|
|
|
@ -397,15 +397,20 @@ sub print_ci {
|
|||
|
||||
my $log = &html_log($ci->[$::CI_LOG]);
|
||||
my $rev = $ci->[$::CI_REV];
|
||||
my $url_who = url_quote($ci->[$::CI_WHO]);
|
||||
my $url_who = &url_quote($ci->[$::CI_WHO]);
|
||||
my $url_dir = &url_quote($ci->[$::CI_DIR]);
|
||||
my $url_file = &url_quote($ci->[$::CI_FILE]);
|
||||
|
||||
print "<tr>\n";
|
||||
print "<TD width=2%>${sm_font_tag}$t</font>";
|
||||
print "<TD width=2%><a href='$registryurl/who.cgi?email=$url_who'"
|
||||
. " onClick=\"return js_who_menu('$url_who','',event);\" >"
|
||||
. "$ci->[$::CI_WHO]</a>\n";
|
||||
print "<TD width=45%><a href='cvsview2.cgi?subdir=$ci->[$::CI_DIR]&files=" . url_quote($ci->[$::CI_FILE]) . "\&command=DIRECTORY&branch=$::query_branch&root=$::CVS_ROOT'\n"
|
||||
. " onclick=\"return js_file_menu('$::CVS_ROOT', '$ci->[$::CI_DIR]','" . url_quote($ci->[$::CI_FILE]) . "','$ci->[$::CI_REV]','$::query_branch',event)\">\n";
|
||||
print "<TD width=45%><a href='cvsview2.cgi?subdir=$url_dir" .
|
||||
"&files=$url_file\&command=DIRECTORY&branch=$::query_branch" .
|
||||
"&root=$::CVS_ROOT'\n" .
|
||||
" onclick=\"return js_file_menu('$::CVS_ROOT', '$url_dir'," .
|
||||
"'$url_file','$ci->[$::CI_REV]','$::query_branch',event)\">\n";
|
||||
# if( (length $ci->[$::CI_FILE]) + (length $ci->[$::CI_DIR]) > 30 ){
|
||||
# $d = $ci->[$::CI_DIR];
|
||||
# if( (length $ci->[$::CI_DIR]) > 30 ){
|
||||
|
@ -429,9 +434,9 @@ sub print_ci {
|
|||
if( $rev ne '' ){
|
||||
my $prevrev = &PrevRev( $rev );
|
||||
print "<TD width=2%>${sm_font_tag}<a href='cvsview2.cgi?diff_mode=".
|
||||
"context\&whitespace_mode=show\&subdir=".
|
||||
$ci->[$::CI_DIR] . "\&command=DIFF_FRAMESET\&file=" .
|
||||
url_quote($ci->[$::CI_FILE]) . "\&rev1=$prevrev&rev2=$rev&root=$::CVS_ROOT'>$rev</a></font>\n";
|
||||
"context\&whitespace_mode=show\&subdir=$url_dir" .
|
||||
"\&command=DIFF_FRAMESET\&file=$url_file" .
|
||||
"\&rev1=$prevrev&rev2=$rev&root=$::CVS_ROOT'>$rev</a></font>\n";
|
||||
}
|
||||
else {
|
||||
print "<TD width=2%>\ \n";
|
||||
|
@ -502,6 +507,7 @@ sub html_log {
|
|||
my ( $log ) = @_;
|
||||
$log =~ s/&/&/g;
|
||||
$log =~ s/</</g;
|
||||
$log =~ s/>/>/g;
|
||||
return $log;
|
||||
}
|
||||
|
||||
|
|
|
@ -58,8 +58,11 @@ sub sillyness {
|
|||
my $request = new CGI;
|
||||
|
||||
sub http_die {
|
||||
my ($str) = (@_);
|
||||
print $request->header();
|
||||
die (@_);
|
||||
print "\n";
|
||||
print "Content-type: text/html\n\n";
|
||||
die "$str\n";
|
||||
}
|
||||
|
||||
my $anchor_num = 0;
|
||||
|
@ -134,7 +137,8 @@ my $opt_rev = &SanitizeRevision($request->param('rev'));
|
|||
my $opt_subdir = $request->param('subdir');
|
||||
my $opt_branch = &SanitizeRevision($request->param('branch'));
|
||||
my $opt_command = $request->param('command');
|
||||
my $url_file = url_quote($opt_file);
|
||||
my $url_file = "";
|
||||
my $url_dir = "";
|
||||
|
||||
if (defined($opt_branch) && $opt_branch eq 'HEAD' ) { $opt_branch = ''; }
|
||||
|
||||
|
@ -149,8 +153,9 @@ my $deletion_bg_color = 'LightGreen';
|
|||
my $diff_bg_color = 'White';
|
||||
|
||||
# Ensure that necessary arguments are present
|
||||
http_die("command not defined in URL\n") if $opt_command eq '';
|
||||
http_die("command $opt_command: subdir not defined\n") if $opt_subdir eq '';
|
||||
&http_die("command not defined in URL\n") if (!$opt_command);
|
||||
&http_die("command $opt_command: subdir not defined\n") if (!$opt_subdir);
|
||||
|
||||
if ($opt_command eq 'DIFF' ||
|
||||
$opt_command eq 'DIFF_FRAMESET' ||
|
||||
$opt_command eq 'DIFF_LINKS') {
|
||||
|
@ -159,23 +164,16 @@ if ($opt_command eq 'DIFF' ||
|
|||
http_die("command $opt_command: rev2 not defined in URL\n") if $opt_rev2 eq '';
|
||||
|
||||
}
|
||||
|
||||
# Propagate diff options to created links
|
||||
$prefix .= "diff_mode=$opt_diff_mode";
|
||||
$prefix .= "&whitespace_mode=$opt_whitespace_mode";
|
||||
$prefix .= "&root=$opt_root";
|
||||
|
||||
# Create a shorthand for the longest common initial substring of our URL.
|
||||
my $magic_url = "$prefix&subdir=$opt_subdir";
|
||||
|
||||
# Now that we've munged QUERY_STRING into perl variables, set rcsdiff options.
|
||||
my $rcsdiff = "$rcsdiffcommand -f";
|
||||
$rcsdiff .= ' -w' if ($opt_whitespace_mode eq 'ignore');
|
||||
$opt_subdir = &url_decode($opt_subdir);
|
||||
$opt_file = &url_decode($opt_file) if ($opt_file);
|
||||
$url_file = &url_quote($opt_file) if ($opt_file);
|
||||
$url_dir = &url_quote($opt_subdir);
|
||||
|
||||
# Handle the "root" argument
|
||||
#
|
||||
my $root = $opt_root;
|
||||
if (defined $root && $root ne '') {
|
||||
$root = &url_decode($root);
|
||||
$root =~ s|/$||;
|
||||
&validateRepository($root);
|
||||
if (-d $root) {
|
||||
|
@ -185,8 +183,21 @@ if (defined $root && $root ne '') {
|
|||
print "</BODY></HTML>\n";
|
||||
exit;
|
||||
}
|
||||
$opt_root = $root;
|
||||
}
|
||||
|
||||
# Propagate diff options to created links
|
||||
$prefix .= "diff_mode=" . &url_quote($opt_diff_mode);
|
||||
$prefix .= "&whitespace_mode=" . &url_quote($opt_whitespace_mode);
|
||||
$prefix .= "&root=$opt_root";
|
||||
|
||||
# Create a shorthand for the longest common initial substring of our URL.
|
||||
my $magic_url = "$prefix&subdir=$url_dir";
|
||||
|
||||
# Now that we've munged QUERY_STRING into perl variables, set rcsdiff options.
|
||||
my $rcsdiff = "$rcsdiffcommand -f";
|
||||
$rcsdiff .= ' -w' if ($opt_whitespace_mode eq 'ignore');
|
||||
|
||||
my $found = 0;
|
||||
my $dir;
|
||||
foreach $root (@SRCROOTS) {
|
||||
|
@ -196,10 +207,11 @@ foreach $root (@SRCROOTS) {
|
|||
last;
|
||||
}
|
||||
}
|
||||
if (!$found) {
|
||||
print "<FONT SIZE=5><B>Error:</B> $opt_subdir not found.";
|
||||
exit;
|
||||
}
|
||||
|
||||
&http_die("Directory " . &html_quote($opt_subdir) . " not found.\n") if (!$found);
|
||||
&validateFiles;
|
||||
&do_cmd;
|
||||
exit;
|
||||
|
||||
sub http_lastmod {
|
||||
&parse_cvs_file($dir.'/'.$opt_file.',v');
|
||||
|
@ -216,16 +228,14 @@ sub http_lastmod {
|
|||
sub do_diff_frameset {
|
||||
chdir($dir);
|
||||
http_lastmod;
|
||||
print "<TITLE>$opt_file: $opt_rev1 vs. $opt_rev2</TITLE>\n";
|
||||
print "<TITLE>$url_file: $opt_rev1 vs. $opt_rev2</TITLE>\n";
|
||||
print "<FRAMESET ROWS='*,90' FRAMESPACING=0 BORDER=1>\n";
|
||||
|
||||
print " <FRAME NAME=diff+$url_file+$opt_rev1+$opt_rev2 ",
|
||||
" SRC=\"$magic_url&command=DIFF";
|
||||
print "&root=$opt_root" if defined($opt_root);
|
||||
" SRC=\"$magic_url&command=DIFF&root=$opt_root";
|
||||
print "&file=$url_file&rev1=$opt_rev1&rev2=$opt_rev2\">\n";
|
||||
|
||||
print " <FRAME SRC=\"$magic_url&command=DIFF_LINKS";
|
||||
print "&root=$opt_root" if defined($opt_root);
|
||||
print " <FRAME SRC=\"$magic_url&command=DIFF_LINKS&root=$opt_root";
|
||||
print "&file=$url_file&rev1=$opt_rev1&rev2=$opt_rev2\">\n";
|
||||
print "</FRAMESET>\n";
|
||||
}
|
||||
|
@ -270,12 +280,12 @@ sub do_diff_links {
|
|||
# In this case, make the default behavior be that blame revisions match the requested
|
||||
# diff version, rather than always showing the tip.
|
||||
|
||||
my $blame_link = "$blame_base?file=$opt_subdir/$url_file&rev=$opt_rev2";
|
||||
$blame_link .= "&root=$opt_root" if defined($opt_root);
|
||||
my $blame_link = "$blame_base?file=$url_dir/$url_file&rev=$opt_rev2";
|
||||
$blame_link .= "&root=$opt_root";
|
||||
my $diff_link = "$magic_url&command=DIRECTORY&file=$url_file&rev1=$opt_rev1&rev2=$opt_rev2";
|
||||
$diff_link .= "&root=$opt_root" if defined($opt_root);
|
||||
$diff_link .= "&root=$opt_root";
|
||||
my $graph_row = Param('cvsgraph') ? <<"--endquote--" : "";
|
||||
<TR><TD NOWRAP ALIGN=RIGHT VALIGN=TOP><A HREF="cvsgraph.cgi?file=$opt_subdir/$url_file" TARGET="_top"><B>graph:</B></A></TD>
|
||||
<TR><TD NOWRAP ALIGN=RIGHT VALIGN=TOP><A HREF="cvsgraph.cgi?file=$url_dir/$url_file" TARGET="_top"><B>graph:</B></A></TD>
|
||||
<TD NOWRAP>View the revision tree as a graph</TD></TR>
|
||||
--endquote--
|
||||
|
||||
|
@ -321,7 +331,7 @@ sub do_diff_links {
|
|||
print ' ' x (4 - length($line));
|
||||
print "<A TARGET='diff+$url_file+$opt_rev1+$opt_rev2'",
|
||||
" HREF=\"$magic_url&command=DIFF";
|
||||
print "&root=$opt_root" if defined($opt_root);
|
||||
print "&root=$opt_root";
|
||||
print "&file=$url_file&rev1=$opt_rev1&rev2=$opt_rev2#$anchor_num\"",
|
||||
" ONCLICK='anchor = $anchor_num'>$line</A> ";
|
||||
$anchor_num++;
|
||||
|
@ -352,7 +362,7 @@ sub guess_tab_width {
|
|||
my ($found_tab_width) = 0;
|
||||
my ($many_tabs, $any_tabs) = (0, 0);
|
||||
|
||||
open(RCSFILE, "$opt_file");
|
||||
open(RCSFILE, $opt_file);
|
||||
while (<RCSFILE>) {
|
||||
if (/tab-width: (\d)/) {
|
||||
$tab_width = $1;
|
||||
|
@ -364,7 +374,8 @@ sub guess_tab_width {
|
|||
$any_tabs++;
|
||||
}
|
||||
}
|
||||
if (!$found_tab_width && $many_tabs > $any_tabs / 2) {
|
||||
if ((!$found_tab_width && $many_tabs > $any_tabs / 2) ||
|
||||
!defined($tab_width) || $tab_width eq '') {
|
||||
$tab_width = 4;
|
||||
}
|
||||
close(RCSFILE);
|
||||
|
@ -375,7 +386,7 @@ sub do_diff {
|
|||
http_lastmod;
|
||||
print qq|
|
||||
<html><head>
|
||||
<title>$opt_file: $opt_rev1 vs. $opt_rev2</title>
|
||||
<title>$url_file: $opt_rev1 vs. $opt_rev2</title>
|
||||
<style type="text/css">
|
||||
pre {
|
||||
margin: 0;
|
||||
|
@ -402,7 +413,7 @@ link="#0000EE" vlink="#551A8B" alink="#FF0000">
|
|||
# Show specified CVS log entry.
|
||||
sub do_log {
|
||||
http_lastmod;
|
||||
print "<TITLE>$opt_file: $opt_rev CVS log entry</TITLE>\n";
|
||||
print "<TITLE>$url_file: $opt_rev CVS log entry</TITLE>\n";
|
||||
print '<PRE>';
|
||||
|
||||
CheckHidden("$dir/$opt_file");
|
||||
|
@ -440,7 +451,7 @@ sub do_directory {
|
|||
foreach my $path (split('/',$opt_subdir)) {
|
||||
$link_path .= $path;
|
||||
$output .= "<A HREF='rview.cgi?dir=$link_path";
|
||||
$output .= "&cvsroot=$opt_root" if defined $opt_root;
|
||||
$output .= "&cvsroot=$opt_root";
|
||||
$output .= "&rev=$opt_branch" if $opt_branch;
|
||||
$output .= "' onmouseover='window.status=\"Browse $link_path\";"
|
||||
." return true;'>$path</A>/ ";
|
||||
|
@ -473,9 +484,9 @@ sub do_directory {
|
|||
|
||||
print "<TR><TD NOWRAP><B>";
|
||||
print "<A HREF=\"$lxr_link\">$file</A><BR>";
|
||||
print "<A HREF=\"cvslog.cgi?file=$opt_subdir/$ufile";
|
||||
print "<A HREF=\"cvslog.cgi?file=$url_dir/$ufile";
|
||||
print "&rev=$opt_branch" if $opt_branch;
|
||||
print "&root=$opt_root" if defined($opt_root);
|
||||
print "&root=$opt_root";
|
||||
print "\">Change Log</A></B></TD>\n";
|
||||
|
||||
my $first_rev;
|
||||
|
@ -497,7 +508,7 @@ sub do_directory {
|
|||
#print '<TD ROWSPAN=2 VALIGN=TOP>';
|
||||
print '<TD VALIGN=TOP>';
|
||||
print "<A HREF=\"$magic_url&command=DIRECTORY";
|
||||
print "&root=$opt_root" if defined($opt_root);
|
||||
print "&root=$opt_root";
|
||||
print "&files=" . url_quote($opt_files) . "&branch=$opt_branch&skip=", $opt_skip + $MAX_REVS, "\"><i>Prior revisions</i></A>", "</TD>\n";
|
||||
last;
|
||||
}
|
||||
|
@ -506,7 +517,7 @@ sub do_directory {
|
|||
my $href_close = "";
|
||||
if ( $prev && $rev ) {
|
||||
$href_open = "<A HREF=\"$magic_url&command=DIFF_FRAMESET";
|
||||
$href_open .= "&root=$opt_root" if defined($opt_root);
|
||||
$href_open .= "&root=$opt_root";
|
||||
$href_open .= "&file=$ufile&rev1=$prev&rev2=$rev\">";
|
||||
$href_close = "</A>";
|
||||
}
|
||||
|
@ -524,7 +535,7 @@ sub do_directory {
|
|||
next if $skip-- > 0;
|
||||
last if !$revs_remaining--;
|
||||
print "<TD><A HREF=\"$magic_url&command=LOG";
|
||||
print "root=$opt_root" if defined($opt_root);
|
||||
print "root=$opt_root";
|
||||
print "&file=$ufile&rev=$rev\">$::revision_author{$rev}</A>",
|
||||
"</TD>\n";
|
||||
}
|
||||
|
@ -534,7 +545,7 @@ sub do_directory {
|
|||
print "</TABLE><SPACER TYPE=VERTICAL SIZE=20>\n";
|
||||
print '<FORM METHOD=get>';
|
||||
print '<INPUT TYPE=hidden NAME=command VALUE=DIFF>';
|
||||
print "<INPUT TYPE=hidden NAME=subdir VALUE=$opt_subdir>";
|
||||
print "<INPUT TYPE=hidden NAME=subdir VALUE=$url_dir>";
|
||||
print '<FONT SIZE=+1><B>New Query:</B></FONT>';
|
||||
print '<UL><TABLE BORDER=1 CELLSPACING=0 CELLPADDING=7><TR><TD>';
|
||||
|
||||
|
@ -552,7 +563,7 @@ sub do_directory {
|
|||
print "\n<TABLE CELLPADDING=0 CELLSPACING=0><TR><TD>\n",
|
||||
'Filename:',
|
||||
'</TD><TD>',
|
||||
'<INPUT TYPE=text NAME=file VALUE="', $file, '" SIZE=40>',
|
||||
'<INPUT TYPE=text NAME=file VALUE="',&url_quote($file), '" SIZE=40>',
|
||||
"\n</TD></TR><TR><TD>\n",
|
||||
|
||||
'Old version:',
|
||||
|
@ -651,7 +662,7 @@ sub html_diff {
|
|||
} else {
|
||||
print "</TABLE><FONT SIZE=5 COLOR=#ffffff><B>Internal error:</B>",
|
||||
" unknown command $_",
|
||||
" at $. in $opt_file $opt_rev1\n";
|
||||
" at $. in " . &html_quote($opt_file) . " $opt_rev1\n";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
@ -779,6 +790,19 @@ sub print_bottom {
|
|||
__BOTTOM__
|
||||
} # print_bottom
|
||||
|
||||
sub validateFiles {
|
||||
my ($file, $fn);
|
||||
|
||||
if ($opt_file) {
|
||||
$file = "$dir/$opt_file";
|
||||
&ChrootFilename($opt_root, $file);
|
||||
} elsif ($opt_files) {
|
||||
foreach $fn (split(/:/,$opt_files)) {
|
||||
$file = "$dir/" . &url_decode($fn);
|
||||
&ChrootFilename($opt_root,$file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub do_cmd {
|
||||
if ($opt_command eq 'DIFF_FRAMESET') { do_diff_frameset; }
|
||||
|
@ -786,8 +810,8 @@ sub do_cmd {
|
|||
elsif ($opt_command eq 'DIFF') { do_diff; }
|
||||
elsif ($opt_command eq 'LOG') { do_log; }
|
||||
elsif ($opt_command eq 'DIRECTORY') { do_directory; }
|
||||
else { print "invalid command \"$opt_command\"."; }
|
||||
else { &http_die("Invalid command.\n"); }
|
||||
exit;
|
||||
}
|
||||
|
||||
do_cmd;
|
||||
|
||||
|
|
|
@ -48,7 +48,8 @@ if ($cmd eq 'close') {
|
|||
change_passwd();
|
||||
} else {
|
||||
error_screen('Invalid Command',
|
||||
"<b>Invalid Command '<tt>$cmd</tt>'</b>");
|
||||
"<b>Invalid Command '<tt>" . &html_quote($cmd) .
|
||||
"</tt>'</b>");
|
||||
}
|
||||
|
||||
PutsTrailer();
|
||||
|
|
|
@ -86,7 +86,7 @@ if( $inmod eq 'all' || $inmod eq 'default' || $inmod eq '' ){
|
|||
$::TreeID = $Module if (exists($::TreeInfo{$Module}{'repository'}));
|
||||
LoadDirList();
|
||||
for my $k (sort( grep(!/\*$/, @::LegalDirs) ) ){
|
||||
print "<OPTION value='$k'>$k\n" if ($k ne $Module);
|
||||
print "<OPTION value='" . &url_quote($k) . "'>$k\n" if ($k ne $Module);
|
||||
}
|
||||
|
||||
print "</SELECT></NOBR>\n";
|
||||
|
@ -100,22 +100,24 @@ print "
|
|||
</FORM>";
|
||||
|
||||
|
||||
if( $::FORM{module} ne '' ){
|
||||
my $mod = $::FORM{module};
|
||||
if( $inmod ne '' ){
|
||||
my $mod = $inmod;
|
||||
print "<h1>Examining Module '$mod'</h1>\n\n";
|
||||
|
||||
for my $i (sort( grep(!/\*$/, @::LegalDirs) ) ){
|
||||
my $j = &url_quote($i);
|
||||
my $k = &html_quote($i);
|
||||
if( -d "$CVS_ROOT/$i"){
|
||||
print "<dt><tt>Dir: </tt>";
|
||||
print "<a href=rview.cgi?dir=$i&cvsroot=$CVS_ROOT>$i</a>";
|
||||
print "<a href=rview.cgi?dir=$j&cvsroot=$CVS_ROOT>$k</a>";
|
||||
}
|
||||
elsif ( -r "$CVS_ROOT/$i,v" ){
|
||||
print "<dt><font color=blue><tt>File: </tt></font>";
|
||||
print "<a href=cvsblame.cgi?file=$i&root=$CVS_ROOT>$i</a>";
|
||||
print "<a href=cvsblame.cgi?file=$j&root=$CVS_ROOT>$k</a>";
|
||||
}
|
||||
else {
|
||||
print "<dt><font color=red><tt>Error: </tt></font>";
|
||||
print "$i : Not a file or a directory.";
|
||||
print "$k : Not a file or a directory.";
|
||||
}
|
||||
|
||||
# if( $mod_map->{$i} == $IS_LOCAL ){
|
||||
|
|
|
@ -263,7 +263,7 @@ foreach $checkin (@list) {
|
|||
my ($file, $version) = split(/\|/, $fullinfo);
|
||||
$versioninfo .= "$$info{person}|$$info{dir}|$file|$version,";
|
||||
}
|
||||
my $comment = $$info{'log'};
|
||||
my $comment = &html_quote($$info{'log'});
|
||||
$comment =~ s/\n/<br>/g;
|
||||
print "<TD WIDTH=100%>$comment</td>\n";
|
||||
print "</tr>\n\n";
|
||||
|
|
Загрузка…
Ссылка в новой задаче