diff options
| -rw-r--r-- | scripts/context/lua/mtxrun.lua | 18 | ||||
| -rw-r--r-- | scripts/context/stubs/mswin/mtxrun.lua | 18 | ||||
| -rw-r--r-- | scripts/context/stubs/unix/mtxrun | 18 | ||||
| -rw-r--r-- | scripts/context/stubs/win64/mtxrun.lua | 18 | ||||
| -rw-r--r-- | tex/context/base/back-exp.lua | 25 | ||||
| -rw-r--r-- | tex/context/base/back-pdf.lua | 44 | ||||
| -rw-r--r-- | tex/context/base/colo-ini.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/cont-new.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/context-version.pdf | bin | 4435 -> 4432 bytes | |||
| -rw-r--r-- | tex/context/base/context.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/l-boolean.lua | 6 | ||||
| -rw-r--r-- | tex/context/base/status-files.pdf | bin | 25005 -> 25002 bytes | |||
| -rw-r--r-- | tex/context/base/status-lua.pdf | bin | 327110 -> 327111 bytes | |||
| -rw-r--r-- | tex/context/base/strc-reg.mkiv | 10 | ||||
| -rw-r--r-- | tex/context/base/strc-tag.lua | 254 | ||||
| -rw-r--r-- | tex/context/base/strc-tag.mkiv | 222 | ||||
| -rw-r--r-- | tex/context/base/trac-set.lua | 4 | ||||
| -rw-r--r-- | tex/generic/context/luatex/luatex-fonts-merged.lua | 8 | 
18 files changed, 346 insertions, 305 deletions
| diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 095147e47..624152316 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -4316,7 +4316,7 @@ do -- create closure to overcome 200 locals limit  package.loaded["l-boolean"] = package.loaded["l-boolean"] or true --- original size: 1809, stripped down to: 1527 +-- original size: 1850, stripped down to: 1568  if not modules then modules={} end modules ['l-boolean']={    version=1.001, @@ -4370,11 +4370,11 @@ function string.booleanstring(str)      return str=="yes" or str=="on" or str=="t"    end  end -function string.is_boolean(str,default) +function string.is_boolean(str,default,strict)    if type(str)=="string" then -    if str=="true" or str=="yes" or str=="on" or str=="t" or str=="1" then +    if str=="true" or str=="yes" or str=="on" or str=="t" or (not strict and str=="1") then        return true -    elseif str=="false" or str=="no" or str=="off" or str=="f" or str=="0" then +    elseif str=="false" or str=="no" or str=="off" or str=="f" or (not strict and str=="0") then        return false      end    end @@ -7090,7 +7090,7 @@ do -- create closure to overcome 200 locals limit  package.loaded["trac-set"] = package.loaded["trac-set"] or true --- original size: 12365, stripped down to: 8799 +-- original size: 12395, stripped down to: 8811  if not modules then modules={} end modules ['trac-set']={     version=1.001, @@ -7118,7 +7118,7 @@ function setters.initialize(filename,name,values)      local data=setter.data      if data then        for key,newvalue in next,values do -        local newvalue=is_boolean(newvalue,newvalue) +        local newvalue=is_boolean(newvalue,newvalue,true)           local functions=data[key]          if functions then            local oldvalue=functions.value @@ -7172,7 +7172,7 @@ local function set(t,what,newvalue)        elseif not value then          value=false         else -        value=is_boolean(value,value) +        value=is_boolean(value,value,true)         end        w=topattern(w,true,true)        for name,functions in next,data do @@ -17416,8 +17416,8 @@ end -- of closure  -- used libraries    : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua  -- skipped libraries : - --- original bytes    : 719647 --- stripped bytes    : 257168 +-- original bytes    : 719718 +-- stripped bytes    : 257186  -- end library merge diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 095147e47..624152316 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -4316,7 +4316,7 @@ do -- create closure to overcome 200 locals limit  package.loaded["l-boolean"] = package.loaded["l-boolean"] or true --- original size: 1809, stripped down to: 1527 +-- original size: 1850, stripped down to: 1568  if not modules then modules={} end modules ['l-boolean']={    version=1.001, @@ -4370,11 +4370,11 @@ function string.booleanstring(str)      return str=="yes" or str=="on" or str=="t"    end  end -function string.is_boolean(str,default) +function string.is_boolean(str,default,strict)    if type(str)=="string" then -    if str=="true" or str=="yes" or str=="on" or str=="t" or str=="1" then +    if str=="true" or str=="yes" or str=="on" or str=="t" or (not strict and str=="1") then        return true -    elseif str=="false" or str=="no" or str=="off" or str=="f" or str=="0" then +    elseif str=="false" or str=="no" or str=="off" or str=="f" or (not strict and str=="0") then        return false      end    end @@ -7090,7 +7090,7 @@ do -- create closure to overcome 200 locals limit  package.loaded["trac-set"] = package.loaded["trac-set"] or true --- original size: 12365, stripped down to: 8799 +-- original size: 12395, stripped down to: 8811  if not modules then modules={} end modules ['trac-set']={     version=1.001, @@ -7118,7 +7118,7 @@ function setters.initialize(filename,name,values)      local data=setter.data      if data then        for key,newvalue in next,values do -        local newvalue=is_boolean(newvalue,newvalue) +        local newvalue=is_boolean(newvalue,newvalue,true)           local functions=data[key]          if functions then            local oldvalue=functions.value @@ -7172,7 +7172,7 @@ local function set(t,what,newvalue)        elseif not value then          value=false         else -        value=is_boolean(value,value) +        value=is_boolean(value,value,true)         end        w=topattern(w,true,true)        for name,functions in next,data do @@ -17416,8 +17416,8 @@ end -- of closure  -- used libraries    : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua  -- skipped libraries : - --- original bytes    : 719647 --- stripped bytes    : 257168 +-- original bytes    : 719718 +-- stripped bytes    : 257186  -- end library merge diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 095147e47..624152316 100644 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -4316,7 +4316,7 @@ do -- create closure to overcome 200 locals limit  package.loaded["l-boolean"] = package.loaded["l-boolean"] or true --- original size: 1809, stripped down to: 1527 +-- original size: 1850, stripped down to: 1568  if not modules then modules={} end modules ['l-boolean']={    version=1.001, @@ -4370,11 +4370,11 @@ function string.booleanstring(str)      return str=="yes" or str=="on" or str=="t"    end  end -function string.is_boolean(str,default) +function string.is_boolean(str,default,strict)    if type(str)=="string" then -    if str=="true" or str=="yes" or str=="on" or str=="t" or str=="1" then +    if str=="true" or str=="yes" or str=="on" or str=="t" or (not strict and str=="1") then        return true -    elseif str=="false" or str=="no" or str=="off" or str=="f" or str=="0" then +    elseif str=="false" or str=="no" or str=="off" or str=="f" or (not strict and str=="0") then        return false      end    end @@ -7090,7 +7090,7 @@ do -- create closure to overcome 200 locals limit  package.loaded["trac-set"] = package.loaded["trac-set"] or true --- original size: 12365, stripped down to: 8799 +-- original size: 12395, stripped down to: 8811  if not modules then modules={} end modules ['trac-set']={     version=1.001, @@ -7118,7 +7118,7 @@ function setters.initialize(filename,name,values)      local data=setter.data      if data then        for key,newvalue in next,values do -        local newvalue=is_boolean(newvalue,newvalue) +        local newvalue=is_boolean(newvalue,newvalue,true)           local functions=data[key]          if functions then            local oldvalue=functions.value @@ -7172,7 +7172,7 @@ local function set(t,what,newvalue)        elseif not value then          value=false         else -        value=is_boolean(value,value) +        value=is_boolean(value,value,true)         end        w=topattern(w,true,true)        for name,functions in next,data do @@ -17416,8 +17416,8 @@ end -- of closure  -- used libraries    : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua  -- skipped libraries : - --- original bytes    : 719647 --- stripped bytes    : 257168 +-- original bytes    : 719718 +-- stripped bytes    : 257186  -- end library merge diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua index 095147e47..624152316 100644 --- a/scripts/context/stubs/win64/mtxrun.lua +++ b/scripts/context/stubs/win64/mtxrun.lua @@ -4316,7 +4316,7 @@ do -- create closure to overcome 200 locals limit  package.loaded["l-boolean"] = package.loaded["l-boolean"] or true --- original size: 1809, stripped down to: 1527 +-- original size: 1850, stripped down to: 1568  if not modules then modules={} end modules ['l-boolean']={    version=1.001, @@ -4370,11 +4370,11 @@ function string.booleanstring(str)      return str=="yes" or str=="on" or str=="t"    end  end -function string.is_boolean(str,default) +function string.is_boolean(str,default,strict)    if type(str)=="string" then -    if str=="true" or str=="yes" or str=="on" or str=="t" or str=="1" then +    if str=="true" or str=="yes" or str=="on" or str=="t" or (not strict and str=="1") then        return true -    elseif str=="false" or str=="no" or str=="off" or str=="f" or str=="0" then +    elseif str=="false" or str=="no" or str=="off" or str=="f" or (not strict and str=="0") then        return false      end    end @@ -7090,7 +7090,7 @@ do -- create closure to overcome 200 locals limit  package.loaded["trac-set"] = package.loaded["trac-set"] or true --- original size: 12365, stripped down to: 8799 +-- original size: 12395, stripped down to: 8811  if not modules then modules={} end modules ['trac-set']={     version=1.001, @@ -7118,7 +7118,7 @@ function setters.initialize(filename,name,values)      local data=setter.data      if data then        for key,newvalue in next,values do -        local newvalue=is_boolean(newvalue,newvalue) +        local newvalue=is_boolean(newvalue,newvalue,true)           local functions=data[key]          if functions then            local oldvalue=functions.value @@ -7172,7 +7172,7 @@ local function set(t,what,newvalue)        elseif not value then          value=false         else -        value=is_boolean(value,value) +        value=is_boolean(value,value,true)         end        w=topattern(w,true,true)        for name,functions in next,data do @@ -17416,8 +17416,8 @@ end -- of closure  -- used libraries    : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua  -- skipped libraries : - --- original bytes    : 719647 --- stripped bytes    : 257168 +-- original bytes    : 719718 +-- stripped bytes    : 257186  -- end library merge diff --git a/tex/context/base/back-exp.lua b/tex/context/base/back-exp.lua index 8c102c20a..f379878dd 100644 --- a/tex/context/base/back-exp.lua +++ b/tex/context/base/back-exp.lua @@ -187,6 +187,7 @@ local attribentities    = { ["&"] = "&", [">"] = ">", ["<"] = "<", ['"  local p_entity          = lpeg.replacer(entities) -- was: entityremapper = utf.remapper(entities)  local p_attribute       = lpeg.replacer(attribentities) +local p_stripper        = lpeg.patterns.stripper  local alignmapping = {      flushright = "right", @@ -604,6 +605,30 @@ do  end +local function ignorebreaks(result,element,detail,n,fulltag,di) +    local data = di.data +    for i=1,#data do +        local d = data[i] +        if d.content == " " then +            d.content = "" +        end +    end +end + +local function ignorespaces(result,element,detail,n,fulltag,di) +    local data = di.data +    for i=1,#data do +        local d = data[i] +        local c = d.content +        if type(c) == "string" then +            d.content = lpegmatch(p_stripper,c) +        end +    end +end + +extras.registerpages     = ignorebreaks +extras.registerseparator = ignorespaces +  do      local highlight      = { } diff --git a/tex/context/base/back-pdf.lua b/tex/context/base/back-pdf.lua index 2fbaaa0d2..ce42c9124 100644 --- a/tex/context/base/back-pdf.lua +++ b/tex/context/base/back-pdf.lua @@ -43,14 +43,7 @@ local pdfrestore   = nodes.pool.pdfrestore  local pdfsetmatrix = nodes.pool.pdfsetmatrix  local stack        = { } - -local function popmatrix() -    local top = remove(stack) -    if top then -        context(pdfsetmatrix(unpack(top))) -        context(pdfrestore()) -    end -end +local restore      = true -- false  function commands.pdfstartrotation(a)      if a == 0 then @@ -59,7 +52,7 @@ function commands.pdfstartrotation(a)          local s, c = sind(a), cosd(a)          context(pdfsave())          context(pdfsetmatrix(c,s,-s,c)) -        insert(stack,{ c, -s, s, c }) +        insert(stack,restore and { c, -s, s, c } or false)      end  end @@ -75,27 +68,40 @@ function commands.pdfstartscaling(sx,sy)          end          context(pdfsave())          context(pdfsetmatrix(sx,0,0,sy)) -        insert(stack,{ 1/sx, 0, 0, 1/sy }) +        insert(stack,restore and { 1/sx, 0, 0, 1/sy } or false)      end  end -function commands.pdfstartmirroring() -    context(pdfsetmatrix(-1,0,0,1)) -end -  function commands.pdfstartmatrix(sx,rx,ry,sy) -- tx, ty      if sx == 1 and rx == 0 and ry == 0 and sy == 1 then          insert(stack,false)      else          context(pdfsave())          context(pdfsetmatrix(sx,rx,ry,sy)) -        insert(stack,{ -sx, -rx, -ry, -sy }) +        insert(stack,store and { -sx, -rx, -ry, -sy } or false)      end  end -commands.pdfstoprotation  = popmatrix -commands.pdfstopscaling   = popmatrix -commands.pdfstopmirroring = popmatrix -commands.pdfstopmatrix    = popmatrix +local function pdfstopsomething() +    local top = remove(stack) +    if top == false then +        context(pdfrestore()) +    elseif top then +        context(pdfsetmatrix(unpack(top))) +        context(pdfrestore()) +    else +        -- nesting error +    end +end + +commands.pdfstoprotation = pdfstopsomething +commands.pdfstopscaling  = pdfstopsomething +commands.pdfstopmatrix   = pdfstopsomething + +function commands.pdfstartmirroring() +    context(pdfsetmatrix(-1,0,0,1)) +end + +commands.pdfstopmirroring = commands.pdfstartmirroring  -- todo : clipping diff --git a/tex/context/base/colo-ini.mkiv b/tex/context/base/colo-ini.mkiv index 98ba2904c..375c2c502 100644 --- a/tex/context/base/colo-ini.mkiv +++ b/tex/context/base/colo-ini.mkiv @@ -1097,7 +1097,7 @@  % \normal added else fails in metafun manual (leaders do a hard scan) -\unexpanded\def\forcecolorhack{\leaders\hrule\hskip\zeropoint} +\unexpanded\def\forcecolorhack{\leaders\hrule\hskip\zeropoint\relax} % relax is needed !  %D We default to the colors defined in \type {colo-imp-rgb} and  %D support both \RGB\ and \CMYK\ output. Transparencies are defined diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 3e511f65a..04bc5a5b7 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@  %C therefore copyrighted by \PRAGMA. See mreadme.pdf for  %C details. -\newcontextversion{2014.08.27 12:34} +\newcontextversion{2014.08.28 19:35}  %D This file is loaded at runtime, thereby providing an excellent place for  %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdfBinary files differ index 3355cc71c..8a938e9f1 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index ec540ee32..5d96d2ac3 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -28,7 +28,7 @@  %D up and the dependencies are more consistent.  \edef\contextformat {\jobname} -\edef\contextversion{2014.08.27 12:34} +\edef\contextversion{2014.08.28 19:35}  \edef\contextkind   {beta}  %D For those who want to use this: diff --git a/tex/context/base/l-boolean.lua b/tex/context/base/l-boolean.lua index 8d11080e7..8f18d4c00 100644 --- a/tex/context/base/l-boolean.lua +++ b/tex/context/base/l-boolean.lua @@ -57,11 +57,11 @@ function string.booleanstring(str)      end  end -function string.is_boolean(str,default) +function string.is_boolean(str,default,strict)      if type(str) == "string" then -        if str == "true" or str == "yes" or str == "on" or str == "t" or str == "1" then +        if str == "true" or str == "yes" or str == "on" or str == "t" or (not strict and str == "1") then              return true -        elseif str == "false" or str == "no" or str == "off" or str == "f" or str == "0" then +        elseif str == "false" or str == "no" or str == "off" or str == "f" or (not strict and str == "0") then              return false          end      end diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdfBinary files differ index cc2a125a9..e2be4a0b0 100644 --- a/tex/context/base/status-files.pdf +++ b/tex/context/base/status-files.pdf diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdfBinary files differ index 2f19ea76a..c175356dc 100644 --- a/tex/context/base/status-lua.pdf +++ b/tex/context/base/status-lua.pdf diff --git a/tex/context/base/strc-reg.mkiv b/tex/context/base/strc-reg.mkiv index a09289b49..6147e2c0d 100644 --- a/tex/context/base/strc-reg.mkiv +++ b/tex/context/base/strc-reg.mkiv @@ -721,6 +721,7 @@  \unexpanded\def\startregisterentry#1% todo: level    {\begingroup +   \dostarttagged\t!registerentry\empty     \global\setconstant\c_strc_registers_page_state\zerocount     \hangindent\d_strc_registers_hangindent     \hangafter \c_strc_registers_hangafter} @@ -728,6 +729,7 @@  \unexpanded\def\stopregisterentry    {\endgraf     \global\setconstant\c_strc_registers_page_state\zerocount +   \dostoptagged     \endgroup}  \unexpanded\def\startregistersection#1% title @@ -759,13 +761,17 @@    {\dostoptagged     \endgroup} -\unexpanded\def\registerpageseparator% todo: , configurable +\unexpanded\def\registerpageseparator % todo: , configurable    {\ifcase\c_strc_registers_page_state       \hskip\d_strc_registers_distance\relax     \or +     \dostarttagged\t!registerseparator\empty       \registerpageseparatorsymbol % page +     \dostoptagged     \or +     \dostarttagged\t!registerseparator\empty       \registerpageseparatorsymbol % see +     \dostoptagged     \fi}  \unexpanded\def\registeronepagerangeseparator @@ -816,7 +822,7 @@     \fi}  \unexpanded\def\doapplyregisterentrycommand#1#2% processor text -  {\dostarttagged\t!registerentry\empty +  {\dostarttagged\t!registercontent\empty     \ifx\currentregisterseeindex\empty \else       \dontleavehmode       \strc_register_injector_show diff --git a/tex/context/base/strc-tag.lua b/tex/context/base/strc-tag.lua index 6f69144dc..fdbce5b84 100644 --- a/tex/context/base/strc-tag.lua +++ b/tex/context/base/strc-tag.lua @@ -48,132 +48,134 @@ tags.userproperties  = userproperties -- used in backend  local properties     = allocate { -    document           = { pdf = "Div",        nature = "display" }, - -    division           = { pdf = "Div",        nature = "display" }, -    paragraph          = { pdf = "P",          nature = "mixed"   }, -    p                  = { pdf = "P",          nature = "mixed"   }, -    construct          = { pdf = "Span",       nature = "inline"  }, -    highlight          = { pdf = "Span",       nature = "inline"  }, - -    section            = { pdf = "Sect",       nature = "display" }, -    sectiontitle       = { pdf = "H",          nature = "mixed"   }, -    sectionnumber      = { pdf = "H",          nature = "mixed"   }, -    sectioncontent     = { pdf = "Div",        nature = "display" }, - -    itemgroup          = { pdf = "L",          nature = "display" }, -    item               = { pdf = "LI",         nature = "display" }, -    itemtag            = { pdf = "Lbl",        nature = "mixed"   }, -    itemcontent        = { pdf = "LBody",      nature = "mixed"   }, - -    description        = { pdf = "Div",        nature = "display" }, -    descriptiontag     = { pdf = "Div",        nature = "mixed"   }, -    descriptioncontent = { pdf = "Div",        nature = "mixed"   }, -    descriptionsymbol  = { pdf = "Span",       nature = "inline"  }, -- note reference - -    verbatimblock      = { pdf = "Code",       nature = "display" }, -    verbatimlines      = { pdf = "Code",       nature = "display" }, -    verbatimline       = { pdf = "Code",       nature = "mixed"   }, -    verbatim           = { pdf = "Code",       nature = "inline"  }, - -    lines              = { pdf = "Code",       nature = "display" }, -    line               = { pdf = "Code",       nature = "mixed"   }, - -    synonym            = { pdf = "Span",       nature = "inline"  }, -    sorting            = { pdf = "Span",       nature = "inline"  }, - -    register           = { pdf = "Div",        nature = "display" }, -    registersection    = { pdf = "Div",        nature = "display" }, -    registertag        = { pdf = "Span",       nature = "mixed"   }, -    registerentries    = { pdf = "Div",        nature = "display" }, -    registerentry      = { pdf = "Span",       nature = "mixed"   }, -    registersee        = { pdf = "Span",       nature = "mixed"   }, -    registerpages      = { pdf = "Span",       nature = "mixed"   }, -    registerpage       = { pdf = "Span",       nature = "inline"  }, -    registerpagerange  = { pdf = "Span",       nature = "mixed"   }, - -    table              = { pdf = "Table",      nature = "display" }, -    tablerow           = { pdf = "TR",         nature = "display" }, -    tablecell          = { pdf = "TD",         nature = "mixed"   }, - -    tabulate           = { pdf = "Table",      nature = "display" }, -    tabulaterow        = { pdf = "TR",         nature = "display" }, -    tabulatecell       = { pdf = "TD",         nature = "mixed"   }, - -    list               = { pdf = "TOC",        nature = "display" }, -    listitem           = { pdf = "TOCI",       nature = "display" }, -    listtag            = { pdf = "Lbl",        nature = "mixed"   }, -    listcontent        = { pdf = "P",          nature = "mixed"   }, -    listdata           = { pdf = "P",          nature = "mixed"   }, -    listpage           = { pdf = "Reference",  nature = "mixed"   }, - -    delimitedblock     = { pdf = "BlockQuote", nature = "display" }, -    delimited          = { pdf = "Quote",      nature = "inline"  }, -    subsentence        = { pdf = "Span",       nature = "inline"  }, - -    label              = { pdf = "Span",       nature = "mixed"   }, -    number             = { pdf = "Span",       nature = "mixed"   }, - -    float              = { pdf = "Div",        nature = "display" }, -- Figure -    floatcaption       = { pdf = "Caption",    nature = "mixed"   }, -    floatlabel         = { pdf = "Span",       nature = "inline"  }, -    floatnumber        = { pdf = "Span",       nature = "inline"  }, -    floattext          = { pdf = "Span",       nature = "mixed"   }, -    floatcontent       = { pdf = "P",          nature = "mixed"   }, - -    image              = { pdf = "P",          nature = "mixed"   }, -    mpgraphic          = { pdf = "P",          nature = "mixed"   }, - -    formulaset         = { pdf = "Div",        nature = "display" }, -    formula            = { pdf = "Div",        nature = "display" }, -- Formula -    formulacaption     = { pdf = "Span",       nature = "mixed"   }, -    formulalabel       = { pdf = "Span",       nature = "mixed"   }, -    formulanumber      = { pdf = "Span",       nature = "mixed"   }, -    formulacontent     = { pdf = "P",          nature = "display" }, -    subformula         = { pdf = "Div",        nature = "display" }, - -    link               = { pdf = "Link",       nature = "inline"  }, - -    margintextblock    = { pdf = "Span",       nature = "inline"  }, -    margintext         = { pdf = "Span",       nature = "inline"  }, - -    math               = { pdf = "Div",        nature = "inline"  }, -- no display -    mn                 = { pdf = "Span",       nature = "mixed"   }, -    mi                 = { pdf = "Span",       nature = "mixed"   }, -    mo                 = { pdf = "Span",       nature = "mixed"   }, -    ms                 = { pdf = "Span",       nature = "mixed"   }, -    mrow               = { pdf = "Span",       nature = "display" }, -    msubsup            = { pdf = "Span",       nature = "display" }, -    msub               = { pdf = "Span",       nature = "display" }, -    msup               = { pdf = "Span",       nature = "display" }, -    merror             = { pdf = "Span",       nature = "mixed"   }, -    munderover         = { pdf = "Span",       nature = "display" }, -    munder             = { pdf = "Span",       nature = "display" }, -    mover              = { pdf = "Span",       nature = "display" }, -    mtext              = { pdf = "Span",       nature = "mixed"   }, -    mfrac              = { pdf = "Span",       nature = "display" }, -    mroot              = { pdf = "Span",       nature = "display" }, -    msqrt              = { pdf = "Span",       nature = "display" }, -    mfenced            = { pdf = "Span",       nature = "display" }, -    maction            = { pdf = "Span",       nature = "display" }, - -    mtable             = { pdf = "Table",      nature = "display" }, -- might change -    mtr                = { pdf = "TR",         nature = "display" }, -- might change -    mtd                = { pdf = "TD",         nature = "display" }, -- might change - -    ignore             = { pdf = "Span",       nature = "mixed"   }, -    metadata           = { pdf = "Div",        nature = "display" }, -    metavariable       = { pdf = "Span",       nature = "mixed"   }, - -    mid                = { pdf = "Span",       nature = "inline"  }, -    sub                = { pdf = "Span",       nature = "inline"  }, -    sup                = { pdf = "Span",       nature = "inline"  }, -    subsup             = { pdf = "Span",       nature = "inline"  }, - -    combination        = { pdf = "Span",       nature = "display" }, -    combinationpair    = { pdf = "Span",       nature = "display" }, -    combinationcontent = { pdf = "Span",       nature = "mixed"   }, -    combinationcaption = { pdf = "Span",       nature = "mixed"   }, +    document              = { pdf = "Div",        nature = "display" }, + +    division              = { pdf = "Div",        nature = "display" }, +    paragraph             = { pdf = "P",          nature = "mixed"   }, +    p                     = { pdf = "P",          nature = "mixed"   }, +    construct             = { pdf = "Span",       nature = "inline"  }, +    highlight             = { pdf = "Span",       nature = "inline"  }, + +    section               = { pdf = "Sect",       nature = "display" }, +    sectiontitle          = { pdf = "H",          nature = "mixed"   }, +    sectionnumber         = { pdf = "H",          nature = "mixed"   }, +    sectioncontent        = { pdf = "Div",        nature = "display" }, + +    itemgroup             = { pdf = "L",          nature = "display" }, +    item                  = { pdf = "LI",         nature = "display" }, +    itemtag               = { pdf = "Lbl",        nature = "mixed"   }, +    itemcontent           = { pdf = "LBody",      nature = "mixed"   }, + +    description           = { pdf = "Div",        nature = "display" }, +    descriptiontag        = { pdf = "Div",        nature = "mixed"   }, +    descriptioncontent    = { pdf = "Div",        nature = "mixed"   }, +    descriptionsymbol     = { pdf = "Span",       nature = "inline"  }, -- note reference + +    verbatimblock         = { pdf = "Code",       nature = "display" }, +    verbatimlines         = { pdf = "Code",       nature = "display" }, +    verbatimline          = { pdf = "Code",       nature = "mixed"   }, +    verbatim              = { pdf = "Code",       nature = "inline"  }, + +    lines                 = { pdf = "Code",       nature = "display" }, +    line                  = { pdf = "Code",       nature = "mixed"   }, + +    synonym               = { pdf = "Span",       nature = "inline"  }, +    sorting               = { pdf = "Span",       nature = "inline"  }, + +    register              = { pdf = "Div",        nature = "display" }, +    registersection       = { pdf = "Div",        nature = "display" }, +    registertag           = { pdf = "Span",       nature = "mixed"   }, +    registerentries       = { pdf = "Div",        nature = "display" }, +    registerentry         = { pdf = "Div",        nature = "display" }, +    registercontent       = { pdf = "Span",       nature = "mixed"   }, +    registersee           = { pdf = "Span",       nature = "mixed"   }, +    registerpages         = { pdf = "Span",       nature = "mixed"   }, +    registerpage          = { pdf = "Span",       nature = "mixed"   }, +    registerseparator     = { pdf = "Span",       nature = "inline"  }, +    registerpagerange     = { pdf = "Span",       nature = "mixed"   }, + +    table                 = { pdf = "Table",      nature = "display" }, +    tablerow              = { pdf = "TR",         nature = "display" }, +    tablecell             = { pdf = "TD",         nature = "mixed"   }, + +    tabulate              = { pdf = "Table",      nature = "display" }, +    tabulaterow           = { pdf = "TR",         nature = "display" }, +    tabulatecell          = { pdf = "TD",         nature = "mixed"   }, + +    list                  = { pdf = "TOC",        nature = "display" }, +    listitem              = { pdf = "TOCI",       nature = "display" }, +    listtag               = { pdf = "Lbl",        nature = "mixed"   }, +    listcontent           = { pdf = "P",          nature = "mixed"   }, +    listdata              = { pdf = "P",          nature = "mixed"   }, +    listpage              = { pdf = "Reference",  nature = "mixed"   }, + +    delimitedblock        = { pdf = "BlockQuote", nature = "display" }, +    delimited             = { pdf = "Quote",      nature = "inline"  }, +    subsentence           = { pdf = "Span",       nature = "inline"  }, + +    label                 = { pdf = "Span",       nature = "mixed"   }, +    number                = { pdf = "Span",       nature = "mixed"   }, + +    float                 = { pdf = "Div",        nature = "display" }, -- Figure +    floatcaption          = { pdf = "Caption",    nature = "mixed"   }, +    floatlabel            = { pdf = "Span",       nature = "inline"  }, +    floatnumber           = { pdf = "Span",       nature = "inline"  }, +    floattext             = { pdf = "Span",       nature = "mixed"   }, +    floatcontent          = { pdf = "P",          nature = "mixed"   }, + +    image                 = { pdf = "P",          nature = "mixed"   }, +    mpgraphic             = { pdf = "P",          nature = "mixed"   }, + +    formulaset            = { pdf = "Div",        nature = "display" }, +    formula               = { pdf = "Div",        nature = "display" }, -- Formula +    formulacaption        = { pdf = "Span",       nature = "mixed"   }, +    formulalabel          = { pdf = "Span",       nature = "mixed"   }, +    formulanumber         = { pdf = "Span",       nature = "mixed"   }, +    formulacontent        = { pdf = "P",          nature = "display" }, +    subformula            = { pdf = "Div",        nature = "display" }, + +    link                  = { pdf = "Link",       nature = "inline"  }, + +    margintextblock       = { pdf = "Span",       nature = "inline"  }, +    margintext            = { pdf = "Span",       nature = "inline"  }, + +    math                  = { pdf = "Div",        nature = "inline"  }, -- no display +    mn                    = { pdf = "Span",       nature = "mixed"   }, +    mi                    = { pdf = "Span",       nature = "mixed"   }, +    mo                    = { pdf = "Span",       nature = "mixed"   }, +    ms                    = { pdf = "Span",       nature = "mixed"   }, +    mrow                  = { pdf = "Span",       nature = "display" }, +    msubsup               = { pdf = "Span",       nature = "display" }, +    msub                  = { pdf = "Span",       nature = "display" }, +    msup                  = { pdf = "Span",       nature = "display" }, +    merror                = { pdf = "Span",       nature = "mixed"   }, +    munderover            = { pdf = "Span",       nature = "display" }, +    munder                = { pdf = "Span",       nature = "display" }, +    mover                 = { pdf = "Span",       nature = "display" }, +    mtext                 = { pdf = "Span",       nature = "mixed"   }, +    mfrac                 = { pdf = "Span",       nature = "display" }, +    mroot                 = { pdf = "Span",       nature = "display" }, +    msqrt                 = { pdf = "Span",       nature = "display" }, +    mfenced               = { pdf = "Span",       nature = "display" }, +    maction               = { pdf = "Span",       nature = "display" }, + +    mtable                = { pdf = "Table",      nature = "display" }, -- might change +    mtr                   = { pdf = "TR",         nature = "display" }, -- might change +    mtd                   = { pdf = "TD",         nature = "display" }, -- might change + +    ignore                = { pdf = "Span",       nature = "mixed"   }, +    metadata              = { pdf = "Div",        nature = "display" }, +    metavariable          = { pdf = "Span",       nature = "mixed"   }, + +    mid                   = { pdf = "Span",       nature = "inline"  }, +    sub                   = { pdf = "Span",       nature = "inline"  }, +    sup                   = { pdf = "Span",       nature = "inline"  }, +    subsup                = { pdf = "Span",       nature = "inline"  }, + +    combination           = { pdf = "Span",       nature = "display" }, +    combinationpair       = { pdf = "Span",       nature = "display" }, +    combinationcontent    = { pdf = "Span",       nature = "mixed"   }, +    combinationcaption    = { pdf = "Span",       nature = "mixed"   },  }  function tags.detailedtag(tag,detail,attribute) diff --git a/tex/context/base/strc-tag.mkiv b/tex/context/base/strc-tag.mkiv index a1cdac592..9b3c2feb9 100644 --- a/tex/context/base/strc-tag.mkiv +++ b/tex/context/base/strc-tag.mkiv @@ -23,123 +23,125 @@  %D Eventually these labels will either move to the modules  %D where they're used, or they will en dup in mult-tag. -\def\t!document           {document}               % Div - -\def\t!division           {division}               % Div -\def\t!paragraph          {paragraph}              % P -\def\t!p                  {p}                      % P -\def\t!construct          {construct}              % Span -\def\t!highlight          {highlight}              % Span - -\def\t!section            {section}                % Sect -\def\t!sectiontitle       {sectiontitle}           % H -\def\t!sectionnumber      {sectionnumber}          % H -\def\t!sectioncontent     {sectioncontent}         % Div - -\def\t!itemgroup          {itemgroup}              % L -\def\t!item               {item}                   % Li -\def\t!itemtag            {itemtag}                % Lbl -\def\t!itemcontent        {itemcontent}            % LBody - -\def\t!description        {description}            % Li -\def\t!descriptiontag     {descriptiontag}         % Lbl -\def\t!descriptioncontent {descriptioncontent}     % LBody -\def\t!descriptionsymbol  {descriptionsymbol}      % Span - -\let\t!construction       \t!description -\let\t!constructiontag    \t!descriptiontag -\let\t!constructioncontent\t!descriptioncontent -\let\t!constructionsymbol \t!descriptionsymbol - -\def\t!verbatimblock      {verbatimblock}          % Code -\def\t!verbatimlines      {verbatimlines}          % Code -\def\t!verbatimline       {verbatimline}           % Code -\def\t!verbatim           {verbatim}               % Code - -\def\t!lines              {lines}                  % Code -\def\t!line               {line}                   % Code - -\def\t!sorting            {sorting}                % Span -\def\t!synonym            {synonym}                % Span - -\def\t!register           {register}               % Div -\def\t!registersection    {registersection}        % Div -\def\t!registertag        {registertag}            % Span -\def\t!registerentries    {registerentries}        % Div -\def\t!registerentry      {registerentry}          % Span -\def\t!registersee        {registersee}            % Span -\def\t!registerpages      {registerpages}          % Span -\def\t!registerpage       {registerpage}           % Span -\def\t!registerpagerange  {registerpagerange}      % Span - -\def\t!table              {table}                  % Table -\def\t!tablerow           {tablerow}               % TR -\def\t!tablecell          {tablecell}              % TD -\def\t!tabulate           {tabulate}               % Table -\def\t!tabulaterow        {tabulaterow}            % TR -\def\t!tabulatecell       {tabulatecell}           % TD - -\def\t!math               {math}                   % math -\def\t!mathtable          {mtable}                 % Table -\def\t!mathtablerow       {mtr}                    % TR -\def\t!mathtablecell      {mtd}                    % TD -\def\t!mathaction         {maction}                % - -\def\t!list               {list}                   % TOC -\def\t!listitem           {listitem}               % TOCI -\def\t!listtag            {listtag}                % Lbl -\def\t!listcontent        {listcontent}            % P -\def\t!listdata           {listdata}               % P -\def\t!listpage           {listpage}               % Reference - -\def\t!delimitedblock     {delimited}              % BlockQuote -\def\t!delimited          {delimited}              % Quote -\def\t!subsentence        {subsentence}            % Span - -\def\t!float              {float}                  % Div -\def\t!floatcaption       {floatcaption}           % Caption -\def\t!floatlabel         {floatlabel}             % Span -\def\t!floattext          {floattext}              % Span -\def\t!floatnumber        {floatnumber}            % Span -\def\t!floatcontent       {floatcontent}           % P - -\def\t!image              {image}                  % P - -\def\t!mpgraphic          {mpgraphic}              % P - -\def\t!formulaset         {formulaset}             % Div -\def\t!formula            {formula}                % Div -\def\t!formulacaption     {formulacaption}         % Span -\def\t!formulalabel       {formulalabel}           % Span -\def\t!formulanumber      {formulanumber}          % P -\def\t!formulacontent     {formulacontent}         % P -\def\t!subformula         {subformula}             % Div - -\def\t!link               {link}                   % Link - -\def\t!margintext         {margintext}             % Span -\def\t!margintextblock    {margintextblock}        % Div +\def\t!document              {document}               % Div + +\def\t!division              {division}               % Div +\def\t!paragraph             {paragraph}              % P +\def\t!p                     {p}                      % P +\def\t!construct             {construct}              % Span +\def\t!highlight             {highlight}              % Span + +\def\t!section               {section}                % Sect +\def\t!sectiontitle          {sectiontitle}           % H +\def\t!sectionnumber         {sectionnumber}          % H +\def\t!sectioncontent        {sectioncontent}         % Div + +\def\t!itemgroup             {itemgroup}              % L +\def\t!item                  {item}                   % Li +\def\t!itemtag               {itemtag}                % Lbl +\def\t!itemcontent           {itemcontent}            % LBody + +\def\t!description           {description}            % Li +\def\t!descriptiontag        {descriptiontag}         % Lbl +\def\t!descriptioncontent    {descriptioncontent}     % LBody +\def\t!descriptionsymbol     {descriptionsymbol}      % Span + +\let\t!construction          \t!description +\let\t!constructiontag       \t!descriptiontag +\let\t!constructioncontent   \t!descriptioncontent +\let\t!constructionsymbol    \t!descriptionsymbol + +\def\t!verbatimblock         {verbatimblock}          % Code +\def\t!verbatimlines         {verbatimlines}          % Code +\def\t!verbatimline          {verbatimline}           % Code +\def\t!verbatim              {verbatim}               % Code + +\def\t!lines                 {lines}                  % Code +\def\t!line                  {line}                   % Code + +\def\t!sorting               {sorting}                % Span +\def\t!synonym               {synonym}                % Span + +\def\t!register              {register}               % Div +\def\t!registersection       {registersection}        % Div +\def\t!registertag           {registertag}            % Span +\def\t!registerentries       {registerentries}        % Div +\def\t!registerentry         {registerentry}          % Span +\def\t!registercontent       {registercontent}        % Span +\def\t!registersee           {registersee}            % Span +\def\t!registerpages         {registerpages}          % Span +\def\t!registerpage          {registerpage}           % Span +\def\t!registerpagerange     {registerpagerange}      % Span +\def\t!registerseparator     {registerseparator}      % Span + +\def\t!table                 {table}                  % Table +\def\t!tablerow              {tablerow}               % TR +\def\t!tablecell             {tablecell}              % TD +\def\t!tabulate              {tabulate}               % Table +\def\t!tabulaterow           {tabulaterow}            % TR +\def\t!tabulatecell          {tabulatecell}           % TD + +\def\t!math                  {math}                   % math +\def\t!mathtable             {mtable}                 % Table +\def\t!mathtablerow          {mtr}                    % TR +\def\t!mathtablecell         {mtd}                    % TD +\def\t!mathaction            {maction}                % + +\def\t!list                  {list}                   % TOC +\def\t!listitem              {listitem}               % TOCI +\def\t!listtag               {listtag}                % Lbl +\def\t!listcontent           {listcontent}            % P +\def\t!listdata              {listdata}               % P +\def\t!listpage              {listpage}               % Reference + +\def\t!delimitedblock        {delimited}              % BlockQuote +\def\t!delimited             {delimited}              % Quote +\def\t!subsentence           {subsentence}            % Span + +\def\t!float                 {float}                  % Div +\def\t!floatcaption          {floatcaption}           % Caption +\def\t!floatlabel            {floatlabel}             % Span +\def\t!floattext             {floattext}              % Span +\def\t!floatnumber           {floatnumber}            % Span +\def\t!floatcontent          {floatcontent}           % P + +\def\t!image                 {image}                  % P + +\def\t!mpgraphic             {mpgraphic}              % P + +\def\t!formulaset            {formulaset}             % Div +\def\t!formula               {formula}                % Div +\def\t!formulacaption        {formulacaption}         % Span +\def\t!formulalabel          {formulalabel}           % Span +\def\t!formulanumber         {formulanumber}          % P +\def\t!formulacontent        {formulacontent}         % P +\def\t!subformula            {subformula}             % Div + +\def\t!link                  {link}                   % Link + +\def\t!margintext            {margintext}             % Span +\def\t!margintextblock       {margintextblock}        % Div  % we might opt for verbose variants so this is experimental: -\def\t!label              {label}                  % Span -\def\t!number             {number}                 % Span +\def\t!label                 {label}                  % Span +\def\t!number                {number}                 % Span -\def\t!ignore             {ignore}                 % Span +\def\t!ignore                {ignore}                 % Span -\def\t!mid                {mid}                    % Span -\def\t!sub                {sub}                    % Span -\def\t!sup                {sup}                    % Span -\def\t!subsup             {subsup}                 % Span +\def\t!mid                   {mid}                    % Span +\def\t!sub                   {sub}                    % Span +\def\t!sup                   {sup}                    % Span +\def\t!subsup                {subsup}                 % Span -\def\t!unit               {unit}                   % Span -\def\t!quantity           {quantity}               % Span -\def\t!number             {number}                 % Span +\def\t!unit                  {unit}                   % Span +\def\t!quantity              {quantity}               % Span +\def\t!number                {number}                 % Span -\def\t!combination        {combination}            % Span -\def\t!combinationpair    {combinationpair}        % Span -\def\t!combinationcontent {combinationcontent}     % Span -\def\t!combinationcaption {combinationcaption}     % Span +\def\t!combination           {combination}            % Span +\def\t!combinationpair       {combinationpair}        % Span +\def\t!combinationcontent    {combinationcontent}     % Span +\def\t!combinationcaption    {combinationcaption}     % Span  % \setuptaglabeltext  %   [en] diff --git a/tex/context/base/trac-set.lua b/tex/context/base/trac-set.lua index 95fdc43b3..569bb90ea 100644 --- a/tex/context/base/trac-set.lua +++ b/tex/context/base/trac-set.lua @@ -37,7 +37,7 @@ function setters.initialize(filename,name,values) -- filename only for diagnosti          local data = setter.data          if data then              for key, newvalue in next, values do -                local newvalue = is_boolean(newvalue,newvalue) +                local newvalue = is_boolean(newvalue,newvalue,true) -- strict                  local functions = data[key]                  if functions then                      local oldvalue = functions.value @@ -97,7 +97,7 @@ local function set(t,what,newvalue)              elseif not value then                  value = false -- catch nil              else -                value = is_boolean(value,value) +                value = is_boolean(value,value,true) -- strict              end              w = topattern(w,true,true)              for name, functions in next, data do diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 8f6709c1d..12ab1211d 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@  -- merged file : luatex-fonts-merged.lua  -- parent file : luatex-fonts.lua --- merge date  : 08/27/14 12:34:38 +-- merge date  : 08/28/14 19:35:24  do -- begin closure to overcome local limits and interference @@ -2581,11 +2581,11 @@ function string.booleanstring(str)      return str=="yes" or str=="on" or str=="t"    end  end -function string.is_boolean(str,default) +function string.is_boolean(str,default,strict)    if type(str)=="string" then -    if str=="true" or str=="yes" or str=="on" or str=="t" or str=="1" then +    if str=="true" or str=="yes" or str=="on" or str=="t" or (not strict and str=="1") then        return true -    elseif str=="false" or str=="no" or str=="off" or str=="f" or str=="0" then +    elseif str=="false" or str=="no" or str=="off" or str=="f" or (not strict and str=="0") then        return false      end    end | 
