# Some shared sub routines
#
# Author: Patrick Canterino <patrick@patshaping.de>
-# Last modified: 2004-12-16
+# Last modified: 2005-01-04
#
use strict;
@EXPORT = qw(check_path
clean_path
devedit_reload
+ dos_wildcard_match
equal_url
file_name
mode_string
$root = abs_path($root);
$root = File::Spec->canonpath($root);
- $path =~ s!^/{1}!!;
- $path = $root."/".$path;
+ $path =~ tr!\\!/!;
+ $path =~ s!^/+!!;
+ $path = $root."/".$path;
# We extract the last part of the path and create the absolute path
# Create short path name
my $short_path = substr($path,length($root));
- $short_path =~ tr!\\!\/!;
+ $short_path =~ tr!\\!/!;
$short_path = "/".$short_path if($short_path !~ m!^/!);
$short_path = $short_path."/" if($short_path !~ m!/$! && -d $path);
return \$header;
}
+# dos_wildcard_match()
+#
+# Check if a string matches against a DOS-style wildcard
+#
+# Params: 1. Pattern
+# 2. String
+#
+# Return: Status code (Boolean)
+
+sub dos_wildcard_match($$)
+{
+ my ($pattern,$string) = @_;
+
+ # The following part is stolen from File::DosGlob
+
+ # escape regex metachars but not glob chars
+ $pattern =~ s:([].+^\-\${}[|]):\\$1:g;
+ # and convert DOS-style wildcards to regex
+ $pattern =~ s/\*/.*/g;
+ $pattern =~ s/\?/.?/g;
+
+ return ($string =~ m|^$pattern$|is);
+}
+
# equal_url()
#
# Create URL equal to a file or directory
my ($root,$path) = @_;
my $url;
- $root =~ s!/$!!;
- $path =~ s!^/!!;
+ $root =~ s!/+$!!;
+ $path =~ s!^/+!!;
$url = $root."/".$path;
return $url;