X-Git-Url: https://git.p6c8.net/devedit.git/blobdiff_plain/4b6ea0ada25839464b9bd7d2eec2e97567ab1626..73f2498331782691215bb4cc02fc4431145b7027:/modules/Tool.pm diff --git a/modules/Tool.pm b/modules/Tool.pm index 18d437c..2d044e0 100644 --- a/modules/Tool.pm +++ b/modules/Tool.pm @@ -6,7 +6,7 @@ package Tool; # Some shared sub routines # # Author: Patrick Canterino -# Last modified: 2004-07-30 +# Last modified: 2004-11-13 # use strict; @@ -56,27 +56,21 @@ sub check_path($$) $path =~ s!^/{1}!!; $path = $root."/".$path; - unless(-d $path) - { - # The path points to a file - # We have to extract the directory name and create the absolute path + # We extract the last part of the path and create the absolute path - my $dir = upper_path($path); - my $file = file_name($path); + my $first = upper_path($path); + my $last = file_name($path); - $dir = abs_path($dir); - $path = $dir."/".$file; - } - else - { - $path = abs_path($path); - } + $first = abs_path($first); + $path = $first."/".$last; - $path = File::Spec->canonpath($path); + $first = File::Spec->canonpath($first); + $path = File::Spec->canonpath($path); # Check if the path is above the root directory return if(index($path,$root) == -1); + return if($first eq $root && $last =~ m!^(/|\\)?\.\.(/|\\)?$!); # Create short path name @@ -209,7 +203,7 @@ sub file_name($) # # Params: File mode number # -# Return: Humand readable mode string +# Return: Human readable mode string sub mode_string($) {