From 3d682bf8b1264fbeaf55d3da6659e6eda11d1b65 Mon Sep 17 00:00:00 2001 From: Florian Zeitz Date: Sat, 9 Jun 2012 01:18:21 +0200 Subject: prosody: Define a getfenv() replacement for Lua 5.2 --- prosody | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'prosody') diff --git a/prosody b/prosody index 52488639..6f5a14eb 100755 --- a/prosody +++ b/prosody @@ -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; -- cgit v1.2.3