Software /
code /
prosody
Comparison
util/envload.lua @ 5020:ef1eb65acbba
util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Thu, 07 Jun 2012 23:27:26 +0200 |
child | 7728:da54ad64f6da |
comparison
equal
deleted
inserted
replaced
4923:760a1f367f02 | 5020:ef1eb65acbba |
---|---|
1 -- Prosody IM | |
2 -- Copyright (C) 2008-2011 Florian Zeitz | |
3 -- | |
4 -- This project is MIT/X11 licensed. Please see the | |
5 -- COPYING file in the source package for more information. | |
6 -- | |
7 | |
8 local load, loadstring, loadfile, setfenv = load, loadstring, loadfile, setfenv; | |
9 local envload; | |
10 local envloadfile; | |
11 | |
12 if setfenv then | |
13 function envload(code, source, env) | |
14 local f, err = loadstring(code, source); | |
15 if f and env then setfenv(f, env); end | |
16 return f, err; | |
17 end | |
18 | |
19 function envloadfile(file, env) | |
20 local f, err = loadfile(file); | |
21 if f and env then setfenv(f, env); end | |
22 return f, err; | |
23 end | |
24 else | |
25 function envload(code, source, env) | |
26 return load(code, source, nil, env); | |
27 end | |
28 | |
29 function envloadfile(file, env) | |
30 return loadfile(file, nil, env); | |
31 end | |
32 end | |
33 | |
34 return { envload = envload, envloadfile = envloadfile }; |