X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/903213e63fd6c409046f66e73881aba33c3926de..439a2d3c443a032b26ce2455c6f15352a7e606be:/IkiWiki/Plugin/external.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/external.pm b/IkiWiki/Plugin/external.pm index ff3b2d8ed..4ce9c8bab 100644 --- a/IkiWiki/Plugin/external.pm +++ b/IkiWiki/Plugin/external.pm @@ -202,8 +202,16 @@ sub inject ($@) { #{{{ my $sub = sub { IkiWiki::Plugin::external::rpc_call($plugin, $params{call}, @_) }; + $sub=memoize($sub) if $params{memoize}; + + # This will add it to the symbol table even if not present. + no warnings; eval qq{*$params{name}=\$sub}; - memoize($params{name}) if $params{memoize}; + use warnings; + + # This will ensure that everywhere it was exported to sees + # the injected version. + IkiWiki::inject(name => $params{name}, call => $sub); return 1; } #}}} @@ -217,8 +225,7 @@ sub hook ($@) { #{{{ delete $params{call}; IkiWiki::hook(%params, call => sub { - my $ret=IkiWiki::Plugin::external::rpc_call($plugin, $callback, @_); - return $ret; + IkiWiki::Plugin::external::rpc_call($plugin, $callback, @_); }); } #}}}