]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/external.pm
po plugin: slave pages link to the master's discussion page
[ikiwiki.git] / IkiWiki / Plugin / external.pm
index ff3b2d8ed97d06c53402cb04b8921b3761136673..4ce9c8babb62d45bacb3bb76a4773bd27cb09b5c 100644 (file)
@@ -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, @_);
        });
 } #}}}