From 87925e51dff523488d10157c41063fa1ed379b80 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sun, 30 Mar 2014 09:00:37 +1000 Subject: Add fixNames() to sort out all but lowest level Thing names. --- ClientHamr/GuiLua/skang.lua | 13 +++++++++++++ ClientHamr/GuiLua/test.lua | 8 ++++++++ 2 files changed, 21 insertions(+) (limited to 'ClientHamr') diff --git a/ClientHamr/GuiLua/skang.lua b/ClientHamr/GuiLua/skang.lua index e3c2612..7333e54 100644 --- a/ClientHamr/GuiLua/skang.lua +++ b/ClientHamr/GuiLua/skang.lua @@ -594,6 +594,19 @@ thing = function (names, ...) end +fixNames = function (module, name) + local stuff = getmetatable(module) + stuff.names[1] = name + for k, v in pairs(stuff.__stuff) do + if 'table' == v.types[1] then + local name = v.names[1] + print(name .. ' -> ' .. name) + fixNames(stuff.__values[name], name) + end + end +end + + copy = function (module, name) local result = {} local thingy = {} diff --git a/ClientHamr/GuiLua/test.lua b/ClientHamr/GuiLua/test.lua index 4bb92e1..73cacee 100644 --- a/ClientHamr/GuiLua/test.lua +++ b/ClientHamr/GuiLua/test.lua @@ -123,6 +123,14 @@ stuff.t = {} skang.thing{'a', module=stuff, help = 'A test stufflet'} skang.thing{'b', module=stuff.t, help = 'A sub stufflet'} skang.thing{'c', module=stuff.t, help = 'Another sub stufflet'} +print('*********************************') +skang.fixNames(skang, 'skang') +skang.fixNames(test, 'test') +skang.fixNames(test_c, 'test_c') +skang.fixNames(stuff, 'stuff') +skang.fixNames(stuff.t, 't') +print('*********************************') + print(skang.get(stuff, 'a', 'help')) print(skang.get(stuff.t, 'b', 'help')) print(skang.get(stuff.t, 'c', 'help')) -- cgit v1.1