diff options
author | Matthew Wild <mwild1@gmail.com> | 2010-11-11 12:23:51 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2010-11-11 12:23:51 +0000 |
commit | 454c7872014a1457462559b0152b5102fbcebdd1 (patch) | |
tree | 9018581e218c88df3cf56a8eaef2147908573281 /core | |
parent | 20a0a7eb7c34b1247a341995ebefe03f90ae2af7 (diff) | |
download | prosody-454c7872014a1457462559b0152b5102fbcebdd1.tar.gz prosody-454c7872014a1457462559b0152b5102fbcebdd1.zip |
configmanager: Change parser API again to pass a config table to insert settings to. Fixes Include(). (Thanks Zash/answerman)
Diffstat (limited to 'core')
-rw-r--r-- | core/configmanager.lua | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/core/configmanager.lua b/core/configmanager.lua index edd1366a..03679531 100644 --- a/core/configmanager.lua +++ b/core/configmanager.lua @@ -91,10 +91,10 @@ function load(filename, format) if parsers[format] and parsers[format].load then local f, err = io.open(filename); if f then - local new_config, err = parsers[format].load(f:read("*a"), filename); + local new_config = setmetatable({ ["*"] = { core = {} } }, config_mt); + local ok, err = parsers[format].load(f:read("*a"), filename, new_config); f:close(); - if new_config then - setmetatable(new_config, config_mt); + if ok then config = new_config; fire_event("config-reloaded", { filename = filename, @@ -137,9 +137,7 @@ do local loadstring, pcall, setmetatable = _G.loadstring, _G.pcall, _G.setmetatable; local setfenv, rawget, tostring = _G.setfenv, _G.rawget, _G.tostring; parsers.lua = {}; - function parsers.lua.load(data, filename) - local config = { ["*"] = { core = {} } }; - + function parsers.lua.load(data, filename, config) local env; -- The ' = true' are needed so as not to set off __newindex when we assign the functions below env = setmetatable({ @@ -206,8 +204,8 @@ do if f then local data = f:read("*a"); local file = resolve_relative_path(filename:gsub("[^"..path_sep.."]+$", ""), file); - local ok, err = parsers.lua.load(data, file); - if not ok then error(err:gsub("%[string.-%]", file), 0); end + local ret, err = parsers.lua.load(data, file, config); + if not ret then error(err:gsub("%[string.-%]", file), 0); end end if not f then error("Error loading included "..file..": "..err, 0); end return f, err; @@ -232,7 +230,7 @@ do return nil, err; end - return config; + return true; end end |