diff options
author | Kim Alvefur <zash@zash.se> | 2017-03-02 23:03:02 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2017-03-02 23:03:02 +0100 |
commit | 8407f360939fe103a991641b0bf3b85e87d660b9 (patch) | |
tree | 4b71bdc7622635a101579c04b2d9e0c56991df2c /util/envload.lua | |
parent | a11a584a59cde70ce4f0880049b9e675d8b2e223 (diff) | |
parent | fdf81e53aa57c68f330deecf4f97cfefb05f5044 (diff) | |
download | prosody-8407f360939fe103a991641b0bf3b85e87d660b9.tar.gz prosody-8407f360939fe103a991641b0bf3b85e87d660b9.zip |
Merge 0.10->trunk
Diffstat (limited to 'util/envload.lua')
-rw-r--r-- | util/envload.lua | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/util/envload.lua b/util/envload.lua index 3c5190df..926f20c0 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,10 @@ 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); + fh:close(); if f and env then setfenv(f, env); end return f, err; end @@ -28,7 +32,11 @@ 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 + local f, err = load(fh:lines(2048), "@"..file, nil, env); + fh:close(); + return f, err; end end |