factor out glob2re
parent
84e6c4fa66
commit
c150590e27
15
IkiWiki.pm
15
IkiWiki.pm
|
@ -1291,6 +1291,13 @@ sub pagespec_valid ($) { #{{{
|
||||||
return ! $@;
|
return ! $@;
|
||||||
} #}}}
|
} #}}}
|
||||||
|
|
||||||
|
sub glob2re ($) { #{{{
|
||||||
|
my $re=quotemeta(shift);
|
||||||
|
$re=~s/\\\*/.*/g;
|
||||||
|
$re=~s/\\\?/./g;
|
||||||
|
return $re;
|
||||||
|
} #}}}
|
||||||
|
|
||||||
package IkiWiki::FailReason;
|
package IkiWiki::FailReason;
|
||||||
|
|
||||||
use overload ( #{{{
|
use overload ( #{{{
|
||||||
|
@ -1337,12 +1344,8 @@ sub match_glob ($$;@) { #{{{
|
||||||
$glob="$from/$glob" if length $from;
|
$glob="$from/$glob" if length $from;
|
||||||
}
|
}
|
||||||
|
|
||||||
# turn glob into safe regexp
|
my $regexp=glob2re($glob);
|
||||||
$glob=quotemeta($glob);
|
if ($page=~/^$regexp$/i) {
|
||||||
$glob=~s/\\\*/.*/g;
|
|
||||||
$glob=~s/\\\?/./g;
|
|
||||||
|
|
||||||
if ($page=~/^$glob$/i) {
|
|
||||||
if (! IkiWiki::isinternal($page) || $params{internal}) {
|
if (! IkiWiki::isinternal($page) || $params{internal}) {
|
||||||
return IkiWiki::SuccessReason->new("$glob matches $page");
|
return IkiWiki::SuccessReason->new("$glob matches $page");
|
||||||
}
|
}
|
||||||
|
|
|
@ -318,11 +318,7 @@ sub match_mimetype ($$;@) { #{{{
|
||||||
$mimetype="unknown";
|
$mimetype="unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
# turn glob into a safe regexp
|
my $regexp=IkiWiki::glob2re($wanted);
|
||||||
my $regexp=quotemeta($wanted);
|
|
||||||
$regexp=~s/\\\*/.*/g;
|
|
||||||
$regexp=~s/\\\?/./g;
|
|
||||||
|
|
||||||
if ($mimetype!~/^$regexp$/i) {
|
if ($mimetype!~/^$regexp$/i) {
|
||||||
return IkiWiki::FailReason->new("file MIME type is $mimetype, not $wanted");
|
return IkiWiki::FailReason->new("file MIME type is $mimetype, not $wanted");
|
||||||
}
|
}
|
||||||
|
|
|
@ -253,9 +253,7 @@ sub match { #{{{
|
||||||
my $page=shift;
|
my $page=shift;
|
||||||
|
|
||||||
# turn glob into a safe regexp
|
# turn glob into a safe regexp
|
||||||
my $re=quotemeta(shift);
|
my $re=IkiWiki::glob2re(shift);
|
||||||
$re=~s/\\\*/.*/g;
|
|
||||||
$re=~s/\\\?/./g;
|
|
||||||
|
|
||||||
my $val;
|
my $val;
|
||||||
if (exists $pagestate{$page}{meta}{$field}) {
|
if (exists $pagestate{$page}{meta}{$field}) {
|
||||||
|
|
Loading…
Reference in New Issue