diff --git a/IkiWiki.pm b/IkiWiki.pm index 871170992..5563a03af 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1824,14 +1824,6 @@ sub add_link ($$) { 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 ($) { my $spec=shift; diff --git a/doc/todo/tracking_bugs_with_dependencies.mdwn b/doc/todo/tracking_bugs_with_dependencies.mdwn index a198530fc..bfdbf0875 100644 --- a/doc/todo/tracking_bugs_with_dependencies.mdwn +++ b/doc/todo/tracking_bugs_with_dependencies.mdwn @@ -410,8 +410,8 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W >>>>> 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]] ->>> Alternatively, my [[remove-pagespec-merge|should_optimise_pagespecs]] ->>> branch solves this, in a Gordian knot sort of way :-) --[[smcv]] +>>> My [[remove-pagespec-merge|should_optimise_pagespecs]] branch has now +>>> solved all this by deleting the offending function :-) --[[smcv]] >> Secondly, it seems that there are two types of dependency, and ikiwiki >> currently only handles one of them. The first type is "Rebuild this diff --git a/ikiwiki-transition b/ikiwiki-transition index 795ab31cb..8a20cf655 100755 --- a/ikiwiki-transition +++ b/ikiwiki-transition @@ -335,4 +335,14 @@ sub get_banned_users () { 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 diff --git a/t/pagespec_merge.t b/t/pagespec_merge.t deleted file mode 100755 index 9e38d5761..000000000 --- a/t/pagespec_merge.t +++ /dev/null @@ -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");