X-Git-Url: https://git.p6c8.net/devedit.git/blobdiff_plain/ce10babcb8d07587e9bf95496e22e9b4e801f207..e5974d592e46bd102cecca71449431d01afdc1fa:/modules/Tool.pm?ds=sidebyside diff --git a/modules/Tool.pm b/modules/Tool.pm index 3ef4a10..b143dcb 100644 --- a/modules/Tool.pm +++ b/modules/Tool.pm @@ -6,7 +6,15 @@ package Tool; # Some shared sub routines # # Author: Patrick Canterino -# Last modified: 2005-07-23 +# Last modified: 2008-04-25 +# +# Copyright (C) 1999-2000 Roland Bluethgen, Frank Schoenmann +# Copyright (C) 2003-2009 Patrick Canterino +# All Rights Reserved. +# +# This file can be distributed and/or modified under the terms of +# of the Artistic License 1.0 (see also the LICENSE file found at +# the top level of the Dev-Editor distribution). # use strict; @@ -68,8 +76,9 @@ sub check_path($$) $first = abs_path($first); my $last = file_name($path); + $last = '' if($last eq '.'); - if(-d $first.'/'.$last && (not -l $first.'/'.$last) && -r $first.'/'.$last && -x $first.'/'.$last) + if($last eq '..' || ($^O eq 'MSWin32' && $last =~ m!^\.\.\.+$!)) { $first = abs_path($first.'/'.$last); $last = ''; @@ -80,6 +89,7 @@ sub check_path($$) # Check if the path is above the root directory return if(index($path,$root) != 0); + return if(substr($path,length($root)) && not File::Spec->file_name_is_absolute(substr($path,length($root)))); # Create short path name @@ -181,6 +191,8 @@ sub dos_wildcard_match($$) { my ($pattern,$string) = @_; + return 1 if($pattern eq '*'); + # The following part is stolen from File::DosGlob # escape regex metachars but not glob chars