aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2017-03-01 16:42:02 +0100
committerKim Alvefur <zash@zash.se>2017-03-01 16:42:02 +0100
commitd6c9f0ce591cb6d5302a81d0e02477ced25b06a5 (patch)
tree9da5479b278d4444bf80cf2720ebf0ba3688d197
parent9e586ac1dfdf187a7a5d5f80a818c92b13b16f0c (diff)
downloadprosody-d6c9f0ce591cb6d5302a81d0e02477ced25b06a5.tar.gz
prosody-d6c9f0ce591cb6d5302a81d0e02477ced25b06a5.zip
util.envload: Open file here instead of letting loadfile do it so that all return values from io.open can be collected
-rw-r--r--util/envload.lua11
1 files changed, 8 insertions, 3 deletions
diff --git a/util/envload.lua b/util/envload.lua
index 3c5190df..08adf35e 100644
--- a/util/envload.lua
+++ b/util/envload.lua
@@ -6,7 +6,8 @@
--
-- luacheck: ignore 113/setfenv
-local load, loadstring, loadfile, setfenv = load, loadstring, loadfile, setfenv;
+local load, loadstring, setfenv = load, loadstring, setfenv;
+local io_open = io.open;
local envload;
local envloadfile;
@@ -18,7 +19,9 @@ if setfenv then
end
function envloadfile(file, env)
- local f, err = loadfile(file);
+ local fh, err, errno = io_open(file);
+ if not fh then return fh, err, errno; end
+ local f, err = load(function () return fh:read(2048); end, "@"..file);
if f and env then setfenv(f, env); end
return f, err;
end
@@ -28,7 +31,9 @@ else
end
function envloadfile(file, env)
- return loadfile(file, nil, env);
+ local fh, err, errno = io_open(file);
+ if not fh then return fh, err, errno; end
+ return load(fh:lines(2048), "@"..file, nil, env);
end
end