Automated merge with http://waqas.ath.cx:8000/

Tue, 23 Jun 2009 15:58:56 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Tue, 23 Jun 2009 15:58:56 +0100
changeset 1394
2ebed659b958
parent 1393
576143941a76 (diff)
parent 1391
b910ef82622d (current diff)
child 1395
1c547fb4e570

Automated merge with http://waqas.ath.cx:8000/

core/modulemanager.lua file | annotate | diff | comparison | revisions
--- a/core/modulemanager.lua	Tue Jun 23 15:40:30 2009 +0100
+++ b/core/modulemanager.lua	Tue Jun 23 15:58:56 2009 +0100
@@ -30,7 +30,7 @@
 local type = type;
 local next = next;
 local rawget = rawget;
-
+local error = error;
 local tostring = tostring;
 
 -- We need this to let modules access the real global namespace
@@ -408,6 +408,16 @@
 	return api.hook(self, "stanza/"..(xmlns and (xmlns..":") or "")..name, function (data) return handler(data.origin, data.stanza, data); end, priority);
 end
 
+function api:require(lib)
+	local f, n = pluginloader.load_code(self.name, lib..".lib.lua");
+	if not f then
+		f, n = pluginloader.load_code(lib, lib..".lib.lua");
+	end
+	if not f then error("Failed to load plugin library '"..lib.."', error: "..n); end -- FIXME better error message
+	setfenv(f, setmetatable({ module = self }, { __index = _G }));
+	return f();
+end
+
 --------------------------------------------------------------------
 
 local actions = {};

mercurial