diff options
author | Florian Zeitz <florob@babelmonkeys.de> | 2012-06-07 23:27:26 +0200 |
---|---|---|
committer | Florian Zeitz <florob@babelmonkeys.de> | 2012-06-07 23:27:26 +0200 |
commit | ad7ee8604f2811d3ca3e5adb5faa8c095f4d5999 (patch) | |
tree | 9b7ea204ab65e50608bb2d926e87f536151a0b98 | |
parent | 3cf0d1871139e98e655705b2dc91f8771f43e171 (diff) | |
download | prosody-ad7ee8604f2811d3ca3e5adb5faa8c095f4d5999.tar.gz prosody-ad7ee8604f2811d3ca3e5adb5faa8c095f4d5999.zip |
util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
-rw-r--r-- | util/envload.lua | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/util/envload.lua b/util/envload.lua new file mode 100644 index 00000000..53e28348 --- /dev/null +++ b/util/envload.lua @@ -0,0 +1,34 @@ +-- Prosody IM +-- Copyright (C) 2008-2011 Florian Zeitz +-- +-- This project is MIT/X11 licensed. Please see the +-- COPYING file in the source package for more information. +-- + +local load, loadstring, loadfile, setfenv = load, loadstring, loadfile, setfenv; +local envload; +local envloadfile; + +if setfenv then + function envload(code, source, env) + local f, err = loadstring(code, source); + if f and env then setfenv(f, env); end + return f, err; + end + + function envloadfile(file, env) + local f, err = loadfile(file); + if f and env then setfenv(f, env); end + return f, err; + end +else + function envload(code, source, env) + return load(code, source, nil, env); + end + + function envloadfile(file, env) + return loadfile(file, nil, env); + end +end + +return { envload = envload, envloadfile = envloadfile }; |