From 1ea8580a5f912c305f8ea89431b39033522c657e Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sat, 25 Jul 2009 20:04:04 +0100
Subject: [PATCH 1/2] Remove now-unused function pagespec_merge
Now that dependencies are a list of pagespecs with an implicit "or"
operation, there's no need to try to merge pagespecs under normal use.
ikiwiki-transition contains the only use of the function, so move
it there rather than deleting it entirely (it's used to concatenate all
admins' lists of locked pages).
---
IkiWiki.pm | 8 --------
ikiwiki-transition | 10 ++++++++++
t/pagespec_merge.t | 44 --------------------------------------------
3 files changed, 10 insertions(+), 52 deletions(-)
delete mode 100755 t/pagespec_merge.t
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 8a8695768..06a0b7a2c 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1833,14 +1833,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/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");
From 848bb66c37b94b633a378e186e561aebb7bab43a Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sat, 1 Aug 2009 12:43:37 +0100
Subject: [PATCH 2/2] Indicate that pagespec_merge() is no longer needed (much
rejoicing?)
---
doc/todo/tracking_bugs_with_dependencies.mdwn | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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