diff options
author | Hans Hagen <pragma@wxs.nl> | 2010-11-17 13:27:00 +0100 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2010-11-17 13:27:00 +0100 |
commit | 96bea07ac35ee9463fe89985c4b887a55579a4c9 (patch) | |
tree | 746b4509a8ef9049f311e331285434089e4a1a8a /tex/context/base/core-env.lua | |
parent | 953cd0a613be25ad37baaa745758862262e46395 (diff) | |
download | context-96bea07ac35ee9463fe89985c4b887a55579a4c9.tar.gz |
beta 2010.11.17 13:27
Diffstat (limited to 'tex/context/base/core-env.lua')
-rw-r--r-- | tex/context/base/core-env.lua | 82 |
1 files changed, 51 insertions, 31 deletions
diff --git a/tex/context/base/core-env.lua b/tex/context/base/core-env.lua index 02fa4f744..d0db40b81 100644 --- a/tex/context/base/core-env.lua +++ b/tex/context/base/core-env.lua @@ -22,44 +22,64 @@ tex.constants = { } tex.conditionals = { } tex.ifs = { } -setmetatable(tex.modes, { __index = function(t,k) - local m = modes[k] - if m then - return m() - else - local n = "mode" .. k - if csname_id(n) == undefined then - return false +setmetatable(tex.modes, { + __index = function(t,k) + local m = modes[k] + if m then + return m() else - modes[k] = function() return texcount[n] >= 1 end - return texcount[n] >= 1 + local n = "mode" .. k + if csname_id(n) == undefined then + return false + else + modes[k] = function() return texcount[n] >= 1 end + return texcount[n] >= 1 + end end end -end }) +}) -setmetatable(tex.systemmodes, { __index = function(t,k) - local m = systemmodes[k] - if m then - return m() - else - local n = "mode*" .. k - if csname_id(n) == undefined then - return false +setmetatable(tex.systemmodes, { + __index = function(t,k) + local m = systemmodes[k] + if m then + return m() else - systemmodes[k] = function() return texcount[n] >= 1 end - return texcount[n] >= 1 + local n = "mode*" .. k + if csname_id(n) == undefined then + return false + else + systemmodes[k] = function() return texcount[n] >= 1 end + return texcount[n] >= 1 + end end end -end }) +}) -setmetatable(tex.constants, { __index = function(t,k) - return csname_id(k) ~= undefined and texcount[k] or 0 -end }) +setmetatable(tex.constants, { + __index = function(t,k) + return csname_id(k) ~= undefined and texcount[k] or 0 + end, +--~ __newindex = function(t,k) +--~ if csname_id(k) ~= undefined then +--~ texcount[k] = k +--~ end +--~ end +}) -setmetatable(tex.conditionals, { __index = function(t,k) -- 0 == true - return csname_id(k) ~= undefined and texcount[k] == 0 -end }) +setmetatable(tex.conditionals, { + __index = function(t,k) -- 0 == true + return csname_id(k) ~= undefined and texcount[k] == 0 + end, +--~ __newindex = function(t,k) -- not ok +--~ if csname_id(k) ~= undefined then +--~ texcount[k] = k and 0 or 1 -- 0 == true +--~ end +--~ end +}) -setmetatable(tex.ifs, { __index = function(t,k) - return csname_id(k) ~= undefined and create(k)[2] == iftrue -- inefficient, this create, we need a helper -end }) +setmetatable(tex.ifs, { + __index = function(t,k) + return csname_id(k) ~= undefined and create(k)[2] == iftrue -- inefficient, this create, we need a helper + end +}) |