diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-10-13 14:37:14 -0400 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-10-13 14:37:14 -0400 |
commit | a20bc7a3fc6a2f2369022873ef7c2afbd5e49105 (patch) | |
tree | b885c1392e469a16f40a228345558e4ff3a97623 /t | |
parent | 5e4e43e2c73d6077f8091fe063add1ebce9335e3 (diff) |
influence blocker implementation
This avoids unnecessary influences being recorded from pagespecs
such as "link(done) and bugs/*", when a page cannot ever possibly
match.
A pagespec term that returns a value without influence is an influence
blocker. If such a blocker has a false value (possibly due to being
negated) and is ANDed with another term, it blocks that term's influence
from propigating out.
If the term is ORed, or has a true value, it does not block influence.
(Consider "link(done) or bugs/*" and "link(done) and !nosuchpage")
In the implementation in merge_influence, I had to be careful to never
negate $this or $other when testing if they are an influence blocker,
since negation mutates the object. Thus the slightly weird if statement.
Diffstat (limited to 't')
0 files changed, 0 insertions, 0 deletions