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 };