aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/Problems_with_graphviz.pm_plug-in.mdwn
blob: c9f6981589fae57958abdb774034175adb83b385 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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]]

>> Thanks --[[HenrikBrixAndersen]]

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.

>> Here is an updated patch againt ikiwiki-2.5:

>>> [[Applied|done]], thanks. --[[Joey]]

    --- IkiWiki/Plugin/graphviz.pm.orig	2007-07-27 11:35:05.000000000 +0200
    +++ IkiWiki/Plugin/graphviz.pm	2007-07-27 11:36:02.000000000 +0200
    @@ -69,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 (@) {


>> --[[HenrikBrixAndersen]]


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 (@) {