Software /
code /
prosody
Changeset
5022:776a57ca0d84
prosody: Define a getfenv() replacement for Lua 5.2
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Sat, 09 Jun 2012 01:18:21 +0200 |
parents | 5021:85b2689dbcfe |
children | 5023:dcc8e789df36 |
files | prosody |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/prosody Fri Jun 08 05:04:38 2012 +0200 +++ b/prosody Sat Jun 09 01:18:21 2012 +0200 @@ -145,9 +145,13 @@ -- 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;