diff options
author | Matthew Wild <mwild1@gmail.com> | 2010-05-04 23:36:50 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2010-05-04 23:36:50 +0100 |
commit | bb00df3f5e95d57c7dff489c5a3da1b292251f85 (patch) | |
tree | f77f1673a20e30d53488924ed31f2e8d286a78f1 /core/modulemanager.lua | |
parent | f050b618466ad7d6008fc96d3860c0ad868af7e8 (diff) | |
parent | 3376282d8aacc5814519e16c8b04809f24b9f248 (diff) | |
download | prosody-bb00df3f5e95d57c7dff489c5a3da1b292251f85.tar.gz prosody-bb00df3f5e95d57c7dff489c5a3da1b292251f85.zip |
Merge 0.7->trunk (with MUC needing checking, waqas)
Diffstat (limited to 'core/modulemanager.lua')
-rw-r--r-- | core/modulemanager.lua | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/core/modulemanager.lua b/core/modulemanager.lua index 5e9eaedd..8e62aecb 100644 --- a/core/modulemanager.lua +++ b/core/modulemanager.lua @@ -19,7 +19,7 @@ local pluginloader = require "util.pluginloader"; local hosts = hosts; local prosody = prosody; -local loadfile, pcall = loadfile, pcall; +local loadfile, pcall, xpcall = loadfile, pcall, xpcall; local setmetatable, setfenv, getfenv = setmetatable, setfenv, getfenv; local pairs, ipairs = pairs, ipairs; local t_insert, t_concat = table.insert, table.concat; @@ -29,6 +29,14 @@ local rawget = rawget; local error = error; local tostring, tonumber = tostring, tonumber; +local debug_traceback = debug.traceback; +local unpack, select = unpack, select; +pcall = function(f, ...) + local n = select("#", ...); + local params = {...}; + return xpcall(function() f(unpack(params, 1, n)) end, function(e) return tostring(e).."\n"..debug_traceback(); end); +end + local array, set = require "util.array", require "util.set"; local autoload_modules = {"presence", "message", "iq"}; |