]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/rst.pm
* Add all=no option to conditional, can be used to form conditionals that do
[ikiwiki.git] / IkiWiki / Plugin / rst.pm
index 1fd13d1f5ceca92262cbbfb70d86e979c9ff7d88..1f4c8bf9e9c0adf6081d9a67fd04c23a32b3975d 100644 (file)
@@ -18,7 +18,7 @@ package IkiWiki::Plugin::rst;
 
 use warnings;
 use strict;
-use IkiWiki;
+use IkiWiki 2.00;
 use IPC::Open2;
 
 # Simple python script, maybe it should be implemented using an external script.
@@ -43,21 +43,11 @@ sub htmlize (@) { #{{{
        my %params=@_;
        my $content=$params{content};
 
-       my $tries=10;
        my $pid;
-       while (1) {
-               eval {
-                       # Try to call python and run our command
-                       $pid=open2(*IN, *OUT, "python", "-c",  $pyCmnd)
-                               or return $content;
-               };
-               last unless $@;
-               $tries--;
-               if ($tries < 1) {
-                       debug("failed to run python to convert rst: $@");
-                       return $content;
-               }
-       }
+       my $sigpipe=0;
+       $SIG{PIPE}=sub { $sigpipe=1 };
+       $pid=open2(*IN, *OUT, "python", "-c",  $pyCmnd);
+       
        # open2 doesn't respect "use open ':utf8'"
        binmode (IN, ':utf8');
        binmode (OUT, ':utf8');
@@ -70,6 +60,9 @@ sub htmlize (@) { #{{{
        close IN;
        waitpid $pid, 0;
 
+       return $content if $sigpipe;
+       $SIG{PIPE}="DEFAULT";
+
        return $ret;
 } # }}}