]> sipb.mit.edu Git - ikiwiki.git/blob - doc/bugs/Problems_with_graphviz.pm_plug-in.mdwn
* Fix graphviz plugin to not try to read images as utf-8; they might
[ikiwiki.git] / doc / bugs / Problems_with_graphviz.pm_plug-in.mdwn
1 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):
2
3     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.
4     Wide character in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.8/IkiWiki/Plugin/graphviz.pm line 68.
5
6 > Ok, will remove the binmode IN then. [[done]] --[[Joey]]
7
8 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.
9
10 > You seem to be using an old version of ikiwiki, these preview isues have
11 > been fixed for some time, and the code doesn't look like what you patch
12 > in your second hunk. --[[Joey]]
13
14 The patch below fixes these two issues.
15
16     --- graphviz.pm.orig        Thu Jun  7 15:45:16 2007
17     +++ graphviz.pm     Fri Jun  8 12:03:38 2007
18     @@ -41,7 +41,6 @@ sub render_graph (\%) { #{{{
19                 $pid=open2(*IN, *OUT, "$params{prog} -Tpng");
20      
21                 # open2 doesn't respect "use open ':utf8'"
22     -           binmode (IN, ':utf8');
23                 binmode (OUT, ':utf8');
24      
25                 print OUT $src;
26     @@ -70,7 +69,12 @@ sub render_graph (\%) { #{{{
27                 }
28         }
29      
30     -   return "<img src=\"".urlto($dest, $params{page})."\" />\n";
31     +   if ($params{preview}) {
32     +           return "<img src=\"".urlto($dest, "")."\" />\n";
33     +   }
34     +   else {
35     +           return "<img src=\"".urlto($dest, $params{page})."\" />\n";
36     +   }
37      } #}}}
38      
39      sub graph (@) { #{{{