From ffb7a5f21df9b0802cb00f9ef3578209a372ae2f Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Fri, 6 Aug 2021 02:07:31 +0200 Subject: 2021-08-06 01:21:00 --- scripts/context/lua/mtxrun.lua | 15 ++++---- scripts/context/stubs/mswin/mtxrun.lua | 15 ++++---- scripts/context/stubs/unix/mtxrun | 15 ++++---- scripts/context/stubs/win64/mtxrun.lua | 15 ++++---- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkii/mult-ro.mkii | 25 ++++++++++++++ tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/data-bin.lua | 14 +++++++- tex/context/base/mkiv/data-inp.lua | 3 ++ tex/context/base/mkiv/grph-img.lua | 23 +++++++++---- tex/context/base/mkiv/status-files.pdf | Bin 24898 -> 24911 bytes tex/context/base/mkiv/status-lua.pdf | Bin 250052 -> 250103 bytes tex/context/base/mkiv/strc-blk.mkiv | 4 +-- tex/context/base/mkiv/util-prs.lua | 2 +- tex/context/base/mkiv/util-str.lua | 2 +- tex/context/base/mkxl/cont-new.mkxl | 2 +- tex/context/base/mkxl/context.mkxl | 2 +- tex/context/base/mkxl/grph-inc.lmt | 26 +++++++++++--- tex/context/base/mkxl/layo-ini.lmt | 8 +++-- tex/context/base/mkxl/lpdf-img.lmt | 38 ++++++++++++++++----- tex/context/base/mkxl/strc-not.mklx | 2 +- tex/context/interface/mkii/keys-ro.xml | 25 ++++++++++++++ tex/generic/context/luatex/luatex-fonts-merged.lua | 4 +-- 25 files changed, 188 insertions(+), 60 deletions(-) diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 1f85f9fe7..2732fc8a4 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -6890,7 +6890,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\020'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) @@ -9236,7 +9236,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-prs"] = package.loaded["util-prs"] or true --- original size: 24683, stripped down to: 16431 +-- original size: 24692, stripped down to: 16432 if not modules then modules={} end modules ['util-prs']={ version=1.001, @@ -9730,7 +9730,7 @@ local cache={} local spaces=lpegpatterns.space^0 local dummy=function() end setmetatableindex(cache,function(t,k) - local separator=P(k) + local separator=S(k) local value=(1-separator)^0 local pattern=spaces*C(value)*separator^0*Cp() t[k]=pattern @@ -23903,7 +23903,7 @@ do -- create closure to overcome 200 locals limit package.loaded["data-inp"] = package.loaded["data-inp"] or true --- original size: 910, stripped down to: 818 +-- original size: 1050, stripped down to: 946 if not modules then modules={} end modules ['data-inp']={ version=1.001, @@ -23919,12 +23919,15 @@ local registermethod=resolvers.registermethod local finders=allocate { helpers={},notfound=function() end } local openers=allocate { helpers={},notfound=function() end } local loaders=allocate { helpers={},notfound=function() return false,nil,0 end } +local tracers=allocate { helpers={},notfound=function() end } registermethod("finders",finders,"uri") registermethod("openers",openers,"uri") registermethod("loaders",loaders,"uri") +registermethod("tracers",tracers,"uri") resolvers.finders=finders resolvers.openers=openers resolvers.loaders=loaders +resolvers.tracers=tracers end -- of closure @@ -25932,8 +25935,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.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-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.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 libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1026329 --- stripped bytes : 402829 +-- original bytes : 1026478 +-- stripped bytes : 402849 -- end library merge diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 1f85f9fe7..2732fc8a4 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -6890,7 +6890,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\020'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) @@ -9236,7 +9236,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-prs"] = package.loaded["util-prs"] or true --- original size: 24683, stripped down to: 16431 +-- original size: 24692, stripped down to: 16432 if not modules then modules={} end modules ['util-prs']={ version=1.001, @@ -9730,7 +9730,7 @@ local cache={} local spaces=lpegpatterns.space^0 local dummy=function() end setmetatableindex(cache,function(t,k) - local separator=P(k) + local separator=S(k) local value=(1-separator)^0 local pattern=spaces*C(value)*separator^0*Cp() t[k]=pattern @@ -23903,7 +23903,7 @@ do -- create closure to overcome 200 locals limit package.loaded["data-inp"] = package.loaded["data-inp"] or true --- original size: 910, stripped down to: 818 +-- original size: 1050, stripped down to: 946 if not modules then modules={} end modules ['data-inp']={ version=1.001, @@ -23919,12 +23919,15 @@ local registermethod=resolvers.registermethod local finders=allocate { helpers={},notfound=function() end } local openers=allocate { helpers={},notfound=function() end } local loaders=allocate { helpers={},notfound=function() return false,nil,0 end } +local tracers=allocate { helpers={},notfound=function() end } registermethod("finders",finders,"uri") registermethod("openers",openers,"uri") registermethod("loaders",loaders,"uri") +registermethod("tracers",tracers,"uri") resolvers.finders=finders resolvers.openers=openers resolvers.loaders=loaders +resolvers.tracers=tracers end -- of closure @@ -25932,8 +25935,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.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-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.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 libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1026329 --- stripped bytes : 402829 +-- original bytes : 1026478 +-- stripped bytes : 402849 -- end library merge diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 1f85f9fe7..2732fc8a4 100644 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -6890,7 +6890,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\020'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) @@ -9236,7 +9236,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-prs"] = package.loaded["util-prs"] or true --- original size: 24683, stripped down to: 16431 +-- original size: 24692, stripped down to: 16432 if not modules then modules={} end modules ['util-prs']={ version=1.001, @@ -9730,7 +9730,7 @@ local cache={} local spaces=lpegpatterns.space^0 local dummy=function() end setmetatableindex(cache,function(t,k) - local separator=P(k) + local separator=S(k) local value=(1-separator)^0 local pattern=spaces*C(value)*separator^0*Cp() t[k]=pattern @@ -23903,7 +23903,7 @@ do -- create closure to overcome 200 locals limit package.loaded["data-inp"] = package.loaded["data-inp"] or true --- original size: 910, stripped down to: 818 +-- original size: 1050, stripped down to: 946 if not modules then modules={} end modules ['data-inp']={ version=1.001, @@ -23919,12 +23919,15 @@ local registermethod=resolvers.registermethod local finders=allocate { helpers={},notfound=function() end } local openers=allocate { helpers={},notfound=function() end } local loaders=allocate { helpers={},notfound=function() return false,nil,0 end } +local tracers=allocate { helpers={},notfound=function() end } registermethod("finders",finders,"uri") registermethod("openers",openers,"uri") registermethod("loaders",loaders,"uri") +registermethod("tracers",tracers,"uri") resolvers.finders=finders resolvers.openers=openers resolvers.loaders=loaders +resolvers.tracers=tracers end -- of closure @@ -25932,8 +25935,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.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-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.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 libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1026329 --- stripped bytes : 402829 +-- original bytes : 1026478 +-- stripped bytes : 402849 -- end library merge diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua index 1f85f9fe7..2732fc8a4 100644 --- a/scripts/context/stubs/win64/mtxrun.lua +++ b/scripts/context/stubs/win64/mtxrun.lua @@ -6890,7 +6890,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\020'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) @@ -9236,7 +9236,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-prs"] = package.loaded["util-prs"] or true --- original size: 24683, stripped down to: 16431 +-- original size: 24692, stripped down to: 16432 if not modules then modules={} end modules ['util-prs']={ version=1.001, @@ -9730,7 +9730,7 @@ local cache={} local spaces=lpegpatterns.space^0 local dummy=function() end setmetatableindex(cache,function(t,k) - local separator=P(k) + local separator=S(k) local value=(1-separator)^0 local pattern=spaces*C(value)*separator^0*Cp() t[k]=pattern @@ -23903,7 +23903,7 @@ do -- create closure to overcome 200 locals limit package.loaded["data-inp"] = package.loaded["data-inp"] or true --- original size: 910, stripped down to: 818 +-- original size: 1050, stripped down to: 946 if not modules then modules={} end modules ['data-inp']={ version=1.001, @@ -23919,12 +23919,15 @@ local registermethod=resolvers.registermethod local finders=allocate { helpers={},notfound=function() end } local openers=allocate { helpers={},notfound=function() end } local loaders=allocate { helpers={},notfound=function() return false,nil,0 end } +local tracers=allocate { helpers={},notfound=function() end } registermethod("finders",finders,"uri") registermethod("openers",openers,"uri") registermethod("loaders",loaders,"uri") +registermethod("tracers",tracers,"uri") resolvers.finders=finders resolvers.openers=openers resolvers.loaders=loaders +resolvers.tracers=tracers end -- of closure @@ -25932,8 +25935,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.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-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.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 libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1026329 --- stripped bytes : 402829 +-- original bytes : 1026478 +-- stripped bytes : 402849 -- end library merge diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 7853fc50f..a901e296e 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2021.08.04 17:48} +\newcontextversion{2021.08.06 01:19} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii index 1dab0354a..99705f3bd 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2021.08.04 17:48} +\edef\contextversion{2021.08.06 01:19} %D For those who want to use this: diff --git a/tex/context/base/mkii/mult-ro.mkii b/tex/context/base/mkii/mult-ro.mkii index c6897ce88..50a9ea08f 100644 --- a/tex/context/base/mkii/mult-ro.mkii +++ b/tex/context/base/mkii/mult-ro.mkii @@ -79,6 +79,7 @@ \setinterfacevariable{anchor}{anchor} \setinterfacevariable{and}{and} \setinterfacevariable{answerarea}{answerarea} +\setinterfacevariable{append}{append} \setinterfacevariable{appendices}{apendixuri} \setinterfacevariable{appendix}{apendix} \setinterfacevariable{april}{aprilie} @@ -207,6 +208,8 @@ \setinterfacevariable{fixed}{fixat} \setinterfacevariable{flexible}{flexibil} \setinterfacevariable{float}{obiectmobil} +\setinterfacevariable{flushbackward}{flushbackward} +\setinterfacevariable{flushforward}{flushforward} \setinterfacevariable{flushinner}{flushinner} \setinterfacevariable{flushleft}{flushleft} \setinterfacevariable{flushouter}{flushouter} @@ -434,6 +437,7 @@ \setinterfacevariable{postscript}{postscript} \setinterfacevariable{precedingpage}{precedingpage} \setinterfacevariable{preference}{preferinta} +\setinterfacevariable{prepend}{prepend} \setinterfacevariable{preview}{previzualizare} \setinterfacevariable{previous}{precedent} \setinterfacevariable{previousevenpage}{paginaparaprecedenta} @@ -1236,6 +1240,7 @@ \setinterfaceconstant{splitoffset}{splitoffset} \setinterfaceconstant{spot}{spot} \setinterfaceconstant{stack}{stack} +\setinterfaceconstant{stacking}{stacking} \setinterfaceconstant{stackname}{stackname} \setinterfaceconstant{start}{start} \setinterfaceconstant{starter}{starter} @@ -1364,6 +1369,8 @@ \setinterfaceelement{load}{incarca} \setinterfaceelement{local}{local} \setinterfaceelement{makeup}{makeup} +\setinterfaceelement{namednotation}{namednotation} +\setinterfaceelement{namedtyping}{namedtyping} \setinterfaceelement{next}{urmatorul} \setinterfaceelement{place}{pune} \setinterfaceelement{previous}{precedent} @@ -1532,6 +1539,7 @@ \setinterfacecommand{definereferencelist}{definestelistareferinte} \setinterfacecommand{defineregister}{definesteregistru} \setinterfacecommand{definerule}{definesterigla} +\setinterfacecommand{definesavebuffer}{startsavebuffer} \setinterfacecommand{definesection}{definestesectiune} \setinterfacecommand{definesectionblock}{definesteblocsectiune} \setinterfacecommand{definesorting}{definestesortare} @@ -1708,6 +1716,9 @@ \setinterfacecommand{moveformula}{moveformula} \setinterfacecommand{moveongrid}{mutapegrid} \setinterfacecommand{movesidefloat}{movesidefloat} +\setinterfacecommand{namedconstruction}{namedconstruction} +\setinterfacecommand{nameddescription}{nameddescription} +\setinterfacecommand{namedenumeration}{namedenumeration} \setinterfacecommand{navigating}{navigating} \setinterfacecommand{nodimension}{faradimensiune} \setinterfacecommand{noheaderandfooterlines}{faraliniiantetsisubsol} @@ -2079,6 +2090,13 @@ \setinterfacecommand{startmakeup}{startmakeup} \setinterfacecommand{startmarginblock}{startblocmarginal} \setinterfacecommand{startmarginrule}{startliniemargine} +\setinterfacecommand{startnamedconstruction}{startnamedconstruction} +\setinterfacecommand{startnameddescription}{startnameddescription} +\setinterfacecommand{startnamedenumeration}{startnamedenumeration} +\setinterfacecommand{startnamedmatrix}{startnamedmatrix} +\setinterfacecommand{startnamedsection}{startnamedsection} +\setinterfacecommand{startnamedsubformulas}{startnamedsubformulas} +\setinterfacecommand{startnamedtyping}{startnamedtyping} \setinterfacecommand{startnarrower}{startingust} \setinterfacecommand{startopposite}{startopozit} \setinterfacecommand{startoverlay}{startoverlay} @@ -2122,6 +2140,13 @@ \setinterfacecommand{stopmakeup}{stopmakeup} \setinterfacecommand{stopmarginblock}{stopblocmarginal} \setinterfacecommand{stopmarginrule}{stopliniemargine} +\setinterfacecommand{stopnamedconstruction}{stopnamedconstruction} +\setinterfacecommand{stopnameddescription}{stopnameddescription} +\setinterfacecommand{stopnamedenumeration}{stopnamedenumeration} +\setinterfacecommand{stopnamedmatrix}{stopnamedmatrix} +\setinterfacecommand{stopnamedsection}{stopnamedsection} +\setinterfacecommand{stopnamedsubformulas}{stopnamedsubformulas} +\setinterfacecommand{stopnamedtyping}{stopnamedtyping} \setinterfacecommand{stopnarrower}{stopingust} \setinterfacecommand{stopopposite}{stopopozit} \setinterfacecommand{stopoverlay}{stopoverlay} diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 29108424f..9863f8484 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2021.08.04 17:48} +\newcontextversion{2021.08.06 01:19} %D This file is loaded at runtime, thereby providing an excellent place for hacks, %D patches, extensions and new features. There can be local overloads in cont-loc diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index aa17074b9..e984d930d 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -45,7 +45,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2021.08.04 17:48} +\edef\contextversion{2021.08.06 01:19} %D Kind of special: diff --git a/tex/context/base/mkiv/data-bin.lua b/tex/context/base/mkiv/data-bin.lua index 2bac901ea..f455f7d9a 100644 --- a/tex/context/base/mkiv/data-bin.lua +++ b/tex/context/base/mkiv/data-bin.lua @@ -8,7 +8,8 @@ if not modules then modules = { } end modules ['data-bin'] = { local resolvers = resolvers local methodhandler = resolvers.methodhandler -local notfound = resolvers.loaders.notfound + +local notfound = resolvers.loaders.notfound function resolvers.findbinfile(filename,filetype) return methodhandler('finders',filename,filetype) @@ -28,3 +29,14 @@ function resolvers.loadbinfile(filename,filetype) return notfound() end end + +local notfound = resolvers.cleaners.notfound + +function resolvers.cleanupbinfile(filename) + local fname = methodhandler('finders',filename) + if fname and fname ~= "" then + return methodhandler('cleaners',fname) + else + return notfound() + end +end diff --git a/tex/context/base/mkiv/data-inp.lua b/tex/context/base/mkiv/data-inp.lua index 97fb8904b..569a66f4e 100644 --- a/tex/context/base/mkiv/data-inp.lua +++ b/tex/context/base/mkiv/data-inp.lua @@ -15,11 +15,14 @@ local registermethod = resolvers.registermethod local finders = allocate { helpers = { }, notfound = function() end } local openers = allocate { helpers = { }, notfound = function() end } local loaders = allocate { helpers = { }, notfound = function() return false, nil, 0 end } +local tracers = allocate { helpers = { }, notfound = function() end } registermethod("finders", finders, "uri") registermethod("openers", openers, "uri") registermethod("loaders", loaders, "uri") +registermethod("tracers", tracers, "uri") resolvers.finders = finders resolvers.openers = openers resolvers.loaders = loaders +resolvers.tracers = tracers diff --git a/tex/context/base/mkiv/grph-img.lua b/tex/context/base/mkiv/grph-img.lua index a982965ff..43299a84c 100644 --- a/tex/context/base/mkiv/grph-img.lua +++ b/tex/context/base/mkiv/grph-img.lua @@ -24,6 +24,15 @@ local graphics = graphics or { } local identifiers = { } graphics.identifiers = identifiers +local function checkedmethod(filename,method) + if method ~= "string" then + local found, data = resolvers.loadbinfile(filename) + return data, "string" + else + return filename, method + end +end + do local colorspaces = { @@ -222,6 +231,7 @@ do specification.error = "invalid filename" return specification -- error end + filename, method = checkedmethod(filename,method) local f = newreader(filename,method) if not f then specification.error = "unable to open file" @@ -454,6 +464,7 @@ do specification.error = "invalid filename" return specification -- error end + filename, method = checkedmethod(filename,method) local f = newreader(filename,method) if not f then specification.error = "unable to open file" @@ -558,6 +569,7 @@ do specification.error = "invalid filename" return specification -- error end + filename, method = checkedmethod(filename,method) local f = newreader(filename,method) if not f then specification.error = "unable to open file" @@ -727,21 +739,18 @@ end function graphics.identify(filename,filetype) local identify = filetype and identifiers[filetype] - if identify then - return identify(filename) + if not identify then + identify = identifiers[suffixonly(filename)] end - local identify = identifiers[suffixonly(filename)] if identify then - identify = identify(filename) + return identify(filename) else - identify = { + return { filename = filename, filetype = filetype, error = "identification failed", } end - -- inspect(identify) - return identify end -- inspect(identifiers.jpg("t:/sources/hacker.jpg")) diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index 873f89595..912ec565f 100644 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index 2de5b578b..6c3ca2ec2 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf differ diff --git a/tex/context/base/mkiv/strc-blk.mkiv b/tex/context/base/mkiv/strc-blk.mkiv index 0b41b6dc2..3541d2852 100644 --- a/tex/context/base/mkiv/strc-blk.mkiv +++ b/tex/context/base/mkiv/strc-blk.mkiv @@ -1,4 +1,4 @@ -D \module +%D \module %D [ file=strc-blk, %D version=2008.10.20, %D title=\CONTEXT\ Structure Macros, @@ -177,6 +177,6 @@ D \module \unexpanded\def\processblocks{\doquadrupleempty\strc_blocks_select [process]} \unexpanded\def\selectblocks {\doquadrupleempty\strc_blocks_select [use]} -unexpanded\def\doifelseblocksempty{\clf_doifelsestructureblocksempty} % {name}{tag}{criterium} +\unexpanded\def\doifelseblocksempty{\clf_doifelsestructureblocksempty} % {name}{tag}{criterium} \protect \endinput diff --git a/tex/context/base/mkiv/util-prs.lua b/tex/context/base/mkiv/util-prs.lua index 6d2f8c19e..7e2bf0110 100644 --- a/tex/context/base/mkiv/util-prs.lua +++ b/tex/context/base/mkiv/util-prs.lua @@ -681,7 +681,7 @@ local spaces = lpegpatterns.space^0 local dummy = function() end setmetatableindex(cache,function(t,k) - local separator = P(k) + local separator = S(k) -- was P local value = (1-separator)^0 local pattern = spaces * C(value) * separator^0 * Cp() t[k] = pattern diff --git a/tex/context/base/mkiv/util-str.lua b/tex/context/base/mkiv/util-str.lua index e58befe30..67146d80f 100644 --- a/tex/context/base/mkiv/util-str.lua +++ b/tex/context/base/mkiv/util-str.lua @@ -635,7 +635,7 @@ return function(%s) return %s end local pattern = Cs(Cc('"') * ( (1-S('"\\\n\r'))^1 + P('"') / '\\034' - + P('\\') / '\\020' + + P('\\') / '\\092' + P('\n') / '\\013' + P('\r') / '\\010' )^0 * Cc('"')) diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl index 3b0b1b446..d7196efb4 100644 --- a/tex/context/base/mkxl/cont-new.mkxl +++ b/tex/context/base/mkxl/cont-new.mkxl @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2021.08.04 17:48} +\newcontextversion{2021.08.06 01:19} %D This file is loaded at runtime, thereby providing an excellent place for hacks, %D patches, extensions and new features. There can be local overloads in cont-loc diff --git a/tex/context/base/mkxl/context.mkxl b/tex/context/base/mkxl/context.mkxl index d90cbc657..75388d7b3 100644 --- a/tex/context/base/mkxl/context.mkxl +++ b/tex/context/base/mkxl/context.mkxl @@ -29,7 +29,7 @@ %D {YYYY.MM.DD HH:MM} format. \immutable\edef\contextformat {\jobname} -\immutable\edef\contextversion{2021.08.04 17:48} +\immutable\edef\contextversion{2021.08.06 01:19} %overloadmode 1 % check frozen / warning %overloadmode 2 % check frozen / error diff --git a/tex/context/base/mkxl/grph-inc.lmt b/tex/context/base/mkxl/grph-inc.lmt index f5784f2db..6700a1171 100644 --- a/tex/context/base/mkxl/grph-inc.lmt +++ b/tex/context/base/mkxl/grph-inc.lmt @@ -441,14 +441,14 @@ function figures.setorder(list) -- can be table or string end end -local function guessfromstring(str) +local function guessfromstring(str,name) if str then for i=1,#figures_magics do local pattern = figures_magics[i] if lpegmatch(pattern.pattern,str) then local format = pattern.format - if trace_figures then - report_inclusion("file %a has format %a",filename,format) + if trace_figures and name then + report_inclusion("file %a has format %a",name,format) end return format end @@ -1023,14 +1023,30 @@ local function locate(request) -- name, format, cache end else local foundname = resolvers.findbinfile(askedname) - if not foundname or not isfile(foundname) then -- foundname can be dummy + -- we need a neutral isfile + if foundname then + if hashed.scheme == "file" and not isfile(foundname) then + foundname = false + end + end + if not foundname then -- foundname can be dummy if trace_figures then report_inclusion("unknown url %a",askedname) end -- url not found return register(askedname) end - local guessedformat = figures.guess(foundname) + -- ok for now but we need a loadbinfile option to emulate a file + -- so that we justy share it .. we now rely on os caching of files + -- but normally scheme based files are not that large anyway + local guessedformat = false + if hashed.scheme == "file" then + guessedformat = figures.guess(foundname) + else + -- kind of costly: todo pseudo file and just acccess + local found, data = resolvers.loadbinfile(foundname) + guessedformat = figures.guessfromstring(data) + end if askedformat ~= guessedformat then if trace_figures then report_inclusion("url %a has unknown format",askedname) diff --git a/tex/context/base/mkxl/layo-ini.lmt b/tex/context/base/mkxl/layo-ini.lmt index 1570075d9..1919558ed 100644 --- a/tex/context/base/mkxl/layo-ini.lmt +++ b/tex/context/base/mkxl/layo-ini.lmt @@ -96,8 +96,12 @@ function layouts.setupcanvas(specification) canvas.marked = specification.print -- local copies = specification.copies - if type(copies) == "number" and copies < 2 then - canvas.copies = false + if type(copies) == "number" then + if copies < 2 then + canvas.copies = false + else + canvas.copies = copies + end end -- local doublesided = specification.doublesided diff --git a/tex/context/base/mkxl/lpdf-img.lmt b/tex/context/base/mkxl/lpdf-img.lmt index f937f2ed4..95235959e 100644 --- a/tex/context/base/mkxl/lpdf-img.lmt +++ b/tex/context/base/mkxl/lpdf-img.lmt @@ -75,14 +75,36 @@ trackers.register("graphics.backend", function(v) trace = v end) local injectors = { } lpdf.injectors = injectors --- todo: load from a virtual file +-- local function loadcontent(filename,method) +-- return method == "string" and filename or loaddata(filename) +-- end + +-- local function newcontent(filename,method) +-- return newreader(filename,method) +-- end -local function loadcontent(filename,method) - return method == "string" and filename or loaddata(filename) +local function loadcontent(filename,method,wipe) + if method == "string" then + return filename + else + local found, data = resolvers.loadbinfile(filename) + if wipe then + resolvers.cleanupbinfile(filename) + end + return data + end end -local function newcontent(filename,method) - return newreader(filename,method) +local function newcontent(filename,method,wipe) + if method == "string" then + return newreader(filename,method) + else + local found, data = resolvers.loadbinfile(filename) + if wipe then + resolvers.cleanupbinfile(filename) + end + return newreader(data or "", "string") + end end -- @@ -118,7 +140,7 @@ do local xsize = specification.xsize local ysize = specification.ysize local colordepth = specification.colordepth - local content = loadcontent(filename,method) + local content = loadcontent(filename,method,true) local xobject = pdfdictionary { Type = pdfconstant("XObject"), Subtype = pdfconstant("Image"), @@ -160,7 +182,7 @@ do -- todo: set filename local xsize = specification.xsize local ysize = specification.ysize - local content = loadcontent(filename,method) + local content = loadcontent(filename,method,true) local xobject = pdfdictionary { Type = pdfconstant("XObject"), Subtype = pdfconstant("Image"), @@ -972,7 +994,7 @@ do if not idat then return end - local pngfile = newcontent(filename,method) + local pngfile = newcontent(filename,method,true) if not pngfile then return end diff --git a/tex/context/base/mkxl/strc-not.mklx b/tex/context/base/mkxl/strc-not.mklx index e9038b1b9..857e7ce24 100644 --- a/tex/context/base/mkxl/strc-not.mklx +++ b/tex/context/base/mkxl/strc-not.mklx @@ -305,7 +305,7 @@ \expandafter\strc_notations_start_setups \else \expandafter\strc_notations_start_reference - \fi#1[#2]} + \fi#1[#3]} \let\strc_notations_pickup_yes\relax diff --git a/tex/context/interface/mkii/keys-ro.xml b/tex/context/interface/mkii/keys-ro.xml index eb60b4b58..e53fbb198 100644 --- a/tex/context/interface/mkii/keys-ro.xml +++ b/tex/context/interface/mkii/keys-ro.xml @@ -82,6 +82,7 @@ + @@ -210,6 +211,8 @@ + + @@ -437,6 +440,7 @@ + @@ -1242,6 +1246,7 @@ + @@ -1373,6 +1378,8 @@ + + @@ -1544,6 +1551,7 @@ + @@ -1720,6 +1728,9 @@ + + + @@ -2091,6 +2102,13 @@ + + + + + + + @@ -2134,6 +2152,13 @@ + + + + + + + diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 415ca193a..472079bfb 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 : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 2021-08-04 17:48 +-- merge date : 2021-08-06 01:19 do -- begin closure to overcome local limits and interference @@ -3474,7 +3474,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\020'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) -- cgit v1.2.3