htmltidy robustness fixes
authorJoey Hess <joey@kodama.kitenet.net>
Sat, 27 Sep 2008 18:27:16 +0000 (14:27 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Sat, 27 Sep 2008 18:27:42 +0000 (14:27 -0400)
* htmltidy: Avoid returning undef if tidy fails. Also avoid returning the
  untidied content if tidy crashes. In either case, it seems best to tidy
  the content to nothing.
* htmltidy: Avoid spewing tidy errors to stderr.

IkiWiki/Plugin/htmltidy.pm
debian/changelog

index d9aaba4ca1f4e7c6d3ed631089584071df5a2b3f..9ba5e9592b0c84482e01175c5881f901315a4397 100644 (file)
@@ -31,11 +31,11 @@ sub sanitize (@) { #{{{
        my $pid;
        my $sigpipe=0;
        $SIG{PIPE}=sub { $sigpipe=1 };
-       $pid=open2(*IN, *OUT, 'tidy -quiet -asxhtml -utf8 --show-body-only yes --show-warnings no --tidy-mark no --markup yes');
-       
+       $pid=open2(*IN, *OUT, 'tidy -quiet -asxhtml -utf8 --show-body-only yes --show-warnings no --tidy-mark no --markup yes 2>/dev/null');
+
        # open2 doesn't respect "use open ':utf8'"
        binmode (IN, ':utf8');
-       binmode (OUT, ':utf8'); 
+       binmode (OUT, ':utf8');
        
        print OUT $params{content};
        close OUT;
@@ -46,7 +46,7 @@ sub sanitize (@) { #{{{
        waitpid $pid, 0;
 
        $SIG{PIPE}="DEFAULT";
-       return $params{content} if $sigpipe;
+       return "" if $sigpipe || ! defined $ret;
 
        return $ret;
 } # }}}
index 23dff470b4bf2f8db6021273696bd3c7f335889b..8c52c3a29aea5fe44f5986b013f41b05f4df312e 100644 (file)
@@ -13,6 +13,10 @@ ikiwiki (2.66) UNRELEASED; urgency=low
   * Expand usage message and add --help. Closes: #500344
   * Beautify urls used in various places. (smcv)
   * Export pagetitle, titlepage, linkpage.
+  * htmltidy: Avoid returning undef if tidy fails. Also avoid returning the
+    untidied content if tidy crashes. In either case, it seems best to tidy
+    the content to nothing.
+  * htmltidy: Avoid spewing tidy errors to stderr.
 
  -- Joey Hess <joeyh@debian.org>  Thu, 25 Sep 2008 13:45:55 -0400