]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/editdiff.pm
fix check for nonexistant content
[ikiwiki.git] / IkiWiki / Plugin / editdiff.pm
index 46eb1168edddd42b6086b646ae48d63cb7dd2111..f5d7837fc4c4712de2b693497ce3dd1b7a977b59 100644 (file)
@@ -9,10 +9,19 @@ use HTML::Entities;
 use IPC::Open2;
 
 sub import { #{{{
+       hook(type => "getsetup", id => "editdiff", call => \&getsetup);
        hook(type => "formbuilder_setup", id => "editdiff",
                call => \&formbuilder_setup);
 } #}}}
 
+sub getsetup () { #{{{
+       return
+               plugin => {
+                       safe => 1,
+                       rebuild => 0,
+               },
+} #}}}
+
 sub diff ($$) { #{{{
        my $orig=shift;
        my $content=shift;
@@ -25,7 +34,7 @@ sub diff ($$) { #{{{
 
        print DIFFIN $content;
        close DIFFIN;
-       my $ret;
+       my $ret='';
        while (<DIFFOUT>) {
                if (defined $ret) {
                        $ret.=$_;
@@ -46,12 +55,11 @@ sub diff ($$) { #{{{
 sub formbuilder_setup { #{{{
        my %params=@_;
        my $form=$params{form};
-       my $page=$form->field("page");
 
-       return if $form->title ne "editpage"
-                 || $form->field("do") ne "edit";
+       return if ! defined $form->field("do") || $form->field("do") ne "edit";
 
-       $page = IkiWiki::titlepage(IkiWiki::possibly_foolish_untaint($page));
+       my $page=$form->field("page");
+       $page = IkiWiki::possibly_foolish_untaint($page);
        return unless exists $pagesources{$page};
 
        push @{$params{buttons}}, "Diff";