aboutsummaryrefslogtreecommitdiff
path: root/lib/WebCoso
diff options
context:
space:
mode:
Diffstat (limited to 'lib/WebCoso')
-rw-r--r--lib/WebCoso/Common.pm7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/WebCoso/Common.pm b/lib/WebCoso/Common.pm
index bfd5e88..513a562 100644
--- a/lib/WebCoso/Common.pm
+++ b/lib/WebCoso/Common.pm
@@ -18,7 +18,7 @@ our $VERBOSITY=0;
sub setpaths {
for my $path ($SRCPATH,$DSTPATH,@TMPLPATH) {
- $path=file($path)->absolute()->stringify;
+ $path=file($path)->absolute()->cleanup->stringify;
}
return;
}
@@ -58,6 +58,7 @@ sub dstUriFor {
if ($path) {
$name=file($name)->absolute(file($path)->parent)->relative($SRCPATH);
$name=dir("$SRCPATH/$name/")->cleanup->stringify . '/';
+ $name=~ s{/(?:[^/]+)/\.\.}{}g;
}
$name=~s{^\Q$SRCPATH\E/}{$DSTBASEURL};
DEBUG("dstUriFor -> $name");
@@ -74,8 +75,8 @@ sub srcXMLFor {
$doc_name=~s{^\Q$DSTBASEURL\E}{$SRCPATH/};
}
else {
- $doc_name=file($doc_name)->absolute(file($path)->parent)->relative($SRCPATH); # absolutize it
- $doc_name="$SRCPATH/$doc_name";
+ $doc_name=file($doc_name)->absolute(file($path)->parent)->cleanup->stringify;
+ $doc_name=~ s{/(?:[^/]+)/\.\.}{}g;
}
return $doc_name;