X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/6fc3b624f209f71335bed9947eda956e7d118458..d214af5cfb19956920784b266f5050a28d4c0fa4:/IkiWiki/Render.pm diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 8e998e8b2..e97f46775 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -84,7 +84,7 @@ sub parentlinks ($) { #{{{ return @ret; } #}}} -my @preprocessing; +my %preprocessing; sub preprocess ($$$) { #{{{ my $page=shift; # the page the data comes from my $destpage=shift; # the page the data will appear in (different for inline) @@ -97,7 +97,7 @@ sub preprocess ($$$) { #{{{ if (length $escape) { return "[[$command $params]]"; } - elsif (grep { $_ eq $page } @preprocessing) { + elsif ($preprocessing{$page}) { # Avoid loops of preprocessed pages preprocessing # other pages that preprocess them, etc. return "[[$command would cause preprocessing loop]]"; @@ -129,13 +129,13 @@ sub preprocess ($$$) { #{{{ push @params, $val, ''; } } - push @preprocessing, $page; + $preprocessing{$page}=1; my $ret=$hooks{preprocess}{$command}{call}->( @params, page => $page, destpage => $destpage, ); - pop @preprocessing; + delete $preprocessing{$page}; return $ret; } else {