From 8e604c0f0af37c528f7d82540a891d26926c9938 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kitenet.net>
Date: Thu, 3 Feb 2011 12:49:13 -0400
Subject: htmltidy: Avoid breaking the sidebar when websetup is running.

Problem was this: websetup loads all plugins, but does not checkconfig
them. So, htmltidy's recently added configurable command setting was unset;
this resulted in its sanitize hook failing; the sanitize hook is called
when a sidebar was enabled, and this caused the sidebar to not display.

I put in a fix, but the underlying problem is that websetup loads all
plugins but leaves them in an unconfigured and possibly broken state while
trying to display its forms.

Probably the long-term fix is to have it cache the original hook states from
before loading the plugins, and restore it after getting their configuration.
Or, even to get the configuration using a subprocess, as plugins may do things
outside the hook system.
---
 IkiWiki/Plugin/htmltidy.pm | 2 ++
 debian/changelog           | 1 +
 2 files changed, 3 insertions(+)

diff --git a/IkiWiki/Plugin/htmltidy.pm b/IkiWiki/Plugin/htmltidy.pm
index 1108aeb89..da77e60f1 100644
--- a/IkiWiki/Plugin/htmltidy.pm
+++ b/IkiWiki/Plugin/htmltidy.pm
@@ -41,6 +41,8 @@ sub checkconfig () {
 sub sanitize (@) {
 	my %params=@_;
 
+	return $params{content} unless defined $config{htmltidy};
+
 	my $pid;
 	my $sigpipe=0;
 	$SIG{PIPE}=sub { $sigpipe=1 };
diff --git a/debian/changelog b/debian/changelog
index 246a89080..87a280ed0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 ikiwiki (3.20110125) UNRELEASED; urgency=low
 
   * editpage: Avoid inheriting internal page types.
+  * htmltidy: Avoid breaking the sidebar when websetup is running.
 
  -- Joey Hess <joeyh@debian.org>  Tue, 01 Feb 2011 21:00:57 -0400
 
-- 
cgit v1.2.3