diff options
Diffstat (limited to 'tex/context/base/luat-sta.lua')
-rw-r--r-- | tex/context/base/luat-sta.lua | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/tex/context/base/luat-sta.lua b/tex/context/base/luat-sta.lua index 7e87b90fb..8b58774d3 100644 --- a/tex/context/base/luat-sta.lua +++ b/tex/context/base/luat-sta.lua @@ -60,8 +60,10 @@ local function set_by_tag(tag,key,value,default,persistent) end dkey, hkey = post, key end - if type(value) == nil then - value = value or default + if value == nil then + value = default + elseif value == false then + -- special case elseif persistent then value = value or d[dkey] or default else @@ -84,13 +86,17 @@ local function get_by_tag(tag,key,default) if d then for k in gmatch(key,"[^%.]+") do local dk = d[k] - if dk then + if dk ~= nil then d = dk else return default end end - return d or default + if d == false then + return false + else + return d or default + end end end end |