Software /
code /
prosody
Comparison
util/pluginloader.lua @ 5021:85b2689dbcfe
Eliminate direct setfenv usage
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Fri, 08 Jun 2012 05:04:38 +0200 |
parent | 4154:3785a9bb7f11 |
child | 5072:586c9106a106 |
comparison
equal
deleted
inserted
replaced
5020:ef1eb65acbba | 5021:85b2689dbcfe |
---|---|
14 plugin_dir[#plugin_dir + 1] = path; | 14 plugin_dir[#plugin_dir + 1] = path; |
15 end | 15 end |
16 | 16 |
17 local io_open, os_time = io.open, os.time; | 17 local io_open, os_time = io.open, os.time; |
18 local loadstring, pairs = loadstring, pairs; | 18 local loadstring, pairs = loadstring, pairs; |
19 local envload = require "util.envload".envload; | |
19 | 20 |
20 module "pluginloader" | 21 module "pluginloader" |
21 | 22 |
22 local function load_file(names) | 23 local function load_file(names) |
23 local file, err, path; | 24 local file, err, path; |
46 }; | 47 }; |
47 | 48 |
48 return load_file(names); | 49 return load_file(names); |
49 end | 50 end |
50 | 51 |
51 function load_code(plugin, resource) | 52 function load_code(plugin, resource, env) |
52 local content, err = load_resource(plugin, resource); | 53 local content, err = load_resource(plugin, resource); |
53 if not content then return content, err; end | 54 if not content then return content, err; end |
54 local path = err; | 55 local path = err; |
55 local f, err = loadstring(content, "@"..path); | 56 local f, err = envload(content, "@"..path, env); |
56 if not f then return f, err; end | 57 if not f then return f, err; end |
57 return f, path; | 58 return f, path; |
58 end | 59 end |
59 | 60 |
60 return _M; | 61 return _M; |