Merge commit 'remotes/smcv/ready/remove-pagespec-merge'
commit
b3d65aee18
|
@ -1824,14 +1824,6 @@ sub add_link ($$) {
|
||||||
unless grep { $_ eq $link } @{$links{$page}};
|
unless grep { $_ eq $link } @{$links{$page}};
|
||||||
}
|
}
|
||||||
|
|
||||||
sub pagespec_merge ($$) {
|
|
||||||
my $a=shift;
|
|
||||||
my $b=shift;
|
|
||||||
|
|
||||||
return $a if $a eq $b;
|
|
||||||
return "($a) or ($b)";
|
|
||||||
}
|
|
||||||
|
|
||||||
sub pagespec_translate ($) {
|
sub pagespec_translate ($) {
|
||||||
my $spec=shift;
|
my $spec=shift;
|
||||||
|
|
||||||
|
|
|
@ -410,8 +410,8 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
|
||||||
>>>>> then the last definition (baz) takes precedence.
|
>>>>> then the last definition (baz) takes precedence.
|
||||||
>>>>> In the process of writing this I think I've come up with a way to change this back the way it was, still using closures. -- [[Will]]
|
>>>>> In the process of writing this I think I've come up with a way to change this back the way it was, still using closures. -- [[Will]]
|
||||||
|
|
||||||
>>> Alternatively, my [[remove-pagespec-merge|should_optimise_pagespecs]]
|
>>> My [[remove-pagespec-merge|should_optimise_pagespecs]] branch has now
|
||||||
>>> branch solves this, in a Gordian knot sort of way :-) --[[smcv]]
|
>>> solved all this by deleting the offending function :-) --[[smcv]]
|
||||||
|
|
||||||
>> Secondly, it seems that there are two types of dependency, and ikiwiki
|
>> Secondly, it seems that there are two types of dependency, and ikiwiki
|
||||||
>> currently only handles one of them. The first type is "Rebuild this
|
>> currently only handles one of them. The first type is "Rebuild this
|
||||||
|
|
|
@ -335,4 +335,14 @@ sub get_banned_users () {
|
||||||
return @ret;
|
return @ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Used to be in IkiWiki, but only used here (to migrate admin prefs into the
|
||||||
|
# setup file) now.
|
||||||
|
sub pagespec_merge ($$) {
|
||||||
|
my $a=shift;
|
||||||
|
my $b=shift;
|
||||||
|
|
||||||
|
return $a if $a eq $b;
|
||||||
|
return "($a) or ($b)";
|
||||||
|
}
|
||||||
|
|
||||||
1
|
1
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
#!/usr/bin/perl
|
|
||||||
use warnings;
|
|
||||||
use strict;
|
|
||||||
use Test::More tests => 25;
|
|
||||||
|
|
||||||
BEGIN { use_ok("IkiWiki"); }
|
|
||||||
|
|
||||||
sub same {
|
|
||||||
my $a=shift;
|
|
||||||
my $b=shift;
|
|
||||||
my $match=shift;
|
|
||||||
|
|
||||||
my $imatch=(pagespec_match($match, $a) ||
|
|
||||||
pagespec_match($match, $b));
|
|
||||||
my $cmatch=pagespec_match($match, IkiWiki::pagespec_merge($a, $b));
|
|
||||||
|
|
||||||
return $imatch == $cmatch;
|
|
||||||
}
|
|
||||||
|
|
||||||
ok(same("foo", "bar", "foo"), "basic match 1");
|
|
||||||
ok(same("foo", "bar", "bar"), "basic match 2");
|
|
||||||
ok(same("foo", "bar", "foobar"), "basic failed match");
|
|
||||||
ok(same("foo", "!bar", "foo"), "basic match with inversion");
|
|
||||||
ok(same("foo", "!bar", "bar"), "basic failed match with inversion");
|
|
||||||
ok(same("!foo", "bar", "foo"), "basic failed match with inversion 2");
|
|
||||||
ok(same("!foo", "bar", "bar"), "basic match with inversion 2");
|
|
||||||
ok(same("!foo", "!bar", "foo"), "double inversion failed match");
|
|
||||||
ok(same("!foo", "!bar", "bar"), "double inversion failed match 2");
|
|
||||||
ok(same("*", "!bar", "foo"), "glob+inversion match");
|
|
||||||
ok(same("*", "!bar", "bar"), "matching glob and matching inversion");
|
|
||||||
ok(same("* and !foo", "!bar", "bar"), "matching glob and matching inversion");
|
|
||||||
ok(same("* and !foo", "!bar", "foo"), "matching glob with matching inversion and non-matching inversion");
|
|
||||||
ok(same("* and !foo", "!foo", "foo"), "matching glob with matching inversion and matching inversion");
|
|
||||||
ok(same("b??", "!b??", "bar"), "matching glob and matching inverted glob");
|
|
||||||
ok(same("f?? !f??", "!bar", "bar"), "matching glob and matching inverted glob");
|
|
||||||
ok(same("b??", "!b?z", "bar"), "matching glob and non-matching inverted glob");
|
|
||||||
ok(same("f?? !f?z", "!bar", "bar"), "matching glob and non-matching inverted glob");
|
|
||||||
ok(same("!foo bar baz", "!bar", "bar"), "matching list and matching inversion");
|
|
||||||
ok(pagespec_match("foo/Discussion",
|
|
||||||
IkiWiki::pagespec_merge("* and !*/Discussion", "*/Discussion")), "should match");
|
|
||||||
ok(same("* and !*/Discussion", "*/Discussion", "foo/Discussion"), "Discussion merge 1");
|
|
||||||
ok(same("*/Discussion", "* and !*/Discussion", "foo/Discussion"), "Discussion merge 2");
|
|
||||||
ok(same("*/Discussion !*/bar", "*/bar !*/Discussion", "foo/Discussion"), "bidirectional merge 1");
|
|
||||||
ok(same("*/Discussion !*/bar", "*/bar !*/Discussion", "foo/bar"), "bidirectional merge 2");
|
|
Loading…
Reference in New Issue