Software / code / prosody
Comparison
util/envload.lua @ 12576:d1aacc6a81ac
util.envload: Remove Lua 5.1 method
Part of #1600
Is this module even needed anymore?
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Tue, 05 Jul 2022 14:18:32 +0200 |
| parent | 8416:bc9cb23b604a |
comparison
equal
deleted
inserted
replaced
| 12575:1f6f05a98fcd | 12576:d1aacc6a81ac |
|---|---|
| 4 -- This project is MIT/X11 licensed. Please see the | 4 -- This project is MIT/X11 licensed. Please see the |
| 5 -- COPYING file in the source package for more information. | 5 -- COPYING file in the source package for more information. |
| 6 -- | 6 -- |
| 7 -- luacheck: ignore 113/setfenv 113/loadstring | 7 -- luacheck: ignore 113/setfenv 113/loadstring |
| 8 | 8 |
| 9 local load, loadstring, setfenv = load, loadstring, setfenv; | 9 local load = load; |
| 10 local io_open = io.open; | 10 local io_open = io.open; |
| 11 local envload; | |
| 12 local envloadfile; | |
| 13 | 11 |
| 14 if setfenv then | 12 local function envload(code, source, env) |
| 15 function envload(code, source, env) | 13 return load(code, source, nil, env); |
| 16 local f, err = loadstring(code, source); | 14 end |
| 17 if f and env then setfenv(f, env); end | |
| 18 return f, err; | |
| 19 end | |
| 20 | 15 |
| 21 function envloadfile(file, env) | 16 local function envloadfile(file, env) |
| 22 local fh, err, errno = io_open(file); | 17 local fh, err, errno = io_open(file); |
| 23 if not fh then return fh, err, errno; end | 18 if not fh then return fh, err, errno; end |
| 24 local f, err = load(function () return fh:read(2048); end, "@"..file); | 19 local f, err = load(fh:lines(2048), "@" .. file, nil, env); |
| 25 fh:close(); | 20 fh:close(); |
| 26 if f and env then setfenv(f, env); end | 21 return f, err; |
| 27 return f, err; | |
| 28 end | |
| 29 else | |
| 30 function envload(code, source, env) | |
| 31 return load(code, source, nil, env); | |
| 32 end | |
| 33 | |
| 34 function envloadfile(file, env) | |
| 35 local fh, err, errno = io_open(file); | |
| 36 if not fh then return fh, err, errno; end | |
| 37 local f, err = load(fh:lines(2048), "@"..file, nil, env); | |
| 38 fh:close(); | |
| 39 return f, err; | |
| 40 end | |
| 41 end | 22 end |
| 42 | 23 |
| 43 return { envload = envload, envloadfile = envloadfile }; | 24 return { envload = envload, envloadfile = envloadfile }; |