summaryrefslogtreecommitdiff
path: root/doc/bugs/Problems_with_graphviz.pm_plug-in.mdwn
blob: 9eca41fafa5c2e8580495693604e642a1bc22855 (plain)

The graphviz.pm plug-in currently attempts to read PNG data in UTF-8 mode, which sometimes fail with a message similar to the following (depending on the input):

utf8 "\x89" does not map to Unicode at /usr/local/lib/perl5/site_perl/5.8.8/IkiWiki/Plugin/graphviz.pm line 53, <IN> chunk 1.
Wide character in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.8/IkiWiki/Plugin/graphviz.pm line 68.

Ok, will remove the binmode IN then. [[done]] --[[Joey]]

It also generates image URLs relative to the page being rendered, which means the URLs wont work when previewing a graph from the CGI script.

You seem to be using an old version of ikiwiki, these preview isues have been fixed for some time, and the code doesn't look like what you patch in your second hunk. --[[Joey]]

The patch below fixes these two issues.

--- graphviz.pm.orig	Thu Jun  7 15:45:16 2007
+++ graphviz.pm	Fri Jun  8 12:03:38 2007
@@ -41,7 +41,6 @@ sub render_graph (\%) { #{{{
 		$pid=open2(*IN, *OUT, "$params{prog} -Tpng");
 
 		# open2 doesn't respect "use open ':utf8'"
-		binmode (IN, ':utf8');
 		binmode (OUT, ':utf8');
 
 		print OUT $src;
@@ -70,7 +69,12 @@ sub render_graph (\%) { #{{{
 		}
 	}
 
-	return "<img src=\"".urlto($dest, $params{page})."\" />\n";
+	if ($params{preview}) {
+		return "<img src=\"".urlto($dest, "")."\" />\n";
+	}
+	else {
+		return "<img src=\"".urlto($dest, $params{page})."\" />\n";
+	}
 } #}}}
 
 sub graph (@) { #{{{