diff options
Diffstat (limited to 'tex/context/base/util-sto.lua')
-rw-r--r-- | tex/context/base/util-sto.lua | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tex/context/base/util-sto.lua b/tex/context/base/util-sto.lua index ddf699bca..191d6cd73 100644 --- a/tex/context/base/util-sto.lua +++ b/tex/context/base/util-sto.lua @@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['util-sto'] = { license = "see context related readme files" } -local setmetatable, getmetatable = setmetatable, getmetatable +local setmetatable, getmetatable, type = setmetatable, getmetatable, type utilities = utilities or { } utilities.storage = utilities.storage or { } @@ -111,6 +111,9 @@ local t_table = { __index = f_table } local t_ignore = { __newindex = f_ignore } function table.setmetatableindex(t,f) + if type(t) ~= "table" then + f, t = t, { } + end local m = getmetatable(t) if m then if f == "empty" then @@ -137,6 +140,9 @@ function table.setmetatableindex(t,f) end function table.setmetatablenewindex(t,f) + if type(t) ~= "table" then + f, t = t, { } + end local m = getmetatable(t) if m then if f == "ignore" then @@ -155,6 +161,9 @@ function table.setmetatablenewindex(t,f) end function table.setmetatablecall(t,f) + if type(t) ~= "table" then + f, t = t, { } + end local m = getmetatable(t) if m then m.__call = f |