use HTML::Entities;
use IPC::Open2;
-sub import { #{{{
+sub import {
+ hook(type => "getsetup", id => "editdiff", call => \&getsetup);
hook(type => "formbuilder_setup", id => "editdiff",
call => \&formbuilder_setup);
-} #}}}
+}
-sub diff ($$) { #{{{
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => 0,
+ },
+}
+
+sub diff ($$) {
my $orig=shift;
my $content=shift;
return "couldn't run diff\n" if $sigpipe;
return "<pre>".encode_entities($ret)."</pre>";
-} #}}}
+}
-sub formbuilder_setup { #{{{
+sub formbuilder_setup {
my %params=@_;
my $form=$params{form};
- my $page=$form->field("page");
- return if $form->field("do") ne "edit";
+ return if ! defined $form->field("do") || $form->field("do") ne "edit";
+ my $page=$form->field("page");
$page = IkiWiki::possibly_foolish_untaint($page);
return unless exists $pagesources{$page};
my $diff = diff(srcfile($pagesources{$page}), $content);
$form->tmpl_param("page_preview", $diff);
}
-} #}}}
+}
1