diff options
author | Marius <mariausol@gmail.com> | 2012-10-02 18:00:18 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2012-10-02 18:00:18 +0300 |
commit | b26e16e698890ebcca73267f61b7d935ee804747 (patch) | |
tree | 2b943c92c751f686f9906e6900f115cd52df7c80 /tex/context/base/l-boolean.lua | |
parent | 8ae17f2c95dc1d7a5595f9f2d8ec91e61cd37e28 (diff) | |
download | context-b26e16e698890ebcca73267f61b7d935ee804747.tar.gz |
beta 2012.10.02 15:13
Diffstat (limited to 'tex/context/base/l-boolean.lua')
-rw-r--r-- | tex/context/base/l-boolean.lua | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/tex/context/base/l-boolean.lua b/tex/context/base/l-boolean.lua index 4294cf8f0..2b94de76b 100644 --- a/tex/context/base/l-boolean.lua +++ b/tex/context/base/l-boolean.lua @@ -16,30 +16,49 @@ function boolean.tonumber(b) end function toboolean(str,tolerant) - if str == true or str == false then - return str - elseif tolerant then - local tstr = type(str) - if tstr == "string" then - return str == "true" or str == "yes" or str == "on" or str == "1" or str == "t" - elseif tstr == "number" then - return tonumber(str) ~= 0 - elseif tstr == "nil" then - return false - else - return str - end + if str == nil then + return false + elseif str == false then + return false + elseif str == true then + return true elseif str == "true" then return true elseif str == "false" then return false + elseif not tolerant then + return false + elseif str == 0 then + return false + elseif (tonumber(str) or 0) > 0 then + return true else - return str + return str == "yes" or str == "on" or str == "t" end end string.toboolean = toboolean +function string.booleanstring(str) + if str == nil then + return false + elseif str == false then + return false + elseif str == true then + return true + elseif str == "true" then + return true + elseif str == "false" then + return false + elseif str == 0 then + return false + elseif (tonumber(str) or 0) > 0 then + return true + else + return str == "yes" or str == "on" or str == "t" + end +end + function string.is_boolean(str,default) if type(str) == "string" then if str == "true" or str == "yes" or str == "on" or str == "t" then |