summaryrefslogtreecommitdiff
path: root/IkiWiki.pm
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2009-01-13 12:26:43 +0100
committerintrigeri <intrigeri@boum.org>2009-01-13 12:26:43 +0100
commit82197bd0eaa216b841caace38c976acc7f6ad3fa (patch)
tree450f4afafb26d17a54c4917fb20d067c24efcaf7 /IkiWiki.pm
parentc8e3136d0091bd024e6dc1f3c21a10a92f2017d4 (diff)
parent7b1026b1a803e160c360ee8f4d19004b466f8b7c (diff)
Merge commit 'upstream/master' into prv/po
Diffstat (limited to 'IkiWiki.pm')
-rw-r--r--IkiWiki.pm38
1 files changed, 22 insertions, 16 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index e509a7c2f..4601d8590 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1658,7 +1658,7 @@ sub gettext {
sub yesno ($) {
my $val=shift;
- return (defined $val && lc($val) eq gettext("yes"));
+ return (defined $val && (lc($val) eq gettext("yes") || lc($val) eq "yes" || $val eq "1"));
}
sub inject {
@@ -1807,19 +1807,25 @@ sub new {
package IkiWiki::PageSpec;
+sub derel ($$) {
+ my $path=shift;
+ my $from=shift;
+
+ if ($path =~ m!^\./!) {
+ $from=~s#/?[^/]+$## if defined $from;
+ $path=~s#^\./##;
+ $path="$from/$path" if length $from;
+ }
+
+ return $path;
+}
+
sub match_glob ($$;@) {
my $page=shift;
my $glob=shift;
my %params=@_;
- my $from=exists $params{location} ? $params{location} : '';
-
- # relative matching
- if ($glob =~ m!^\./!) {
- $from=~s#/?[^/]+$##;
- $glob=~s#^\./##;
- $glob="$from/$glob" if length $from;
- }
+ $glob=derel($glob, $params{location});
my $regexp=IkiWiki::glob2re($glob);
if ($page=~/^$regexp$/i) {
@@ -1844,15 +1850,9 @@ sub match_link ($$;@) {
my $link=lc(shift);
my %params=@_;
+ $link=derel($link, $params{location});
my $from=exists $params{location} ? $params{location} : '';
- # relative matching
- if ($link =~ m!^\.! && defined $from) {
- $from=~s#/?[^/]+$##;
- $link=~s#^\./##;
- $link="$from/$link" if length $from;
- }
-
my $links = $IkiWiki::links{$page};
return IkiWiki::FailReason->new("$page has no links") unless $links && @{$links};
my $bestlink = IkiWiki::bestlink($from, $link);
@@ -1880,6 +1880,9 @@ sub match_backlink ($$;@) {
sub match_created_before ($$;@) {
my $page=shift;
my $testpage=shift;
+ my %params=@_;
+
+ $testpage=derel($testpage, $params{location});
if (exists $IkiWiki::pagectime{$testpage}) {
if ($IkiWiki::pagectime{$page} < $IkiWiki::pagectime{$testpage}) {
@@ -1897,6 +1900,9 @@ sub match_created_before ($$;@) {
sub match_created_after ($$;@) {
my $page=shift;
my $testpage=shift;
+ my %params=@_;
+
+ $testpage=derel($testpage, $params{location});
if (exists $IkiWiki::pagectime{$testpage}) {
if ($IkiWiki::pagectime{$page} > $IkiWiki::pagectime{$testpage}) {