|
|
||
|
Daniel Collins wrote:
Jerome's post shows a neat way to set the environment before loading the file. That way you don't need to modify the files at all. So you can have them run in a shared environment if needed, or they can have their own environment. I would probably put Jerome's solution in a function (untested):
That is also a neat way to do lua config files.
<lua>
local config = {
-- fill in defaults
}
local cfgfile="foo.cfg"
local f, err = loadfile(cfgfile)
if f then
setfenv(f,config)
f()
else
print("config file ("..cfgfile..") load failed :"..tostring(err))
print("... using default config")
end
</lua>
The config file then just has Lua statements :
name="fred"
number=1024
namelen=#name
-- etc
When the config file is executed, all of its 'globals' are stored in the
environment, eg the config table. As lhf pointed out, you need to set a
meta-index to _G for the config file to be able to call any lua functions.
Adrian