summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/external.pm
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2008-11-02 13:11:00 +0100
committerintrigeri <intrigeri@boum.org>2008-11-02 13:11:00 +0100
commit77136538788350ad2decaa445704ba5738074736 (patch)
treeacb6ea4f00bb43e78a829b1d84a42384c7f37f50 /IkiWiki/Plugin/external.pm
parentfadb26bc1507f7fc2caaa873ad32c12f75c378aa (diff)
parentc2684b94b27c12b5e39bfbb026163b62842a9908 (diff)
Merge commit 'origin/master' into prv/po
Diffstat (limited to 'IkiWiki/Plugin/external.pm')
-rw-r--r--IkiWiki/Plugin/external.pm10
1 files changed, 9 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/external.pm b/IkiWiki/Plugin/external.pm
index ba6c7d8b9..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;
} #}}}