loadx return error string

This commit is contained in:
云风
2012-09-12 14:33:11 +08:00
parent 1c6267025a
commit 1b5d82820b

View File

@@ -19,14 +19,14 @@ cookie = "local function __setenv() end;"
local load = load local load = load
function _G.load(ld, chunkname, mode, env) function _G.load(ld, chunkname, mode, env)
local f local f,err
if type(ld) == "string" then if type(ld) == "string" then
f = load(cookie .. ld, chunkname, mode, env) f,err = load(cookie .. ld, chunkname, mode, env)
else else
f = load(make_ld(ld), chunkname) f,err = load(make_ld(ld), chunkname)
end end
return f return f,err
end end
function _G.loadfile(filename, mode, env) function _G.loadfile(filename, mode, env)
@@ -59,11 +59,14 @@ end
cookie = "local _ENV,__setenv = __getenv();" cookie = "local _ENV,__setenv = __getenv();"
function _G.load(ld, chunkname, mode, env) function _G.load(ld, chunkname, mode, env)
local f local f,err
if type(ld) == "string" then if type(ld) == "string" then
f = loadstring(cookie .. ld, chunkname) f,err = loadstring(cookie .. ld, chunkname)
else else
f = load(make_ld(ld), chunkname) f,err = load(make_ld(ld), chunkname)
end
if f == nil then
return f, err
end end
env = env or getfenv(1) env = env or getfenv(1)
setfenv(f, { __getenv = function() setfenv(f, { __getenv = function()
@@ -71,7 +74,7 @@ function _G.load(ld, chunkname, mode, env)
return env, __setenv return env, __setenv
end }) end })
return f return f,err
end end
function _G.loadfile(filename, mode, env) function _G.loadfile(filename, mode, env)