[prev in list] [next in list] [prev in thread] [next in thread]
List: lon-capa-cvs
Subject: [LON-CAPA-cvs] cvs: loncom /publisher loncfile.pm
From: albertel <lon-capa-cvs () mail ! lon-capa ! org>
Date: 2002-10-28 23:23:41
Message-ID: cvsalbertel1035847421 () cvsserver
[Download RAW message or body]
albertel Mon Oct 28 18:23:41 2002 EDT
Modified files:
/loncom/publisher loncfile.pm
Log:
- Fixes BUG#910, when copying files using ../ it simplifies the message
Index: loncom/publisher/loncfile.pm
diff -u loncom/publisher/loncfile.pm:1.18 loncom/publisher/loncfile.pm:1.19
--- loncom/publisher/loncfile.pm:1.18 Mon Sep 9 22:31:26 2002
+++ loncom/publisher/loncfile.pm Mon Oct 28 18:23:41 2002
@@ -10,7 +10,7 @@
#
#
-# $Id: loncfile.pm,v 1.18 2002/09/10 02:31:26 foxr Exp $
+# $Id: loncfile.pm,v 1.19 2002/10/28 23:23:41 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -493,10 +493,11 @@
my $newfilename = $ENV{'form.newfilename'};
$request->print(&checksuffix($filename, $newfilename));
$request->print(&exists($user, $domain, $dir, $newfilename));
+ my $dest=&SimplifyDir($dir,$newfilename);
$request->print('<input type=hidden name=newfilename value="'.
$newfilename.
- '"><p>Rename <tt>'.$filename.'</tt> to <tt>'.
- $dir.'/'.$newfilename.'</tt>?</p>');
+ '"><p>Rename <tt>'.$filename.'</tt><br /> to <tt>'.
+ $dest.'</tt>?</p>');
&CloseForm1($request, $cancelurl);
} else {
$request->print('<p>No new filename specified</p></form>');
@@ -587,18 +588,46 @@
$cancelurl =~ s/\/public_html//;
-
if(-e $filename) {
$request->print(&checksuffix($filename,$newfilename));
$request->print(&exists($user, $domain, $dir, $newfilename));
+ my $dest=&SimplifyDir($dir,$newfilename);
$request->print('<input type = hidden name = newfilename value = "'.
$dir.'/'.$newfilename.
- '"><p>Copy <tt>'.$filename.'</tt> to'.
- '<tt>'.$dir.'/'.$newfilename.'</tt>/?</p>');
+ '"><p>Copy <tt>'.$filename.'</tt><br /> to '.
+ '<tt>'.$dest.'</tt>?</p>');
&CloseForm1($request, $cancelurl);
} else {
$request->print('<p>No such file <tt>'.$filename.'</p></form>');
}
+}
+
+=pod
+
+=item SimplifyDir
+
+ Removes all extra / and all .. references
+
+Parameters:
+
+=over 4
+
+=item $dir - string [in] a directory name
+
+=item $file - string [in] a file reference relative to $dir
+
+=back
+
+Results: the concatenated path.
+
+=cut
+
+sub SimplifyDir {
+ my ($dir,$file) = @_;
+ my $location = $dir. '/'.$file;
+ $location=~s://+:/:g; # remove duplicate /
+ while ($location=~m:/\.\./:) {$location=~s:/[^/]+/\.\./:/:g;}#remove dir/..
+ return $location;
}
=pod
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic