diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-09-30 16:35:44 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-09-30 16:35:44 -0400 |
commit | 2bfbad7af4e3e09287b4c06c958d0929c0c7bc63 (patch) | |
tree | 442771f0099506df5037227c8ef690c5a411499c /doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn | |
parent | d9dc2c6be52ab4d50585e3b1211a061b77b51e5c (diff) | |
parent | b5bc0e812d7bc5b69826039131b74071d23337c1 (diff) |
Merge branch 'master' into tova
Diffstat (limited to 'doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn')
-rw-r--r-- | doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn b/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn new file mode 100644 index 000000000..012fcec2c --- /dev/null +++ b/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn @@ -0,0 +1,23 @@ +A [[PageSpec]] that is entirely negated terminals, such as "!foo and !bar" +matches all other pages, including all internal pages. This can lead to +unexpected results, since it will match a bunch of recentchanges pages, +etc. + +Recall that internal-use pages are not matched by a glob. So "*" doesn't +match them. So if the pagespec is "* and !foo and !bar", it won't match +them. This is the much more common style. + +There's an odd inconsistency with entirely negated pagespecs. If "!foo" +matches page bar, shouldn't "" also match bar? But, the empty pagespec is +actually special-cased to not match anything. + +Indeed, it seems what would be best would be for "!foo" to not match any +pages, unless it's combined with a terminal that positively matches pages +("* and !foo"). Although this would be a behavior change, with transition +issues. + +Another approach would be to try to detect the case of an entirely negated +pagespec, and implicitly add "and !internal()" to it. + +Either approach would require fully parsing the pagespec. And consider cases +like "!(foo and !bar)". Doesn't seem at all easy to solve. --[[Joey]] |