From 1b5d82820b0810ebb0edd5d76ea79d626c2a72ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Wed, 12 Sep 2012 14:33:11 +0800 Subject: [PATCH] loadx return error string --- lualib/loadx.lua | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lualib/loadx.lua b/lualib/loadx.lua index 87aa6fda..a71c224e 100644 --- a/lualib/loadx.lua +++ b/lualib/loadx.lua @@ -19,14 +19,14 @@ cookie = "local function __setenv() end;" local load = load function _G.load(ld, chunkname, mode, env) - local f + local f,err if type(ld) == "string" then - f = load(cookie .. ld, chunkname, mode, env) + f,err = load(cookie .. ld, chunkname, mode, env) else - f = load(make_ld(ld), chunkname) + f,err = load(make_ld(ld), chunkname) end - return f + return f,err end function _G.loadfile(filename, mode, env) @@ -59,11 +59,14 @@ end cookie = "local _ENV,__setenv = __getenv();" function _G.load(ld, chunkname, mode, env) - local f + local f,err if type(ld) == "string" then - f = loadstring(cookie .. ld, chunkname) + f,err = loadstring(cookie .. ld, chunkname) else - f = load(make_ld(ld), chunkname) + f,err = load(make_ld(ld), chunkname) + end + if f == nil then + return f, err end env = env or getfenv(1) setfenv(f, { __getenv = function() @@ -71,7 +74,7 @@ function _G.load(ld, chunkname, mode, env) return env, __setenv end }) - return f + return f,err end function _G.loadfile(filename, mode, env)