1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
-- dump global environment
function savevar (n,v)
if v == nil then return end
if type(v)=="userdata" or type(v)=="function" then return end
-- if type(v)=="userdata" or type(v)=="function" then write("\t-- ") end
-- don't print lua constants
if strsub(n, 1, 1) == "_" then return end
write("settings.", n," = ")
if type(v) == "string" then write(format("%q",v))
elseif type(v) == "table" then
if v.__visited__ ~= nil then
write(v.__visited__)
else
write("{ }\n")
v.__visited__ = n
for r,f in v do
if r ~= "__visited__" then
if type(r) == 'string' then
savevar(n.."."..r,f)
else
savevar(n.."["..r.."]",f)
end
end
end
end
else write(tostring(v)) end
write("\n")
end
function save ()
foreach(settings,savevar)
end
|