diff options
86 files changed, 486 insertions, 186 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/context/stubs/unix/mtxrun b/Build/source/texk/texlive/linked_scripts/context/stubs/unix/mtxrun index 91528360a81..0f4767d918c 100755 --- a/Build/source/texk/texlive/linked_scripts/context/stubs/unix/mtxrun +++ b/Build/source/texk/texlive/linked_scripts/context/stubs/unix/mtxrun @@ -6101,7 +6101,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 38699, stripped down to: 22142 +-- original size: 38734, stripped down to: 22142 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6913,7 +6913,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-tab"] = package.loaded["util-tab"] or true --- original size: 27665, stripped down to: 17051 +-- original size: 27741, stripped down to: 17085 if not modules then modules={} end modules ['util-tab']={ version=1.001, @@ -7051,15 +7051,16 @@ function table.tocsv(t,specification) fields=sortedkeys(t[1]) end local separator=specification.separator or "," + local noffields=#fields if specification.preamble==true then - for f=1,#fields do + for f=1,noffields do r[f]=lpegmatch(escape,tostring(fields[f])) end result[1]=concat(r,separator) end for i=1,#t do local ti=t[i] - for f=1,#fields do + for f=1,noffields do local field=ti[fields[f]] if type(field)=="string" then r[f]=lpegmatch(escape,field) @@ -7076,30 +7077,31 @@ function table.tocsv(t,specification) end local nspaces=utilities.strings.newrepeater(" ") local function toxml(t,d,result,step) + local r=#result for k,v in sortedpairs(t) do local s=nspaces[d] local tk=type(k) local tv=type(v) if tv=="table" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>"](s,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</entry>"](s,k) + r=r+1 result[r]=formatters["%s</entry>"](s,k) else - result[#result+1]=formatters["%s<%s>"](s,k) + r=r+1 result[r]=formatters["%s<%s>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</%s>"](s,k) + r=r+1 result[r]=formatters["%s</%s>"](s,k) end elseif tv=="string" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) end elseif tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%S</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%S</%s>"](s,k,v,k) end end end @@ -12113,7 +12115,7 @@ do -- create closure to overcome 200 locals limit package.loaded["lxml-tab"] = package.loaded["lxml-tab"] or true --- original size: 59638, stripped down to: 37936 +-- original size: 60383, stripped down to: 38562 if not modules then modules={} end modules ['lxml-tab']={ version=1.001, @@ -12122,7 +12124,7 @@ if not modules then modules={} end modules ['lxml-tab']={ copyright="PRAGMA ADE / ConTeXt Development Team", license="see context related readme files" } -local trace_entities=false trackers .register("xml.entities",function(v) trace_entities=v end) +local trace_entities=false trackers.register("xml.entities",function(v) trace_entities=v end) local report_xml=logs and logs.reporter("xml","core") or function(...) print(string.format(...)) end if lpeg.setmaxstack then lpeg.setmaxstack(1000) end xml=xml or {} @@ -12870,6 +12872,25 @@ local function publicentity(k,v,n) end entities[k]=v end +local function entityfile(pattern,k,v,n) + if n then + local okay,data + if resolvers then + okay,data=resolvers.loadbinfile(n) + else + data=io.loaddata(n) + okay=data and data~="" + end + if okay then + if trace_entities then + report_xml("loading public entities %a as %a from %a",k,v,n) + end + lpegmatch(pattern,data) + return + end + end + report_xml("ignoring public entities %a as %a from %a",k,v,n) +end local function install(spacenewline,spacing,anything) local anyentitycontent=(1-open-semicolon-space-close-ampersand)^0 local hexentitycontent=R("AF","af","09")^1 @@ -12921,6 +12942,9 @@ local function install(spacenewline,spacing,anything) local publicentitytype=(doctypename*somespace*P("PUBLIC")*somespace*value)/publicentity local systementitytype=(doctypename*somespace*P("SYSTEM")*somespace*value*somespace*P("NDATA")*somespace*doctypename)/systementity local entitydoctype=optionalspace*P("<!ENTITY")*somespace*(systementitytype+publicentitytype+normalentitytype+weirdentitytype)*optionalspace*close + local publicentityfile=(doctypename*somespace*P("PUBLIC")*somespace*value*(somespace*value)^0)/function(...) + entityfile(entitydoctype,...) + end local function weirdresolve(s) lpegmatch(entitydoctype,parameters[s]) end @@ -12934,7 +12958,8 @@ local function install(spacenewline,spacing,anything) local publicdoctype=doctypename*somespace*P("PUBLIC")*somespace*value*somespace*value*somespace*doctypeset local systemdoctype=doctypename*somespace*P("SYSTEM")*somespace*value*somespace*doctypeset local simpledoctype=(anything-close)^1 - local somedoctype=C((somespace*(publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) + local somedoctype=C((somespace*( +publicentityfile+publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) local instruction=(spacing*begininstruction*someinstruction*endinstruction)/function(...) add_special("@pi@",...) end local comment=(spacing*begincomment*somecomment*endcomment )/function(...) add_special("@cm@",...) end local cdata=(spacing*begincdata*somecdata*endcdata )/function(...) add_special("@cd@",...) end @@ -21321,8 +21346,8 @@ end -- of closure -- used libraries : 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-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 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 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 : 877106 --- stripped bytes : 317575 +-- original bytes : 877962 +-- stripped bytes : 317771 -- end library merge diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl index 043868bc0f5..bd8ffebbf63 100755 --- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl +++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl @@ -1,12 +1,12 @@ #!/usr/bin/env perl -# $Id: tlmgr.pl 47254 2018-04-02 23:13:43Z karl $ +# $Id: tlmgr.pl 47273 2018-04-03 22:14:30Z karl $ # # Copyright 2008-2018 Norbert Preining # This file is licensed under the GNU General Public License version 2 # or any later version. -my $svnrev = '$Revision: 47254 $'; -my $datrev = '$Date: 2018-04-03 01:13:43 +0200 (Tue, 03 Apr 2018) $'; +my $svnrev = '$Revision: 47273 $'; +my $datrev = '$Date: 2018-04-04 00:14:30 +0200 (Wed, 04 Apr 2018) $'; my $tlmgrrevision; my $tlmgrversion; my $prg; @@ -6560,11 +6560,11 @@ sub handle_gpg_config_settings { debug("will verify cryptographic signatures\n") } else { my $prefix = "$prg: No gpg found"; # just to shorten the strings - if ($opts{'verify-repo'} eq "all") { - # verification was requested on the command line, but did not succeed, die + if (defined($opts{'verify-repo'}) && $opts{'verify-repo'} eq "all") { + # verification requested on the command line, but did not succeed: die tldie("$prefix, verification explicitly requested on command line, quitting.\n"); } - if ($config{'verify-repo'} eq "all") { + if (defined($config{'verify-repo'}) && $config{'verify-repo'} eq "all") { # verification explicitly requested in config file, but not gpg, die tldie("$prefix, verification explicitly requested in config file, quitting.\n"); } @@ -9441,7 +9441,7 @@ This script and its documentation were written for the TeX Live distribution (L<http://tug.org/texlive>) and both are licensed under the GNU General Public License Version 2 or later. -$Id: tlmgr.pl 47254 2018-04-02 23:13:43Z karl $ +$Id: tlmgr.pl 47273 2018-04-03 22:14:30Z karl $ =cut # to remake HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html diff --git a/Master/bin/win32/mtxrun.lua b/Master/bin/win32/mtxrun.lua index 91528360a81..0f4767d918c 100755 --- a/Master/bin/win32/mtxrun.lua +++ b/Master/bin/win32/mtxrun.lua @@ -6101,7 +6101,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 38699, stripped down to: 22142 +-- original size: 38734, stripped down to: 22142 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6913,7 +6913,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-tab"] = package.loaded["util-tab"] or true --- original size: 27665, stripped down to: 17051 +-- original size: 27741, stripped down to: 17085 if not modules then modules={} end modules ['util-tab']={ version=1.001, @@ -7051,15 +7051,16 @@ function table.tocsv(t,specification) fields=sortedkeys(t[1]) end local separator=specification.separator or "," + local noffields=#fields if specification.preamble==true then - for f=1,#fields do + for f=1,noffields do r[f]=lpegmatch(escape,tostring(fields[f])) end result[1]=concat(r,separator) end for i=1,#t do local ti=t[i] - for f=1,#fields do + for f=1,noffields do local field=ti[fields[f]] if type(field)=="string" then r[f]=lpegmatch(escape,field) @@ -7076,30 +7077,31 @@ function table.tocsv(t,specification) end local nspaces=utilities.strings.newrepeater(" ") local function toxml(t,d,result,step) + local r=#result for k,v in sortedpairs(t) do local s=nspaces[d] local tk=type(k) local tv=type(v) if tv=="table" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>"](s,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</entry>"](s,k) + r=r+1 result[r]=formatters["%s</entry>"](s,k) else - result[#result+1]=formatters["%s<%s>"](s,k) + r=r+1 result[r]=formatters["%s<%s>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</%s>"](s,k) + r=r+1 result[r]=formatters["%s</%s>"](s,k) end elseif tv=="string" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) end elseif tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%S</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%S</%s>"](s,k,v,k) end end end @@ -12113,7 +12115,7 @@ do -- create closure to overcome 200 locals limit package.loaded["lxml-tab"] = package.loaded["lxml-tab"] or true --- original size: 59638, stripped down to: 37936 +-- original size: 60383, stripped down to: 38562 if not modules then modules={} end modules ['lxml-tab']={ version=1.001, @@ -12122,7 +12124,7 @@ if not modules then modules={} end modules ['lxml-tab']={ copyright="PRAGMA ADE / ConTeXt Development Team", license="see context related readme files" } -local trace_entities=false trackers .register("xml.entities",function(v) trace_entities=v end) +local trace_entities=false trackers.register("xml.entities",function(v) trace_entities=v end) local report_xml=logs and logs.reporter("xml","core") or function(...) print(string.format(...)) end if lpeg.setmaxstack then lpeg.setmaxstack(1000) end xml=xml or {} @@ -12870,6 +12872,25 @@ local function publicentity(k,v,n) end entities[k]=v end +local function entityfile(pattern,k,v,n) + if n then + local okay,data + if resolvers then + okay,data=resolvers.loadbinfile(n) + else + data=io.loaddata(n) + okay=data and data~="" + end + if okay then + if trace_entities then + report_xml("loading public entities %a as %a from %a",k,v,n) + end + lpegmatch(pattern,data) + return + end + end + report_xml("ignoring public entities %a as %a from %a",k,v,n) +end local function install(spacenewline,spacing,anything) local anyentitycontent=(1-open-semicolon-space-close-ampersand)^0 local hexentitycontent=R("AF","af","09")^1 @@ -12921,6 +12942,9 @@ local function install(spacenewline,spacing,anything) local publicentitytype=(doctypename*somespace*P("PUBLIC")*somespace*value)/publicentity local systementitytype=(doctypename*somespace*P("SYSTEM")*somespace*value*somespace*P("NDATA")*somespace*doctypename)/systementity local entitydoctype=optionalspace*P("<!ENTITY")*somespace*(systementitytype+publicentitytype+normalentitytype+weirdentitytype)*optionalspace*close + local publicentityfile=(doctypename*somespace*P("PUBLIC")*somespace*value*(somespace*value)^0)/function(...) + entityfile(entitydoctype,...) + end local function weirdresolve(s) lpegmatch(entitydoctype,parameters[s]) end @@ -12934,7 +12958,8 @@ local function install(spacenewline,spacing,anything) local publicdoctype=doctypename*somespace*P("PUBLIC")*somespace*value*somespace*value*somespace*doctypeset local systemdoctype=doctypename*somespace*P("SYSTEM")*somespace*value*somespace*doctypeset local simpledoctype=(anything-close)^1 - local somedoctype=C((somespace*(publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) + local somedoctype=C((somespace*( +publicentityfile+publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) local instruction=(spacing*begininstruction*someinstruction*endinstruction)/function(...) add_special("@pi@",...) end local comment=(spacing*begincomment*somecomment*endcomment )/function(...) add_special("@cm@",...) end local cdata=(spacing*begincdata*somecdata*endcdata )/function(...) add_special("@cd@",...) end @@ -21321,8 +21346,8 @@ end -- of closure -- used libraries : 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-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 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 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 : 877106 --- stripped bytes : 317575 +-- original bytes : 877962 +-- stripped bytes : 317771 -- end library merge diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf Binary files differindex 76108aa593c..dc3b916a85f 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf Binary files differindex 958c189ecfd..9c7678654ca 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf Binary files differindex 6ff801846c1..39538aa7bcd 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf Binary files differindex 195cd641155..99c12ebd625 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf Binary files differindex 900b697dd64..c687c7e39ea 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-cs.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-cs.pdf Binary files differindex 2b1369ae76d..f5bd52a9f3d 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-cs.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-cs.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-de.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-de.pdf Binary files differindex cabb087fb65..274daaf89f4 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-de.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-de.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-en.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-en.pdf Binary files differindex 33331d9e484..3aab7cf7168 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-en.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-en.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-fr.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-fr.pdf Binary files differindex 0dbd7a8472c..b327441594f 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-fr.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-fr.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-it.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-it.pdf Binary files differindex 9d59690de72..309929f729e 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-it.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-it.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-nl.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-nl.pdf Binary files differindex ca4ac558179..c6bb58d3c59 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-nl.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-nl.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-ro.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-ro.pdf Binary files differindex 50d22528f4b..a43f56921bc 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-ro.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-ro.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf Binary files differindex ed1eeec0491..ce5340b15e3 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf Binary files differindex c1530f75d95..63b27bf7a1d 100644 --- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf +++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf diff --git a/Master/texmf-dist/doc/context/sources/general/manuals/publications/publications-quick-example.tex b/Master/texmf-dist/doc/context/sources/general/manuals/publications/publications-quick-example.tex index 14f70960fd8..06d5bd527c9 100644 --- a/Master/texmf-dist/doc/context/sources/general/manuals/publications/publications-quick-example.tex +++ b/Master/texmf-dist/doc/context/sources/general/manuals/publications/publications-quick-example.tex @@ -1,16 +1,21 @@ \usebtxdataset[mkiv-publications.bib] + \starttext -\startbodymatter -a citation: \cite[article,book] -\stopbodymatter +% \startbodymatter +a citation: \citation[article,book] +% \stopbodymatter + +\enabletrackers[publ*] -\startbackmatter - \startchapter[title=Bibliography] +% \startbackmatter +% \startchapter[title=Bibliography] \placelistofpublications - \stopchapter -\stopbackmatter +% \stopchapter +% \stopbackmatter + +% \ctxlua{inspect(publications.datasets.default.luadata)} \stoptext diff --git a/Master/texmf-dist/doc/man/man1/context.man1.pdf b/Master/texmf-dist/doc/man/man1/context.man1.pdf Binary files differindex a2d5092f08d..91239a9fb26 100644 --- a/Master/texmf-dist/doc/man/man1/context.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/context.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/luatools.man1.pdf b/Master/texmf-dist/doc/man/man1/luatools.man1.pdf Binary files differindex 581ed1b4b2e..a58f2f9dd33 100644 --- a/Master/texmf-dist/doc/man/man1/luatools.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/luatools.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-babel.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-babel.man1.pdf Binary files differindex 3195dec179c..362e951ac7f 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-babel.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-babel.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-base.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-base.man1.pdf Binary files differindex 1f37436b580..d064647a85e 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-base.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-base.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-bibtex.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-bibtex.man1.pdf Binary files differindex a8f825fb464..a34b8ac460c 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-bibtex.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-bibtex.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-cache.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-cache.man1.pdf Binary files differindex b14534a7984..9b3783aa2a4 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-cache.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-cache.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-chars.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-chars.man1.pdf Binary files differindex 8fa615d098a..6122cb044c9 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-chars.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-chars.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-check.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-check.man1.pdf Binary files differindex eb0aa1b6e58..e73f546eb76 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-check.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-check.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-colors.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-colors.man1.pdf Binary files differindex 3eb322d4bdf..f06e02021d5 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-colors.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-colors.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-context.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-context.man1.pdf Binary files differindex 6eee414f702..440bd70a7ae 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-context.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-context.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-dvi.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-dvi.man1.pdf Binary files differindex 9655d07f739..58d8dd26841 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-dvi.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-dvi.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-epub.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-epub.man1.pdf Binary files differindex 38db77f8e66..b44c6bfe82b 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-epub.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-epub.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-evohome.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-evohome.man1.pdf Binary files differindex 2b200572986..f42caed8110 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-evohome.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-evohome.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-fcd.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-fcd.man1.pdf Binary files differindex 673093ec2de..ec6230d8bb5 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-fcd.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-fcd.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-flac.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-flac.man1.pdf Binary files differindex 1a8b67e43ba..0fa045ff70c 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-flac.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-flac.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-fonts.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-fonts.man1.pdf Binary files differindex 26e27d3d3de..1e5b1e979ac 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-fonts.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-fonts.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-grep.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-grep.man1.pdf Binary files differindex bae3f86f07d..953f6737cb4 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-grep.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-grep.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-interface.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-interface.man1.pdf Binary files differindex 21d94913e83..34ddccadaf3 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-interface.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-interface.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-metapost.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-metapost.man1.pdf Binary files differindex 9f0156b3542..5566a15b510 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-metapost.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-metapost.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-metatex.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-metatex.man1.pdf Binary files differindex 9ce4d26d241..815886f71f4 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-metatex.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-metatex.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-modules.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-modules.man1.pdf Binary files differindex 5c1337840b5..17d380342aa 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-modules.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-modules.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-package.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-package.man1.pdf Binary files differindex adfad5f5fd0..ae0e3afac37 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-package.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-package.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-patterns.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-patterns.man1.pdf Binary files differindex 3a15ad686d6..d18843e34be 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-patterns.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-patterns.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-pdf.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-pdf.man1.pdf Binary files differindex ac7b421877f..e7968cfcb86 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-pdf.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-pdf.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-plain.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-plain.man1.pdf Binary files differindex d71d10893ae..2a91c67baf5 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-plain.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-plain.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-profile.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-profile.man1.pdf Binary files differindex 10636975d2e..3e28a484f7c 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-profile.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-profile.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-rsync.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-rsync.man1.pdf Binary files differindex 5bfcc82e578..64b4d0327d9 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-rsync.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-rsync.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-scite.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-scite.man1.pdf Binary files differindex 690300734b6..813e0c3c4c3 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-scite.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-scite.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-server.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-server.man1.pdf Binary files differindex 68c313d5803..52791468585 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-server.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-server.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-texworks.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-texworks.man1.pdf Binary files differindex e3d585789fc..796bccbaec5 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-texworks.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-texworks.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-timing.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-timing.man1.pdf Binary files differindex bf4b5689505..ff14ed00a35 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-timing.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-timing.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-tools.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-tools.man1.pdf Binary files differindex 1f42626bf27..d1d4c981609 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-tools.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-tools.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-unicode.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-unicode.man1.pdf Binary files differindex 39df289b37d..db61c97d9df 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-unicode.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-unicode.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-unzip.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-unzip.man1.pdf Binary files differindex 75f9089beaa..ed34847043e 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-unzip.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-unzip.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-update.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-update.man1.pdf Binary files differindex 1f4e8df677b..6a248b382b1 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-update.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-update.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-watch.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-watch.man1.pdf Binary files differindex e9363993ec8..9e2765747ea 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-watch.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-watch.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtx-youless.man1.pdf b/Master/texmf-dist/doc/man/man1/mtx-youless.man1.pdf Binary files differindex 12672c76dbd..3d4aeb67c76 100644 --- a/Master/texmf-dist/doc/man/man1/mtx-youless.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtx-youless.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/mtxrun.man1.pdf b/Master/texmf-dist/doc/man/man1/mtxrun.man1.pdf Binary files differindex 10474ca1ba2..83de80c0c39 100644 --- a/Master/texmf-dist/doc/man/man1/mtxrun.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/mtxrun.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/texexec.man1.pdf b/Master/texmf-dist/doc/man/man1/texexec.man1.pdf Binary files differindex 0c2786eb2f8..e6b70f1dcd6 100644 --- a/Master/texmf-dist/doc/man/man1/texexec.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/texexec.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/texmfstart.man1.pdf b/Master/texmf-dist/doc/man/man1/texmfstart.man1.pdf Binary files differindex 124550eeeeb..c955636ba10 100644 --- a/Master/texmf-dist/doc/man/man1/texmfstart.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/texmfstart.man1.pdf diff --git a/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv b/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv index 36d6f174394..75706e09be9 100644 --- a/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv +++ b/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv @@ -1716,7 +1716,7 @@ def mfun_with_arrow_picture (text t) = for i within mfun_arrow_picture : if istextext(i) : draw i - else : + else : mfun_arrow_count := mfun_arrow_count + 1 ; mfun_arrow_path := pathpart i ; t diff --git a/Master/texmf-dist/scripts/context/lua/mtxrun.lua b/Master/texmf-dist/scripts/context/lua/mtxrun.lua index 91528360a81..0f4767d918c 100755 --- a/Master/texmf-dist/scripts/context/lua/mtxrun.lua +++ b/Master/texmf-dist/scripts/context/lua/mtxrun.lua @@ -6101,7 +6101,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 38699, stripped down to: 22142 +-- original size: 38734, stripped down to: 22142 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6913,7 +6913,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-tab"] = package.loaded["util-tab"] or true --- original size: 27665, stripped down to: 17051 +-- original size: 27741, stripped down to: 17085 if not modules then modules={} end modules ['util-tab']={ version=1.001, @@ -7051,15 +7051,16 @@ function table.tocsv(t,specification) fields=sortedkeys(t[1]) end local separator=specification.separator or "," + local noffields=#fields if specification.preamble==true then - for f=1,#fields do + for f=1,noffields do r[f]=lpegmatch(escape,tostring(fields[f])) end result[1]=concat(r,separator) end for i=1,#t do local ti=t[i] - for f=1,#fields do + for f=1,noffields do local field=ti[fields[f]] if type(field)=="string" then r[f]=lpegmatch(escape,field) @@ -7076,30 +7077,31 @@ function table.tocsv(t,specification) end local nspaces=utilities.strings.newrepeater(" ") local function toxml(t,d,result,step) + local r=#result for k,v in sortedpairs(t) do local s=nspaces[d] local tk=type(k) local tv=type(v) if tv=="table" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>"](s,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</entry>"](s,k) + r=r+1 result[r]=formatters["%s</entry>"](s,k) else - result[#result+1]=formatters["%s<%s>"](s,k) + r=r+1 result[r]=formatters["%s<%s>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</%s>"](s,k) + r=r+1 result[r]=formatters["%s</%s>"](s,k) end elseif tv=="string" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) end elseif tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%S</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%S</%s>"](s,k,v,k) end end end @@ -12113,7 +12115,7 @@ do -- create closure to overcome 200 locals limit package.loaded["lxml-tab"] = package.loaded["lxml-tab"] or true --- original size: 59638, stripped down to: 37936 +-- original size: 60383, stripped down to: 38562 if not modules then modules={} end modules ['lxml-tab']={ version=1.001, @@ -12122,7 +12124,7 @@ if not modules then modules={} end modules ['lxml-tab']={ copyright="PRAGMA ADE / ConTeXt Development Team", license="see context related readme files" } -local trace_entities=false trackers .register("xml.entities",function(v) trace_entities=v end) +local trace_entities=false trackers.register("xml.entities",function(v) trace_entities=v end) local report_xml=logs and logs.reporter("xml","core") or function(...) print(string.format(...)) end if lpeg.setmaxstack then lpeg.setmaxstack(1000) end xml=xml or {} @@ -12870,6 +12872,25 @@ local function publicentity(k,v,n) end entities[k]=v end +local function entityfile(pattern,k,v,n) + if n then + local okay,data + if resolvers then + okay,data=resolvers.loadbinfile(n) + else + data=io.loaddata(n) + okay=data and data~="" + end + if okay then + if trace_entities then + report_xml("loading public entities %a as %a from %a",k,v,n) + end + lpegmatch(pattern,data) + return + end + end + report_xml("ignoring public entities %a as %a from %a",k,v,n) +end local function install(spacenewline,spacing,anything) local anyentitycontent=(1-open-semicolon-space-close-ampersand)^0 local hexentitycontent=R("AF","af","09")^1 @@ -12921,6 +12942,9 @@ local function install(spacenewline,spacing,anything) local publicentitytype=(doctypename*somespace*P("PUBLIC")*somespace*value)/publicentity local systementitytype=(doctypename*somespace*P("SYSTEM")*somespace*value*somespace*P("NDATA")*somespace*doctypename)/systementity local entitydoctype=optionalspace*P("<!ENTITY")*somespace*(systementitytype+publicentitytype+normalentitytype+weirdentitytype)*optionalspace*close + local publicentityfile=(doctypename*somespace*P("PUBLIC")*somespace*value*(somespace*value)^0)/function(...) + entityfile(entitydoctype,...) + end local function weirdresolve(s) lpegmatch(entitydoctype,parameters[s]) end @@ -12934,7 +12958,8 @@ local function install(spacenewline,spacing,anything) local publicdoctype=doctypename*somespace*P("PUBLIC")*somespace*value*somespace*value*somespace*doctypeset local systemdoctype=doctypename*somespace*P("SYSTEM")*somespace*value*somespace*doctypeset local simpledoctype=(anything-close)^1 - local somedoctype=C((somespace*(publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) + local somedoctype=C((somespace*( +publicentityfile+publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) local instruction=(spacing*begininstruction*someinstruction*endinstruction)/function(...) add_special("@pi@",...) end local comment=(spacing*begincomment*somecomment*endcomment )/function(...) add_special("@cm@",...) end local cdata=(spacing*begincdata*somecdata*endcdata )/function(...) add_special("@cd@",...) end @@ -21321,8 +21346,8 @@ end -- of closure -- used libraries : 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-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 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 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 : 877106 --- stripped bytes : 317575 +-- original bytes : 877962 +-- stripped bytes : 317771 -- end library merge diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/mtxrun.lua b/Master/texmf-dist/scripts/context/stubs/mswin/mtxrun.lua index 91528360a81..0f4767d918c 100644 --- a/Master/texmf-dist/scripts/context/stubs/mswin/mtxrun.lua +++ b/Master/texmf-dist/scripts/context/stubs/mswin/mtxrun.lua @@ -6101,7 +6101,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 38699, stripped down to: 22142 +-- original size: 38734, stripped down to: 22142 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6913,7 +6913,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-tab"] = package.loaded["util-tab"] or true --- original size: 27665, stripped down to: 17051 +-- original size: 27741, stripped down to: 17085 if not modules then modules={} end modules ['util-tab']={ version=1.001, @@ -7051,15 +7051,16 @@ function table.tocsv(t,specification) fields=sortedkeys(t[1]) end local separator=specification.separator or "," + local noffields=#fields if specification.preamble==true then - for f=1,#fields do + for f=1,noffields do r[f]=lpegmatch(escape,tostring(fields[f])) end result[1]=concat(r,separator) end for i=1,#t do local ti=t[i] - for f=1,#fields do + for f=1,noffields do local field=ti[fields[f]] if type(field)=="string" then r[f]=lpegmatch(escape,field) @@ -7076,30 +7077,31 @@ function table.tocsv(t,specification) end local nspaces=utilities.strings.newrepeater(" ") local function toxml(t,d,result,step) + local r=#result for k,v in sortedpairs(t) do local s=nspaces[d] local tk=type(k) local tv=type(v) if tv=="table" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>"](s,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</entry>"](s,k) + r=r+1 result[r]=formatters["%s</entry>"](s,k) else - result[#result+1]=formatters["%s<%s>"](s,k) + r=r+1 result[r]=formatters["%s<%s>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</%s>"](s,k) + r=r+1 result[r]=formatters["%s</%s>"](s,k) end elseif tv=="string" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) end elseif tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%S</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%S</%s>"](s,k,v,k) end end end @@ -12113,7 +12115,7 @@ do -- create closure to overcome 200 locals limit package.loaded["lxml-tab"] = package.loaded["lxml-tab"] or true --- original size: 59638, stripped down to: 37936 +-- original size: 60383, stripped down to: 38562 if not modules then modules={} end modules ['lxml-tab']={ version=1.001, @@ -12122,7 +12124,7 @@ if not modules then modules={} end modules ['lxml-tab']={ copyright="PRAGMA ADE / ConTeXt Development Team", license="see context related readme files" } -local trace_entities=false trackers .register("xml.entities",function(v) trace_entities=v end) +local trace_entities=false trackers.register("xml.entities",function(v) trace_entities=v end) local report_xml=logs and logs.reporter("xml","core") or function(...) print(string.format(...)) end if lpeg.setmaxstack then lpeg.setmaxstack(1000) end xml=xml or {} @@ -12870,6 +12872,25 @@ local function publicentity(k,v,n) end entities[k]=v end +local function entityfile(pattern,k,v,n) + if n then + local okay,data + if resolvers then + okay,data=resolvers.loadbinfile(n) + else + data=io.loaddata(n) + okay=data and data~="" + end + if okay then + if trace_entities then + report_xml("loading public entities %a as %a from %a",k,v,n) + end + lpegmatch(pattern,data) + return + end + end + report_xml("ignoring public entities %a as %a from %a",k,v,n) +end local function install(spacenewline,spacing,anything) local anyentitycontent=(1-open-semicolon-space-close-ampersand)^0 local hexentitycontent=R("AF","af","09")^1 @@ -12921,6 +12942,9 @@ local function install(spacenewline,spacing,anything) local publicentitytype=(doctypename*somespace*P("PUBLIC")*somespace*value)/publicentity local systementitytype=(doctypename*somespace*P("SYSTEM")*somespace*value*somespace*P("NDATA")*somespace*doctypename)/systementity local entitydoctype=optionalspace*P("<!ENTITY")*somespace*(systementitytype+publicentitytype+normalentitytype+weirdentitytype)*optionalspace*close + local publicentityfile=(doctypename*somespace*P("PUBLIC")*somespace*value*(somespace*value)^0)/function(...) + entityfile(entitydoctype,...) + end local function weirdresolve(s) lpegmatch(entitydoctype,parameters[s]) end @@ -12934,7 +12958,8 @@ local function install(spacenewline,spacing,anything) local publicdoctype=doctypename*somespace*P("PUBLIC")*somespace*value*somespace*value*somespace*doctypeset local systemdoctype=doctypename*somespace*P("SYSTEM")*somespace*value*somespace*doctypeset local simpledoctype=(anything-close)^1 - local somedoctype=C((somespace*(publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) + local somedoctype=C((somespace*( +publicentityfile+publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) local instruction=(spacing*begininstruction*someinstruction*endinstruction)/function(...) add_special("@pi@",...) end local comment=(spacing*begincomment*somecomment*endcomment )/function(...) add_special("@cm@",...) end local cdata=(spacing*begincdata*somecdata*endcdata )/function(...) add_special("@cd@",...) end @@ -21321,8 +21346,8 @@ end -- of closure -- used libraries : 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-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 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 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 : 877106 --- stripped bytes : 317575 +-- original bytes : 877962 +-- stripped bytes : 317771 -- end library merge diff --git a/Master/texmf-dist/scripts/context/stubs/unix/mtxrun b/Master/texmf-dist/scripts/context/stubs/unix/mtxrun index 91528360a81..0f4767d918c 100755 --- a/Master/texmf-dist/scripts/context/stubs/unix/mtxrun +++ b/Master/texmf-dist/scripts/context/stubs/unix/mtxrun @@ -6101,7 +6101,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 38699, stripped down to: 22142 +-- original size: 38734, stripped down to: 22142 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6913,7 +6913,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-tab"] = package.loaded["util-tab"] or true --- original size: 27665, stripped down to: 17051 +-- original size: 27741, stripped down to: 17085 if not modules then modules={} end modules ['util-tab']={ version=1.001, @@ -7051,15 +7051,16 @@ function table.tocsv(t,specification) fields=sortedkeys(t[1]) end local separator=specification.separator or "," + local noffields=#fields if specification.preamble==true then - for f=1,#fields do + for f=1,noffields do r[f]=lpegmatch(escape,tostring(fields[f])) end result[1]=concat(r,separator) end for i=1,#t do local ti=t[i] - for f=1,#fields do + for f=1,noffields do local field=ti[fields[f]] if type(field)=="string" then r[f]=lpegmatch(escape,field) @@ -7076,30 +7077,31 @@ function table.tocsv(t,specification) end local nspaces=utilities.strings.newrepeater(" ") local function toxml(t,d,result,step) + local r=#result for k,v in sortedpairs(t) do local s=nspaces[d] local tk=type(k) local tv=type(v) if tv=="table" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>"](s,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</entry>"](s,k) + r=r+1 result[r]=formatters["%s</entry>"](s,k) else - result[#result+1]=formatters["%s<%s>"](s,k) + r=r+1 result[r]=formatters["%s<%s>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</%s>"](s,k) + r=r+1 result[r]=formatters["%s</%s>"](s,k) end elseif tv=="string" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) end elseif tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%S</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%S</%s>"](s,k,v,k) end end end @@ -12113,7 +12115,7 @@ do -- create closure to overcome 200 locals limit package.loaded["lxml-tab"] = package.loaded["lxml-tab"] or true --- original size: 59638, stripped down to: 37936 +-- original size: 60383, stripped down to: 38562 if not modules then modules={} end modules ['lxml-tab']={ version=1.001, @@ -12122,7 +12124,7 @@ if not modules then modules={} end modules ['lxml-tab']={ copyright="PRAGMA ADE / ConTeXt Development Team", license="see context related readme files" } -local trace_entities=false trackers .register("xml.entities",function(v) trace_entities=v end) +local trace_entities=false trackers.register("xml.entities",function(v) trace_entities=v end) local report_xml=logs and logs.reporter("xml","core") or function(...) print(string.format(...)) end if lpeg.setmaxstack then lpeg.setmaxstack(1000) end xml=xml or {} @@ -12870,6 +12872,25 @@ local function publicentity(k,v,n) end entities[k]=v end +local function entityfile(pattern,k,v,n) + if n then + local okay,data + if resolvers then + okay,data=resolvers.loadbinfile(n) + else + data=io.loaddata(n) + okay=data and data~="" + end + if okay then + if trace_entities then + report_xml("loading public entities %a as %a from %a",k,v,n) + end + lpegmatch(pattern,data) + return + end + end + report_xml("ignoring public entities %a as %a from %a",k,v,n) +end local function install(spacenewline,spacing,anything) local anyentitycontent=(1-open-semicolon-space-close-ampersand)^0 local hexentitycontent=R("AF","af","09")^1 @@ -12921,6 +12942,9 @@ local function install(spacenewline,spacing,anything) local publicentitytype=(doctypename*somespace*P("PUBLIC")*somespace*value)/publicentity local systementitytype=(doctypename*somespace*P("SYSTEM")*somespace*value*somespace*P("NDATA")*somespace*doctypename)/systementity local entitydoctype=optionalspace*P("<!ENTITY")*somespace*(systementitytype+publicentitytype+normalentitytype+weirdentitytype)*optionalspace*close + local publicentityfile=(doctypename*somespace*P("PUBLIC")*somespace*value*(somespace*value)^0)/function(...) + entityfile(entitydoctype,...) + end local function weirdresolve(s) lpegmatch(entitydoctype,parameters[s]) end @@ -12934,7 +12958,8 @@ local function install(spacenewline,spacing,anything) local publicdoctype=doctypename*somespace*P("PUBLIC")*somespace*value*somespace*value*somespace*doctypeset local systemdoctype=doctypename*somespace*P("SYSTEM")*somespace*value*somespace*doctypeset local simpledoctype=(anything-close)^1 - local somedoctype=C((somespace*(publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) + local somedoctype=C((somespace*( +publicentityfile+publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) local instruction=(spacing*begininstruction*someinstruction*endinstruction)/function(...) add_special("@pi@",...) end local comment=(spacing*begincomment*somecomment*endcomment )/function(...) add_special("@cm@",...) end local cdata=(spacing*begincdata*somecdata*endcdata )/function(...) add_special("@cd@",...) end @@ -21321,8 +21346,8 @@ end -- of closure -- used libraries : 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-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 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 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 : 877106 --- stripped bytes : 317575 +-- original bytes : 877962 +-- stripped bytes : 317771 -- end library merge diff --git a/Master/texmf-dist/scripts/context/stubs/win64/mtxrun.lua b/Master/texmf-dist/scripts/context/stubs/win64/mtxrun.lua index 91528360a81..0f4767d918c 100644 --- a/Master/texmf-dist/scripts/context/stubs/win64/mtxrun.lua +++ b/Master/texmf-dist/scripts/context/stubs/win64/mtxrun.lua @@ -6101,7 +6101,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 38699, stripped down to: 22142 +-- original size: 38734, stripped down to: 22142 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6913,7 +6913,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-tab"] = package.loaded["util-tab"] or true --- original size: 27665, stripped down to: 17051 +-- original size: 27741, stripped down to: 17085 if not modules then modules={} end modules ['util-tab']={ version=1.001, @@ -7051,15 +7051,16 @@ function table.tocsv(t,specification) fields=sortedkeys(t[1]) end local separator=specification.separator or "," + local noffields=#fields if specification.preamble==true then - for f=1,#fields do + for f=1,noffields do r[f]=lpegmatch(escape,tostring(fields[f])) end result[1]=concat(r,separator) end for i=1,#t do local ti=t[i] - for f=1,#fields do + for f=1,noffields do local field=ti[fields[f]] if type(field)=="string" then r[f]=lpegmatch(escape,field) @@ -7076,30 +7077,31 @@ function table.tocsv(t,specification) end local nspaces=utilities.strings.newrepeater(" ") local function toxml(t,d,result,step) + local r=#result for k,v in sortedpairs(t) do local s=nspaces[d] local tk=type(k) local tv=type(v) if tv=="table" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>"](s,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</entry>"](s,k) + r=r+1 result[r]=formatters["%s</entry>"](s,k) else - result[#result+1]=formatters["%s<%s>"](s,k) + r=r+1 result[r]=formatters["%s<%s>"](s,k) toxml(v,d+step,result,step) - result[#result+1]=formatters["%s</%s>"](s,k) + r=r+1 result[r]=formatters["%s</%s>"](s,k) end elseif tv=="string" then if tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%!xml!</%s>"](s,k,v,k) end elseif tk=="number" then - result[#result+1]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) else - result[#result+1]=formatters["%s<%s>%S</%s>"](s,k,v,k) + r=r+1 result[r]=formatters["%s<%s>%S</%s>"](s,k,v,k) end end end @@ -12113,7 +12115,7 @@ do -- create closure to overcome 200 locals limit package.loaded["lxml-tab"] = package.loaded["lxml-tab"] or true --- original size: 59638, stripped down to: 37936 +-- original size: 60383, stripped down to: 38562 if not modules then modules={} end modules ['lxml-tab']={ version=1.001, @@ -12122,7 +12124,7 @@ if not modules then modules={} end modules ['lxml-tab']={ copyright="PRAGMA ADE / ConTeXt Development Team", license="see context related readme files" } -local trace_entities=false trackers .register("xml.entities",function(v) trace_entities=v end) +local trace_entities=false trackers.register("xml.entities",function(v) trace_entities=v end) local report_xml=logs and logs.reporter("xml","core") or function(...) print(string.format(...)) end if lpeg.setmaxstack then lpeg.setmaxstack(1000) end xml=xml or {} @@ -12870,6 +12872,25 @@ local function publicentity(k,v,n) end entities[k]=v end +local function entityfile(pattern,k,v,n) + if n then + local okay,data + if resolvers then + okay,data=resolvers.loadbinfile(n) + else + data=io.loaddata(n) + okay=data and data~="" + end + if okay then + if trace_entities then + report_xml("loading public entities %a as %a from %a",k,v,n) + end + lpegmatch(pattern,data) + return + end + end + report_xml("ignoring public entities %a as %a from %a",k,v,n) +end local function install(spacenewline,spacing,anything) local anyentitycontent=(1-open-semicolon-space-close-ampersand)^0 local hexentitycontent=R("AF","af","09")^1 @@ -12921,6 +12942,9 @@ local function install(spacenewline,spacing,anything) local publicentitytype=(doctypename*somespace*P("PUBLIC")*somespace*value)/publicentity local systementitytype=(doctypename*somespace*P("SYSTEM")*somespace*value*somespace*P("NDATA")*somespace*doctypename)/systementity local entitydoctype=optionalspace*P("<!ENTITY")*somespace*(systementitytype+publicentitytype+normalentitytype+weirdentitytype)*optionalspace*close + local publicentityfile=(doctypename*somespace*P("PUBLIC")*somespace*value*(somespace*value)^0)/function(...) + entityfile(entitydoctype,...) + end local function weirdresolve(s) lpegmatch(entitydoctype,parameters[s]) end @@ -12934,7 +12958,8 @@ local function install(spacenewline,spacing,anything) local publicdoctype=doctypename*somespace*P("PUBLIC")*somespace*value*somespace*value*somespace*doctypeset local systemdoctype=doctypename*somespace*P("SYSTEM")*somespace*value*somespace*doctypeset local simpledoctype=(anything-close)^1 - local somedoctype=C((somespace*(publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) + local somedoctype=C((somespace*( +publicentityfile+publicdoctype+systemdoctype+definitiondoctype+simpledoctype)*optionalspace)^0) local instruction=(spacing*begininstruction*someinstruction*endinstruction)/function(...) add_special("@pi@",...) end local comment=(spacing*begincomment*somecomment*endcomment )/function(...) add_special("@cm@",...) end local cdata=(spacing*begincdata*somecdata*endcdata )/function(...) add_special("@cd@",...) end @@ -21321,8 +21346,8 @@ end -- of closure -- used libraries : 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-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 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 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 : 877106 --- stripped bytes : 317575 +-- original bytes : 877962 +-- stripped bytes : 317771 -- end library merge diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii index 082e39ee4a2..49499250257 100644 --- a/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii +++ b/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2018.04.02 15:43} +\newcontextversion{2018.04.04 00:51} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/Master/texmf-dist/tex/context/base/mkii/context.mkii b/Master/texmf-dist/tex/context/base/mkii/context.mkii index 4e087c1c8a6..2938661941d 100644 --- a/Master/texmf-dist/tex/context/base/mkii/context.mkii +++ b/Master/texmf-dist/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2018.04.02 15:43} +\edef\contextversion{2018.04.04 00:51} %D For those who want to use this: diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv index c705c3afcc4..9cb89326039 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2018.04.02 15:43} +\newcontextversion{2018.04.04 00:51} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv index 2adc6b3eee0..9a52cfe78b1 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv @@ -42,7 +42,7 @@ %D has to match \type {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2018.04.02 15:43} +\edef\contextversion{2018.04.04 00:51} \edef\contextkind {beta} %D For those who want to use this: diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi index ee20d7b32b0..69318291929 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi +++ b/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi @@ -2510,14 +2510,32 @@ % \popmacro\fontclass % \ifx\fontclass\empty\else\setupbodyfont\relax\fi} +% \unexpanded\def\usebodyfont[#1]% +% {\pushmacro\fontclass +% \font_helpers_set_font\zerocount{#1}% +% \popmacro\fontclass +% \ifx\fontclass\empty \else +% \font_basics_setupbodyfont_nop +% \fi} + \unexpanded\def\usebodyfont[#1]% - {\pushmacro\fontclass - \font_helpers_set_font\zerocount{#1}% - \popmacro\fontclass - \ifx\fontclass\empty \else - \font_basics_setupbodyfont_nop + {\ifx\fontclass\empty + \setupbodyfont[#1]% + \else + \switchtobodyfont[#1]% + \fullrestoreglobalbodyfont \fi} +\unexpanded\def\showbodyfontstate + {\dontleavehmode + \start + \infofont + [fontclass: \fontclass,\space + fontbody: \fontbody ,\space + fontface: \fontface ,\space + fontsize: \fontsize ]% + \stop} + %D Handy for manuals: %D The \type {\tochar} commmand takes a specification: diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-tab.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-tab.lua index 8d4be58abfb..1ef83c47de7 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/lxml-tab.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-tab.lua @@ -14,7 +14,7 @@ if not modules then modules = { } end modules ['lxml-tab'] = { -- maybe when letter -> utf, else name .. then we need an option to the serializer .. a bit -- of work so we delay this till we cleanup -local trace_entities = false trackers .register("xml.entities", function(v) trace_entities = v end) +local trace_entities = false trackers.register("xml.entities", function(v) trace_entities = v end) local report_xml = logs and logs.reporter("xml","core") or function(...) print(string.format(...)) end @@ -968,6 +968,25 @@ local function publicentity(k,v,n) end entities[k] = v end +local function entityfile(pattern,k,v,n) + if n then + local okay, data + if resolvers then + okay, data = resolvers.loadbinfile(n) + else + data = io.loaddata(n) + okay = data and data ~= "" + end + if okay then + if trace_entities then + report_xml("loading public entities %a as %a from %a",k,v,n) + end + lpegmatch(pattern,data) + return + end + end + report_xml("ignoring public entities %a as %a from %a",k,v,n) +end local function install(spacenewline,spacing,anything) @@ -1003,7 +1022,7 @@ local function install(spacenewline,spacing,anything) local attribute = (somespace * name * optionalspace * equal * optionalspace * attributevalue) / add_attribute --- local attributes = (attribute + somespace^-1 * (((1-endofattributes)^1)/attribute_specification_error))^0 + -- local attributes = (attribute + somespace^-1 * (((1-endofattributes)^1)/attribute_specification_error))^0 local attributes = (attribute + somespace^-1 * (((anything-endofattributes)^1)/attribute_specification_error))^0 local parsedtext = text_parsed -- / add_text @@ -1041,10 +1060,15 @@ local function install(spacenewline,spacing,anything) local weirdentitytype = P("%") * (somespace * doctypename * somespace * value) / weirdentity local normalentitytype = (doctypename * somespace * value) / normalentity - local publicentitytype = (doctypename * somespace * P("PUBLIC") * somespace * value)/publicentity + local publicentitytype = (doctypename * somespace * P("PUBLIC") * somespace * value) / publicentity + local systementitytype = (doctypename * somespace * P("SYSTEM") * somespace * value * somespace * P("NDATA") * somespace * doctypename)/systementity local entitydoctype = optionalspace * P("<!ENTITY") * somespace * (systementitytype + publicentitytype + normalentitytype + weirdentitytype) * optionalspace * close + local publicentityfile = (doctypename * somespace * P("PUBLIC") * somespace * value * (somespace * value)^0) / function(...) + entityfile(entitydoctype,...) + end + local function weirdresolve(s) lpegmatch(entitydoctype,parameters[s]) end @@ -1065,7 +1089,11 @@ local function install(spacenewline,spacing,anything) local publicdoctype = doctypename * somespace * P("PUBLIC") * somespace * value * somespace * value * somespace * doctypeset local systemdoctype = doctypename * somespace * P("SYSTEM") * somespace * value * somespace * doctypeset local simpledoctype = (anything-close)^1 -- * balanced^0 - local somedoctype = C((somespace * (publicdoctype + systemdoctype + definitiondoctype + simpledoctype) * optionalspace)^0) + local somedoctype = C((somespace * ( + +publicentityfile + + + publicdoctype + systemdoctype + definitiondoctype + simpledoctype) * optionalspace)^0) local instruction = (spacing * begininstruction * someinstruction * endinstruction) / function(...) add_special("@pi@",...) end local comment = (spacing * begincomment * somecomment * endcomment ) / function(...) add_special("@cm@",...) end @@ -1294,7 +1322,7 @@ a filename or a file handle.</p> function xml.load(filename,settings) local data = "" if type(filename) == "string" then - -- local data = io.loaddata(filename) - -todo: check type in io.loaddata + -- local data = io.loaddata(filename) -- todo: check type in io.loaddata local f = io.open(filename,'r') -- why not 'rb' if f then data = f:read("*all") -- io.readall(f) ... only makes sense for large files diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv index 56da9229d60..e9660b3a7e2 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv @@ -287,7 +287,6 @@ \dontcomplain \setbox\scratchbox\hbox{\addff{mp:tp}#2}% \ctxlua{mp.follow_initialize(\number\scratchbox)}% - \stopluacode \startMPcode \includeMPgraphic{followtokens} ; mfun_follow_draw(\number#1) ; @@ -295,8 +294,8 @@ \ctxlua{mp.follow_reset()}% \egroup} -\unexpanded\def\followtokens {\dofollowtokens1} -\unexpanded\def\followtokenscentered{\dofollowtokens0} +\unexpanded\def\followtokens {\dofollowtokens\plusone} +\unexpanded\def\followtokenscentered{\dofollowtokens\zerocount} % stretched variant: % diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-inf.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-inf.mkiv index f60977e0c97..2064f9f25be 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/page-inf.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/page-inf.mkiv @@ -13,7 +13,7 @@ \writestatus{loading}{ConTeXt Page Macros / Tracing Info} -% this needs a real cleanup .. will be a more detailed list +% This needs a real cleanup .. will be a more detailed list. \unprotect @@ -23,6 +23,7 @@ \newtoks\everysetupversion \let\currentversioninfo\empty +\let\currentversiontext\empty \unexpanded\def\setupversion {\dosingleargument\page_info_setup} @@ -33,8 +34,13 @@ \def\page_info_setup[#1]% {\the\everyresetversion - \ifcsname\??layoutinfo#1\endcsname - \edef\currentversioninfo{#1}% + \doifelseassignment{#1}% + {\getdummyparameters[\c!alternative=,\c!text=,#1]% + \edef\currentversioninfo{\dummyparameter\c!alternative}% + \edef\currentversiontext{\dummyparameter\c!text}}% + {\edef\currentversioninfo{#1}% + \let \currentversiontext\empty}% + \ifcsname\??layoutinfo\currentversioninfo\endcsname \let\page_info_add_to_box\page_info_add_to_box_indeed \else \let\currentversioninfo\empty @@ -43,33 +49,46 @@ \the\everysetupversion} \unexpanded\def\page_info_place_info % at the bottom of the page - {\csname\??layoutinfo\currentversioninfo\endcsname} + {\begincsname\??layoutinfo\currentversioninfo\endcsname} \unexpanded\def\installversioninfo#1#2% {\setvalue{\??layoutinfo#1}{#2}} \unexpanded\def\includeversioninfo#1% - {\csname\??layoutinfo#1\endcsname} + {\begincsname\??layoutinfo#1\endcsname} + +\installversioninfo\v!final + {\let\currentversioninfo\empty + \let\page_info_add_to_box\gobbleoneargument} \installversioninfo\v!concept {\vskip6\points \hbox to \makeupwidth {\infofont - \v!concept:\space\currentdate + \rlap{\v!concept:\space\currentdate}% \hss - \page_adapts_status_info}} + \currentversiontext + \hss + \llap{\page_adapts_status_info}}} \installversioninfo\v!file {\vskip6\points \hbox to \makeupwidth {\infofont - \getmessage\m!system{27}:\space\currentdate\space + \getmessage\m!system{27}:\space\currentdate\quad \donefalse - \ifx\currentproject \empty \else \space\v!project :\space\currentproject \space \donetrue \fi - \ifx\currentproduct \empty \else \space\v!product :\space\currentproduct \space \donetrue \fi - \ifx\currentcomponent\empty \else \space\v!component:\space\currentcomponent\space \donetrue \fi - \ifdone \else \space\v!file :\space\jobname \space \fi + \doif\currentproject\currentproduct{\doif\currentproduct\currentcomponent\donetrue}% + \ifdone + \donefalse + \else + \ifx\currentproject \empty \else \space\v!project :\space\currentproject \space \donetrue \fi + \ifx\currentproduct \empty \else \space\v!product :\space\currentproduct \space \donetrue \fi + \ifx\currentcomponent\empty \else \space\v!component:\space\currentcomponent\space \donetrue \fi + \fi + \ifdone \else \space\v!file :\space\jobname \space \fi \hss + \currentversiontext + \quad \page_adapts_status_info}} \installversioninfo\v!temporary diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv index 35233247bb1..348c301fc2c 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv @@ -481,28 +481,68 @@ #1{\box\floatbox}% \doifinset\v!tall\floatlocationmethod\page_sides_flush_floats_after_par} -\def\page_one_place_float_left {\page_one_place_float_side_indeed\page_sides_process_float_left\presetindentation} -\def\page_one_place_float_right {\page_one_place_float_side_indeed\page_sides_process_float_right} -\def\page_one_place_float_leftmargin {\page_one_place_float_side_indeed\page_sides_process_float_leftmargin} -\def\page_one_place_float_rightmargin{\page_one_place_float_side_indeed\page_sides_process_float_rightmargin} -\def\page_one_place_float_leftedge {\page_one_place_float_side_indeed\page_sides_process_float_leftedge} -\def\page_one_place_float_rightedge {\page_one_place_float_side_indeed\page_sides_process_float_rightedge} -\def\page_one_place_float_inmargin {\page_one_place_float_side_indeed\page_sides_process_float_cutspace} -\def\page_one_place_float_backspace {\page_one_place_float_side_indeed\page_sides_process_float_backspace} -\def\page_one_place_float_cutspace {\page_one_place_float_side_indeed\page_sides_process_float_cutspace} - -%def\page_one_place_float_margin {\page_one_place_float_side_indeed\page_sides_process_float_margin\nonoindentation} % wil be overloaded -\def\page_one_place_float_margin {\page_margin_blocks_process_float} +\def\page_one_place_float_left + {\page_one_place_float_side_indeed + \page_sides_process_float_left + \presetindentation} + +\def\page_one_place_float_right + {\page_one_place_float_side_indeed + \page_sides_process_float_right} + +\def\page_one_place_float_margin + {\page_margin_blocks_process_float + \nonoindentation} % new, due to popular request + +\def\page_one_place_float_leftmargin + {\page_one_place_float_side_indeed + \page_sides_process_float_leftmargin + \nonoindentation} % new, due to popular request + +\def\page_one_place_float_rightmargin + {\page_one_place_float_side_indeed + \page_sides_process_float_rightmargin + \nonoindentation} % new, due to popular request + +\def\page_one_place_float_leftedge + {\page_one_place_float_side_indeed + \page_sides_process_float_leftedge} + +\def\page_one_place_float_rightedge + {\page_one_place_float_side_indeed + \page_sides_process_float_rightedge} + +\def\page_one_place_float_inmargin + {\page_one_place_float_side_indeed + \page_sides_process_float_cutspace} + +\def\page_one_place_float_backspace + {\page_one_place_float_side_indeed + \page_sides_process_float_backspace} + +\def\page_one_place_float_cutspace + {\page_one_place_float_side_indeed + \page_sides_process_float_cutspace} \def\page_one_place_float_page {\page_floats_save_page_float \s!page \floatlocationmethod} \def\page_one_place_float_leftpage {\page_floats_save_page_float \s!leftpage \floatlocationmethod} \def\page_one_place_float_rightpage {\page_floats_save_page_float \s!rightpage\floatlocationmethod} \def\page_one_place_float_somewhere {\page_floats_save_somewhere_float\s!somewhere\floatlocationmethod} -\def\page_one_place_float_here {\page_one_place_float_otherwise_here} -\def\page_one_place_float_auto {\page_one_place_float_otherwise} -\def\page_one_place_float_top {\page_one_place_float_otherwise\nonoindentation} -\def\page_one_place_float_bottom {\page_one_place_float_otherwise} +\def\page_one_place_float_here + {\page_one_place_float_otherwise_here} + +\def\page_one_place_float_auto + {\page_one_place_float_otherwise + \nonoindentation} % new, due to popular request + +\def\page_one_place_float_top + {\page_one_place_float_otherwise + \nonoindentation} + +\def\page_one_place_float_bottom + {\page_one_place_float_otherwise + \nonoindentation} % new, due to popular request \def\page_one_place_float_otherwise {\doifelseinset\v!here\floatlocationmethod diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv index a0fb63ca20a..6f5d9f3571f 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv @@ -32,6 +32,7 @@ %D Earth, sophisticated Massive Attack video clips, impressive Davie504 movies %D and so on). +\newdimen \d_page_sides_margin \newdimen \d_page_sides_height % includes the topskip \newdimen \d_page_sides_width \newdimen \d_page_sides_hsize @@ -113,7 +114,7 @@ \or % high \or % low \or % fit - \global\d_strc_floats_margin\zeropoint + \global\d_page_sides_margin\zeropoint \fi} \def\page_sides_apply_horizontal_shift @@ -668,7 +669,7 @@ \else\ifnum\c_page_sides_float_type>\plusfive \global\d_page_sides_width\zeropoint \else - \global\d_page_sides_width\dimexpr\wd\floatbox+\d_strc_floats_margin\relax + \global\d_page_sides_width\dimexpr\wd\floatbox+\d_page_sides_margin\relax \fi\fi \ifdim\d_page_sides_width<\zeropoint \global\d_page_sides_width\zeropoint diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua index 8497b190fcb..9dfeda168cc 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua @@ -2325,13 +2325,13 @@ do implement { name = "btxflushlistentry", - arguments = "2 strings", + arguments = { "string", "integer" }, actions = lists.flushentry, } implement { name = "btxflushlisttag", - arguments = "2 strings", + arguments = { "string", "integer" }, actions = lists.flushtag, } diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf Binary files differindex aa6ed92ea35..74e8e3e8ad5 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf +++ b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf Binary files differindex 70204080ad3..a2f2ee28b07 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf +++ b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi index 69881037e34..632c6768694 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi +++ b/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi @@ -148,7 +148,7 @@ \c!textmethod=\ifgridsnapping2\else0\fi, % 0=raw 1=safe (.99pg) 2=tight (-1pt) % THIS WILL CHANGE \c!sidemethod=\ifgridsnapping2\else1\fi, % 0=raw 1=safe (.99pg) 2=tight (-1pt) % THIS WILL CHANGE \c!indentnext=\v!no, - \c!margin=1\emwidth, + \c!margin=\emwidth, \c!method=1, \c!cache=\v!yes, % when no, then intermediate flush \c!leftmargin=\zeropoint, % displacement in 'normal floats' @@ -734,7 +734,6 @@ % nicer is a bunch of states and one loop that sets those states -\newdimen\d_strc_floats_margin \newdimen\d_strc_floats_top \newdimen\d_strc_floats_bottom @@ -776,13 +775,13 @@ \global\c_page_sides_tolerance \zerocount \global\c_page_sides_skipmode \zerocount \global\c_strc_floats_rotation \zerocount - \global\d_strc_floats_margin \rootfloatparameter\c!margin - \global\d_page_sides_leftshift \floatparameter \c!leftmargindistance - \global\d_page_sides_rightshift \floatparameter \c!rightmargindistance - \global\d_page_sides_topoffset \floatparameter \c!topoffset - \global\d_page_sides_bottomoffset\floatparameter \c!bottomoffset - \global\c_page_sides_method \floatparameter \c!sidemethod - \global\c_page_one_float_method \floatparameter \c!textmethod + \global\d_page_sides_margin \floatparameter\c!margin + \global\d_page_sides_leftshift \floatparameter\c!leftmargindistance + \global\d_page_sides_rightshift \floatparameter\c!rightmargindistance + \global\d_page_sides_topoffset \floatparameter\c!topoffset + \global\d_page_sides_bottomoffset\floatparameter\c!bottomoffset + \global\c_page_sides_method \floatparameter\c!sidemethod + \global\c_page_one_float_method \floatparameter\c!textmethod \global\c_page_floats_n_of_top \rootfloatparameter\c!ntop \global\c_page_floats_n_of_bottom\rootfloatparameter\c!nbottom \ifconditional\c_strc_floats_par_float diff --git a/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv b/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv index 1ef137d3981..1763de68790 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv @@ -57,6 +57,9 @@ \fi +\definefilesynonym [type-imp-latin-modern.mkiv] [type-imp-latinmodern.mkiv] +\definefilesynonym [type-imp-modern-latin.mkiv] [type-imp-modernlatin.mkiv] + \definefilesynonym [type-imp-lucida.mkiv] [type-imp-lucida-typeone.mkiv] \definefilesynonym [type-imp-lucidaot.mkiv] [type-imp-lucida-opentype.mkiv] \definefilesynonym [type-imp-lucidadk.mkiv] [type-imp-lucida-opentype.mkiv] diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-str.lua b/Master/texmf-dist/tex/context/base/mkiv/util-str.lua index f76895aaf6c..05ff9f304d7 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/util-str.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/util-str.lua @@ -1081,6 +1081,7 @@ local function make(t,str) f = function() return str end end end + -- if jit then jit.on(f,true) end t[str] = f return f end diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua b/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua index ebe51eb1aef..1b069e2ae21 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua @@ -153,15 +153,16 @@ function table.tocsv(t,specification) fields = sortedkeys(t[1]) end local separator = specification.separator or "," + local noffields = #fields if specification.preamble == true then - for f=1,#fields do + for f=1,noffields do r[f] = lpegmatch(escape,tostring(fields[f])) end result[1] = concat(r,separator) end for i=1,#t do local ti = t[i] - for f=1,#fields do + for f=1,noffields do local field = ti[fields[f]] if type(field) == "string" then r[f] = lpegmatch(escape,field) @@ -215,30 +216,31 @@ end local nspaces = utilities.strings.newrepeater(" ") local function toxml(t,d,result,step) + local r = #result for k, v in sortedpairs(t) do local s = nspaces[d] -- inlining this is somewhat faster but gives more formatters local tk = type(k) local tv = type(v) if tv == "table" then if tk == "number" then - result[#result+1] = formatters["%s<entry n='%s'>"](s,k) + r = r + 1 result[r] = formatters["%s<entry n='%s'>"](s,k) toxml(v,d+step,result,step) - result[#result+1] = formatters["%s</entry>"](s,k) + r = r + 1 result[r] = formatters["%s</entry>"](s,k) else - result[#result+1] = formatters["%s<%s>"](s,k) + r = r + 1 result[r] = formatters["%s<%s>"](s,k) toxml(v,d+step,result,step) - result[#result+1] = formatters["%s</%s>"](s,k) + r = r + 1 result[r] = formatters["%s</%s>"](s,k) end elseif tv == "string" then if tk == "number" then - result[#result+1] = formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) + r = r + 1 result[r] = formatters["%s<entry n='%s'>%!xml!</entry>"](s,k,v,k) else - result[#result+1] = formatters["%s<%s>%!xml!</%s>"](s,k,v,k) + r = r + 1 result[r] = formatters["%s<%s>%!xml!</%s>"](s,k,v,k) end elseif tk == "number" then - result[#result+1] = formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) + r = r + 1 result[r] = formatters["%s<entry n='%s'>%S</entry>"](s,k,v,k) else - result[#result+1] = formatters["%s<%s>%S</%s>"](s,k,v,k) + r = r + 1 result[r] = formatters["%s<%s>%S</%s>"](s,k,v,k) end end end diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf b/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf Binary files differindex 6ff801846c1..39538aa7bcd 100644 --- a/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf +++ b/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf b/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf Binary files differindex f86da332ab2..ee6712cfd09 100644 --- a/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf +++ b/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf diff --git a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex b/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex index f1966f54466..c14265cc085 100644 --- a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex +++ b/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex @@ -86,6 +86,7 @@ \logo [DVISCR] {dviscr} \logo [DVIWINDO] {dviwindo} \logo [EBCDIC] {ebcdic} +\logo [EU] {eu} \logo [EC] {ec} \logo [EIFFEL] {Eiffel} \logo [EMACS] {emacs} diff --git a/Master/texmf-dist/tex/context/sample/common/poe.tex b/Master/texmf-dist/tex/context/sample/common/poe.tex new file mode 100644 index 00000000000..fd84b60a8b6 --- /dev/null +++ b/Master/texmf-dist/tex/context/sample/common/poe.tex @@ -0,0 +1,33 @@ +% title : A dream within a dream +% author : Edgar Allan Poe +% +% music : Propaganda (on: A Secret Wish) + +\startlines +Take this kiss upon the brow! +And, in parting from you now, +Thus much let me avow — +You are not wrong, who deem +That my days have been a dream; +Yet if hope has flown away +In a night, or in a day, +In a vision, or in none, +Is it therefore the less gone? +All that we see or seem +Is but a dream within a dream. +\blank +I stand amid the roar +Of a surf-tormented shore, +And I hold within my hand +Grains of the golden sand — +How few! yet how they creep +Through my fingers to the deep, +While I weep — while I weep! +O God! can I not grasp +Them with a tighter clasp? +O God! can I not save +One from the pitiless wave? +Is all that we see or seem +But a dream within a dream? +\stoplines + diff --git a/Master/texmf-dist/tex/context/sample/common/samples.tex b/Master/texmf-dist/tex/context/sample/common/samples.tex index a2ffcf0882c..d732a240e27 100644 --- a/Master/texmf-dist/tex/context/sample/common/samples.tex +++ b/Master/texmf-dist/tex/context/sample/common/samples.tex @@ -58,6 +58,7 @@ used in testing bibliographic references and citations. \NC greenfield.tex \NC Susan Greenfield \NC Mind Change, how digital technologies are leaving their mark on the brain, Rider, London, 2014. \NC \NR +\NC poe.tex \NC Edgar Allan Poe \NC A dream within a dream, www.poetryfoundation.org. \NC \NR \stoptabulate % Tufte: This quote will always produce hyphenated text, apart from the content, diff --git a/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua b/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua index 97503d8a7a0..7cfa8c61a9c 100644 --- a/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/Master/texmf-dist/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 : 04/02/18 15:43:20 +-- merge date : 04/04/18 00:51:15 do -- begin closure to overcome local limits and interference |