aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/meta.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-10-08 13:38:46 -0400
committerJoey Hess <joey@gnu.kitenet.net>2009-10-08 13:38:46 -0400
commitf2b3d1341447cbf29189ab490daae418fbe5d02d (patch)
treedcac983b070ec1e187515c8470d0023f8db96a43 /IkiWiki/Plugin/meta.pm
parent0cb08c9a4b558c3a0a13c5652b0e0a37ae548199 (diff)
downloadikiwiki-f2b3d1341447cbf29189ab490daae418fbe5d02d.tar
ikiwiki-f2b3d1341447cbf29189ab490daae418fbe5d02d.tar.gz
fix handling of influences of pagespecs that fail to match
If a pagespec fails to match, I had been throwing the influences away, but that is not right. Consider `backlink(foo)`, where foo does not exist. It still needs to be added as an influence, because if it is created, it will influence the pagespec to match. But with that fix, `link(bar)` had as influences all pages, whether they link to bar or not. Which is not necessary, because modifiying a page to add a link to bar will directly cause the pagespec to match. So, in match_link (and all the match_* functions for page metadata), only return an influence if the match succeeds. match_backlink had been implemented as the inverse of match_link, but that is no longer completly true. While match_link does not return an influence on failure, match_backlink does. match_created_before/after also return the influence on failure, this way if created_after(foo) currently fails because foo does not exist, it will still update the page with the pagespec if foo is created.
Diffstat (limited to 'IkiWiki/Plugin/meta.pm')
-rw-r--r--IkiWiki/Plugin/meta.pm4
1 files changed, 2 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index c160e7eba..da3e62233 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -294,11 +294,11 @@ sub match {
return IkiWiki::SuccessReason->new("$re matches $field of $page", $page => $IkiWiki::DEPEND_CONTENT);
}
else {
- return IkiWiki::FailReason->new("$re does not match $field of $page", $page => $IkiWiki::DEPEND_CONTENT);
+ return IkiWiki::FailReason->new("$re does not match $field of $page");
}
}
else {
- return IkiWiki::FailReason->new("$page does not have a $field", $page => $IkiWiki::DEPEND_CONTENT);
+ return IkiWiki::FailReason->new("$page does not have a $field");
}
}