]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/sparkline.pm
Correctly handle filenames starting with a dash in add/rm/mv.
[git.ikiwiki.info.git] / IkiWiki / Plugin / sparkline.pm
index c1f016ffd0e7055bae3f5ba72f9f04b643285c01..e28d2605a2c1802e6afe798cab14548529d55936 100644 (file)
@@ -24,6 +24,7 @@ sub getsetup () {
                plugin => {
                        safe => 1,
                        rebuild => undef,
                plugin => {
                        safe => 1,
                        rebuild => undef,
+                       section => "widget",
                },
 }
 
                },
 }
 
@@ -121,10 +122,10 @@ sub preprocess (@) {
 
        # Use the sha1 of the php code that generates the sparkline as
        # the base for its filename.
 
        # Use the sha1 of the php code that generates the sparkline as
        # the base for its filename.
-       eval q{use Digest::SHA1};
+       eval q{use Digest::SHA};
         error($@) if $@;
        my $fn=$params{page}."/sparkline-".
         error($@) if $@;
        my $fn=$params{page}."/sparkline-".
-               IkiWiki::possibly_foolish_untaint(Digest::SHA1::sha1_hex($php)).
+               IkiWiki::possibly_foolish_untaint(Digest::SHA::sha1_hex($php)).
                ".png";
        will_render($params{page}, $fn);
 
                ".png";
        will_render($params{page}, $fn);
 
@@ -149,7 +150,7 @@ sub preprocess (@) {
 
                waitpid $pid, 0;
                $SIG{PIPE}="DEFAULT";
 
                waitpid $pid, 0;
                $SIG{PIPE}="DEFAULT";
-               if ($sigpipe) {
+               if ($sigpipe || ! defined $png) {
                        error gettext("failed to run php");
                }
 
                        error gettext("failed to run php");
                }
 
@@ -157,7 +158,8 @@ sub preprocess (@) {
                        writefile($fn, $config{destdir}, $png, 1);
                }
                else {
                        writefile($fn, $config{destdir}, $png, 1);
                }
                else {
-                       # can't write the file, so embed it in a data uri
+                       # in preview mode, embed the image in a data uri
+                       # to avoid temp file clutter
                        eval q{use MIME::Base64};
                        error($@) if $@;
                        return "<img src=\"data:image/png;base64,".
                        eval q{use MIME::Base64};
                        error($@) if $@;
                        return "<img src=\"data:image/png;base64,".