util/envload.lua
changeset 7927 8487fe9fc335
parent 7731 da54ad64f6da
child 7933 5dec27760ecd
--- a/util/envload.lua	Mon Feb 27 15:55:22 2017 +0100
+++ b/util/envload.lua	Wed Mar 01 16:42:02 2017 +0100
@@ -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 @@
 	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 @@
 	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