summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki.pm6
-rw-r--r--IkiWiki/Plugin/comments.pm18
-rw-r--r--IkiWiki/Render.pm1
-rw-r--r--debian/changelog2
4 files changed, 16 insertions, 11 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 699ad13da..0f28801a6 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -12,9 +12,9 @@ use open qw{:utf8 :std};
use vars qw{%config %links %oldlinks %pagemtime %pagectime %pagecase
%pagestate %wikistate %renderedfiles %oldrenderedfiles
- %pagesources %destsources %depends %depends_simple @mass_depends
- %hooks %forcerebuild %loaded_plugins %typedlinks %oldtypedlinks
- %autofiles};
+ %pagesources %delpagesources %destsources %depends %depends_simple
+ @mass_depends %hooks %forcerebuild %loaded_plugins %typedlinks
+ %oldtypedlinks %autofiles};
use Exporter q{import};
our @EXPORT = qw(hook debug error htmlpage template template_depends
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index eb861d74f..de193bd12 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -908,10 +908,12 @@ sub match_comment ($$;@) {
my $page = shift;
my $glob = shift;
- if (! IkiWiki::isinternal($page)) {
- return IkiWiki::FailReason->new("$page is not a comment");
- }
- my $type=IkiWiki::pagetype($IkiWiki::pagesources{$page});
+ # To see if it's a comment, check the source file type.
+ # Deal with comments that were just deleted.
+ my $source=exists $IkiWiki::pagesources{$page} ?
+ $IkiWiki::pagesources{$page} :
+ $IkiWiki::delpagesources{$page};
+ my $type=IkiWiki::pagetype($source);
if (defined $type && $type ne "_comment") {
return IkiWiki::FailReason->new("$page is not a comment");
}
@@ -923,10 +925,10 @@ sub match_comment_pending ($$;@) {
my $page = shift;
my $glob = shift;
- if (! IkiWiki::isinternal($page)) {
- return IkiWiki::FailReason->new("$page is not a pending comment");
- }
- my $type=IkiWiki::pagetype($IkiWiki::pagesources{$page});
+ my $source=exists $IkiWiki::pagesources{$page} ?
+ $IkiWiki::pagesources{$page} :
+ $IkiWiki::delpagesources{$page};
+ my $type=IkiWiki::pagetype($source);
if (defined $type && $type ne "_comment_pending") {
return IkiWiki::FailReason->new("$page is not a pending comment");
}
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index 833fcaaff..f9fbc801f 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -442,6 +442,7 @@ sub remove_del (@) {
}
delete $pagecase{lc $page};
+ $delpagesources{$page}=$pagesources{$page};
delete $pagesources{$page};
}
}
diff --git a/debian/changelog b/debian/changelog
index b8939f455..8b5389e88 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ ikiwiki (3.20100516) UNRELEASED; urgency=low
* page.tmpl: Accidentially broke po plugin's otherlanguages list styling
when modifying for html5; now fixed.
+ * Fix a bug that prevented matching deleted comments, and so did not update
+ pages that had contained them.
-- Joey Hess <joeyh@debian.org> Sun, 16 May 2010 00:03:06 -0400