aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/depends_simple_mixup.mdwn
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-04-21 23:08:54 -0400
committerJoey Hess <joey@kitenet.net>2010-04-21 23:08:54 -0400
commitc98414e192285b2607ee9fcb27f0e8e00db5fb26 (patch)
tree266fe05e6827cbcd3f3ac4e7c5ca1756d0969b89 /doc/bugs/depends_simple_mixup.mdwn
parent13325317a32529e02769baa5e61e6c401c675b27 (diff)
downloadikiwiki-c98414e192285b2607ee9fcb27f0e8e00db5fb26.tar
ikiwiki-c98414e192285b2607ee9fcb27f0e8e00db5fb26.tar.gz
added a test case for this bug
Further analysis suggests fixing this might not be as dreadful as I first thought!
Diffstat (limited to 'doc/bugs/depends_simple_mixup.mdwn')
-rw-r--r--doc/bugs/depends_simple_mixup.mdwn24
1 files changed, 22 insertions, 2 deletions
diff --git a/doc/bugs/depends_simple_mixup.mdwn b/doc/bugs/depends_simple_mixup.mdwn
index e7b48f802..79bfa8bdc 100644
--- a/doc/bugs/depends_simple_mixup.mdwn
+++ b/doc/bugs/depends_simple_mixup.mdwn
@@ -44,9 +44,11 @@ is modified to add the link, the regular dependency calculation code
didn't notice, since the pagespec no longer matched.
In this case, `depends_simple` needs to contain all pages
-that do *not* match `link_done)`, but before my change, it contained
+that do *not* match `link(done)`, but before my change, it contained
all pages that *do* match. After my change, it contained all pages.
+----
+
So, seems what is needed is a way for influence info to be manipulated by
the boolean operations that are applied. One way would be to have two
sets of influences be returned, one for successful matches, and one for
@@ -58,7 +60,25 @@ Then, when NOTting a `*Reason`, swap the two sets of influences.
When ANDing/ORing, combine the individual sets. Querying the object for
influences should return only the successful influences.
-In light of this, commit f2b3d1341447cbf29189ab490daae418fbe5d02d seems
+----
+
+Would it be possible to avoid the complication of maintianing two sets of
+influence info?
+
+Well, notice that the influence of `pagespec_match($page, "link(done)")`
+is $page. Iff the match succeeds.
+
+Also, the influence of `pagespec_match($page, "!link(done)")` is
+$page. Iff the (overall) match succeeds.
+
+Does that hold for all cases? If so, the code that populates
+`depends_simple` could just test if the pagespec was successful, and
+if not, avoid adding $page influences, while still adding any other,
+non-$page influences.
+
+----
+
+Hmm, commit f2b3d1341447cbf29189ab490daae418fbe5d02d seems
thuroughly wrong. So, what about influence info for other matches
like `!author(foo)` etc? Currently, none is returned, but it should
be a content influence. (Backlink influence data is ok.)