diff --git a/libs/T.lua b/libs/T.lua index 26c32d4..0394faa 100644 --- a/libs/T.lua +++ b/libs/T.lua @@ -1,4 +1,5 @@ -if module 'T' then return end +if defined 'T' then return end +module 'T' local next, getn, setn, tremove, setmetatable = next, getn, table.setn, tremove, setmetatable diff --git a/libs/module.lua b/libs/module.lua index 126be3f..793410a 100644 --- a/libs/module.lua +++ b/libs/module.lua @@ -1,7 +1,7 @@ if module then return end local strfind, type, setmetatable, setfenv, _G = strfind, type, setmetatable, setfenv, getfenv(0) local error, nop, id, define, include, create_module, nop_default_mt, public_modifier_mt, proxy_mt -local loaded, interfaces, environments = {}, {}, {} +local loaded, defined, interfaces, environments = {}, {}, {}, {} function error(msg, ...) return _G.error(format(msg or '', unpack(arg)) .. '\n' .. debugstack(), 0) end @@ -60,5 +60,6 @@ function create_module(name) loaded[name], loaded[public_modifier] = P, P end -function module(name) local loaded = loaded[name] if not loaded then create_module(name) end setfenv(2, environments[name]); return loaded end -function require(name) if not loaded[name] then create_module(name) end return interfaces[name] end \ No newline at end of file +function module(name) if not loaded[name] then create_module(name) end defined[name] = true; setfenv(2, environments[name]) end +function require(name) if not loaded[name] then create_module(name) end return interfaces[name] end +function _G.defined(name) return defined[name] end \ No newline at end of file