diff options
author | Florian Zeitz <florob@babelmonkeys.de> | 2012-06-09 01:18:21 +0200 |
---|---|---|
committer | Florian Zeitz <florob@babelmonkeys.de> | 2012-06-09 01:18:21 +0200 |
commit | 5937bc4c8554fbd2121b2052cf52d6a24bf40aa0 (patch) | |
tree | 2eb8e890b1f2fe29e7985827ba5a5de51136ac16 /prosody | |
parent | 40ea2230d1d494c55d8a2b22e111c4bd29074974 (diff) | |
download | prosody-5937bc4c8554fbd2121b2052cf52d6a24bf40aa0.tar.gz prosody-5937bc4c8554fbd2121b2052cf52d6a24bf40aa0.zip |
prosody: Define a getfenv() replacement for Lua 5.2
Diffstat (limited to 'prosody')
-rwxr-xr-x | prosody | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -145,9 +145,13 @@ function sandbox_require() -- for neat sandboxing of modules local _realG = _G; local _real_require = require; + if not getfenv then + -- FIXME: This is a hack to replace getfenv() in Lua 5.2 + function getfenv(f) return debug.getupvalue(debug.getinfo(f or 1).func, 1); end + end function require(...) local curr_env = getfenv(2); - local curr_env_mt = getmetatable(getfenv(2)); + local curr_env_mt = getmetatable(curr_env); local _realG_mt = getmetatable(_realG); if curr_env_mt and curr_env_mt.__index and not curr_env_mt.__newindex and _realG_mt then local old_newindex, old_index; |