diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/WebCoso/Common.pm | 7 |
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; |