]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
fix handling of influences of pagespecs that fail to match
authorJoey Hess <joey@gnu.kitenet.net>
Thu, 8 Oct 2009 17:38:46 +0000 (13:38 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Thu, 8 Oct 2009 17:38:46 +0000 (13:38 -0400)
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.


No differences found