]> git.donarmstrong.com Git - ikiwiki_plugins.git/commitdiff
track figures with fignum
authorDon Armstrong <don@donarmstrong.com>
Thu, 22 Mar 2012 19:58:55 +0000 (12:58 -0700)
committerDon Armstrong <don@donarmstrong.com>
Thu, 22 Mar 2012 19:58:55 +0000 (12:58 -0700)
sweavealike.pm

index d58ad6822c774b62ba597062699399f007abd592..1808090cbc226404ebe083003c40e5064fe55e1f 100644 (file)
@@ -126,7 +126,6 @@ sub preprocess {
 
     my $image_loc
     if (exists $param{fig}) {
-       $pagestate{$param{page}}{$id}{fignum}++;
        $param{width} = '400' unless exists $param{width} and defined $param{width};
        $param{height} = '400' unless exists $param{height} and defined $param{height};
        for (qw(width height)) {
@@ -134,7 +133,9 @@ sub preprocess {
                error("invalid $_; must be an integer: $param{$_}");
            }
        }
-       # because even if the code is duplicated, the figure could still be the same.
+       # because even if the code is duplicated, the figure could
+       # still be different, we track the number of figures
+       $pagestate{$param{page}}{$id}{fignum}++;
        my $md5 = code_md5($param{code},$param{width},$param{height},$pagestate{$param{page}}{$id}{fignum});
        $image_loc = "$param{page}/${md5}.png";
        my $image_loc_esc = $image_loc;
@@ -203,12 +204,16 @@ sub savestate {
     # make sure we never try to save an R process
     for my $page (keys %pagestate) {
        next unless exists $pagestate{$page}{$id};
-       next unless exists $pagestate{$page}{$id}{R};
-       if (defined $pagestate{$page}{$id}{R}
-           and $pagestate{$page}{$id}{R}->is_started()) {
-           $pagestate{$page}{$id}{R}->stop;
+       next unless ;
+       if (exists $pagestate{$page}{$id}{R}) {
+           if (defined $pagestate{$page}{$id}{R}
+               and $pagestate{$page}{$id}{R}->is_started()) {
+               $pagestate{$page}{$id}{R}->stop;
+           }
+       }
+       if (exists $pagestate{$page}{$id}{fignum}) {
+           delete $pagestate{$page}{$id}{fignum}
        }
-       delete $pagestate{$page}{$id}{R};
     }
 }