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.
master
Joey Hess 2011-02-03 12:49:13 -04:00
parent 9ed779b746
commit 8e604c0f0a
2 changed files with 3 additions and 0 deletions

View File

@ -41,6 +41,8 @@ sub checkconfig () {
sub sanitize (@) { sub sanitize (@) {
my %params=@_; my %params=@_;
return $params{content} unless defined $config{htmltidy};
my $pid; my $pid;
my $sigpipe=0; my $sigpipe=0;
$SIG{PIPE}=sub { $sigpipe=1 }; $SIG{PIPE}=sub { $sigpipe=1 };

1
debian/changelog vendored
View File

@ -1,6 +1,7 @@
ikiwiki (3.20110125) UNRELEASED; urgency=low ikiwiki (3.20110125) UNRELEASED; urgency=low
* editpage: Avoid inheriting internal page types. * 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 -- Joey Hess <joeyh@debian.org> Tue, 01 Feb 2011 21:00:57 -0400