![]() |
||
|
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 -- etcWhen 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