summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2020-11-08 13:13:43 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2020-11-08 13:13:43 +0100
commit2f803b924ffdfc6ecedd2cce775c05d7d0d3acfd (patch)
tree977f78dbf0e8217bd9a88bced05d4f6927e3064a
parent52b5a886e13712946a039ffcd059190f49193539 (diff)
downloadcontext-2f803b924ffdfc6ecedd2cce775c05d7d0d3acfd.tar.gz
2020-11-08 12:34:00
-rw-r--r--scripts/context/lua/mtxrun.lua17
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua17
-rw-r--r--scripts/context/stubs/unix/mtxrun17
-rw-r--r--scripts/context/stubs/win64/mtxrun.lua17
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/cont-run.lua50
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkxl6
-rw-r--r--tex/context/base/mkiv/core-env.mkxl8
-rw-r--r--tex/context/base/mkiv/font-fea.mklx36
-rw-r--r--tex/context/base/mkiv/font-sol.mklx131
-rw-r--r--tex/context/base/mkiv/lxml-css.lua4
-rw-r--r--tex/context/base/mkiv/pack-rul.mkxl4
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin29356 -> 29317 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin256482 -> 256477 bytes
-rw-r--r--tex/context/base/mkiv/strc-lev.mklx101
-rw-r--r--tex/context/base/mkiv/strc-lev.mkvi32
-rw-r--r--tex/context/base/mkiv/symb-ini.mkxl7
-rw-r--r--tex/context/base/mkiv/syst-ini.mkxl2
-rw-r--r--tex/context/base/mkiv/trac-set.lua12
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
23 files changed, 359 insertions, 112 deletions
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index 8753c2821..3f2bb0051 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -12746,7 +12746,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-set"] = package.loaded["trac-set"] or true
--- original size: 13766, stripped down to: 9174
+-- original size: 13901, stripped down to: 9175
if not modules then modules={} end modules ['trac-set']={
version=1.001,
@@ -12965,8 +12965,12 @@ local function show_setter(t)
end
end
end
-local function report_setter(setter,fmt,...)
- print(formatters["%-15s : %s\n"](setter.name,formatters[fmt](...)))
+function setters.report(setter,fmt,...)
+ if fmt then
+ print(formatters["%-15s : %s"](setter.name,formatters[fmt](...)))
+ else
+ print("")
+ end
end
local function setter_default(setter,name)
local d=setter.data[name]
@@ -12981,7 +12985,7 @@ local function new_setter(name)
setter={
data=allocate(),
name=name,
- report=function(...) report_setter (setter,...) end,
+ report=function(...) setters.report (setter,...) end,
enable=function(...) enable_setter (setter,...) end,
disable=function(...) disable_setter (setter,...) end,
reset=function(...) reset_setter (setter,...) end,
@@ -12996,7 +13000,6 @@ local function new_setter(name)
end
setters.enable=enable_setter
setters.disable=disable_setter
-setters.report=report_setter
setters.register=register_setter
setters.list=list_setter
setters.show=show_setter
@@ -25773,8 +25776,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 : 1023322
--- stripped bytes : 404488
+-- original bytes : 1023457
+-- stripped bytes : 404622
-- end library merge
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index 8753c2821..3f2bb0051 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -12746,7 +12746,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-set"] = package.loaded["trac-set"] or true
--- original size: 13766, stripped down to: 9174
+-- original size: 13901, stripped down to: 9175
if not modules then modules={} end modules ['trac-set']={
version=1.001,
@@ -12965,8 +12965,12 @@ local function show_setter(t)
end
end
end
-local function report_setter(setter,fmt,...)
- print(formatters["%-15s : %s\n"](setter.name,formatters[fmt](...)))
+function setters.report(setter,fmt,...)
+ if fmt then
+ print(formatters["%-15s : %s"](setter.name,formatters[fmt](...)))
+ else
+ print("")
+ end
end
local function setter_default(setter,name)
local d=setter.data[name]
@@ -12981,7 +12985,7 @@ local function new_setter(name)
setter={
data=allocate(),
name=name,
- report=function(...) report_setter (setter,...) end,
+ report=function(...) setters.report (setter,...) end,
enable=function(...) enable_setter (setter,...) end,
disable=function(...) disable_setter (setter,...) end,
reset=function(...) reset_setter (setter,...) end,
@@ -12996,7 +13000,6 @@ local function new_setter(name)
end
setters.enable=enable_setter
setters.disable=disable_setter
-setters.report=report_setter
setters.register=register_setter
setters.list=list_setter
setters.show=show_setter
@@ -25773,8 +25776,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 : 1023322
--- stripped bytes : 404488
+-- original bytes : 1023457
+-- stripped bytes : 404622
-- end library merge
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index 8753c2821..3f2bb0051 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -12746,7 +12746,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-set"] = package.loaded["trac-set"] or true
--- original size: 13766, stripped down to: 9174
+-- original size: 13901, stripped down to: 9175
if not modules then modules={} end modules ['trac-set']={
version=1.001,
@@ -12965,8 +12965,12 @@ local function show_setter(t)
end
end
end
-local function report_setter(setter,fmt,...)
- print(formatters["%-15s : %s\n"](setter.name,formatters[fmt](...)))
+function setters.report(setter,fmt,...)
+ if fmt then
+ print(formatters["%-15s : %s"](setter.name,formatters[fmt](...)))
+ else
+ print("")
+ end
end
local function setter_default(setter,name)
local d=setter.data[name]
@@ -12981,7 +12985,7 @@ local function new_setter(name)
setter={
data=allocate(),
name=name,
- report=function(...) report_setter (setter,...) end,
+ report=function(...) setters.report (setter,...) end,
enable=function(...) enable_setter (setter,...) end,
disable=function(...) disable_setter (setter,...) end,
reset=function(...) reset_setter (setter,...) end,
@@ -12996,7 +13000,6 @@ local function new_setter(name)
end
setters.enable=enable_setter
setters.disable=disable_setter
-setters.report=report_setter
setters.register=register_setter
setters.list=list_setter
setters.show=show_setter
@@ -25773,8 +25776,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 : 1023322
--- stripped bytes : 404488
+-- original bytes : 1023457
+-- stripped bytes : 404622
-- end library merge
diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua
index 8753c2821..3f2bb0051 100644
--- a/scripts/context/stubs/win64/mtxrun.lua
+++ b/scripts/context/stubs/win64/mtxrun.lua
@@ -12746,7 +12746,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-set"] = package.loaded["trac-set"] or true
--- original size: 13766, stripped down to: 9174
+-- original size: 13901, stripped down to: 9175
if not modules then modules={} end modules ['trac-set']={
version=1.001,
@@ -12965,8 +12965,12 @@ local function show_setter(t)
end
end
end
-local function report_setter(setter,fmt,...)
- print(formatters["%-15s : %s\n"](setter.name,formatters[fmt](...)))
+function setters.report(setter,fmt,...)
+ if fmt then
+ print(formatters["%-15s : %s"](setter.name,formatters[fmt](...)))
+ else
+ print("")
+ end
end
local function setter_default(setter,name)
local d=setter.data[name]
@@ -12981,7 +12985,7 @@ local function new_setter(name)
setter={
data=allocate(),
name=name,
- report=function(...) report_setter (setter,...) end,
+ report=function(...) setters.report (setter,...) end,
enable=function(...) enable_setter (setter,...) end,
disable=function(...) disable_setter (setter,...) end,
reset=function(...) reset_setter (setter,...) end,
@@ -12996,7 +13000,6 @@ local function new_setter(name)
end
setters.enable=enable_setter
setters.disable=disable_setter
-setters.report=report_setter
setters.register=register_setter
setters.list=list_setter
setters.show=show_setter
@@ -25773,8 +25776,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 : 1023322
--- stripped bytes : 404488
+-- original bytes : 1023457
+-- stripped bytes : 404622
-- end library merge
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 3089bcf23..17509ed5e 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{2020.11.07 18:44}
+\newcontextversion{2020.11.08 12:31}
%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 4eb3ed8ce..2674b49a3 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{2020.11.07 18:44}
+\edef\contextversion{2020.11.08 12:31}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index f19302817..0b99557c4 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{2020.11.07 18:44}
+\newcontextversion{2020.11.08 12:31}
%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/cont-run.lua b/tex/context/base/mkiv/cont-run.lua
index 8f990cca5..e9bb5b338 100644
--- a/tex/context/base/mkiv/cont-run.lua
+++ b/tex/context/base/mkiv/cont-run.lua
@@ -9,27 +9,27 @@ if not modules then modules = { } end modules ['cont-run'] = {
-- When a style is loaded there is a good change that we never enter
-- this code.
-local report = logs.reporter("system")
local type, tostring = type, tostring
-local report = logs.reporter("sandbox","call")
-local fastserialize = table.fastserialize
-local quoted = string.quoted
-local possiblepath = sandbox.possiblepath
-
-local context = context
-local implement = interfaces.implement
-
-local qualified = { }
-local writeable = { }
-local readable = { }
-local blocked = { }
-local trace_files = false
-local trace_calls = false
-local nofcalls = 0
-local nofrejected = 0
-local logfilename = "sandbox.log"
+local report_sandbox = logs.reporter("sandbox","call")
+local report_system = logs.reporter("system")
+local fastserialize = table.fastserialize
+local quoted = string.quoted
+local possiblepath = sandbox.possiblepath
+
+local context = context
+local implement = interfaces.implement
+
+local qualified = { }
+local writeable = { }
+local readable = { }
+local blocked = { }
+local trace_files = false
+local trace_calls = false
+local nofcalls = 0
+local nofrejected = 0
+local logfilename = "sandbox.log"
local function registerstats()
statistics.register("sandboxing", function()
@@ -82,7 +82,7 @@ local function logsandbox(details)
end
end
if trace_calls then
- report("%s(%,t) => %l",details.comment,arguments,result)
+ report_sandbox("%s(%,t) => %l",details.comment,arguments,result)
end
nofcalls = nofcalls + 1
if not result then
@@ -146,7 +146,7 @@ local debugging = environment.arguments.debug
if sandboxing then
- report("enabling sandbox")
+ report_system("enabling sandbox")
sandbox.enable()
@@ -239,7 +239,7 @@ local function processjob()
-- can be part of (any) loaded (sub) file. The \starttext
-- wrapping might go away.
- report("processing as xml: %s",filename)
+ report_system("processing as xml: %s",filename)
context.starttext()
context.xmlprocess("main",filename,"")
@@ -247,7 +247,7 @@ local function processjob()
elseif suffix == "cld" or arguments.forcecld then
- report("processing as cld: %s",filename)
+ report_system("processing as cld: %s",filename)
context.runfile(filename)
@@ -256,7 +256,7 @@ local function processjob()
-- The wrapping might go away. Why is is it there in the
-- first place.
- report("processing as lua: %s",filename)
+ report_system("processing as lua: %s",filename)
context.starttext()
context.ctxlua(string.format('dofile("%s")',filename))
@@ -264,7 +264,7 @@ local function processjob()
elseif suffix == "mp" or arguments.forcemp then
- report("processing as metapost: %s",filename)
+ report_system("processing as metapost: %s",filename)
context.starttext()
context.processMPfigurefile(filename)
@@ -281,7 +281,7 @@ local function processjob()
elseif suffix == "mps" or arguments.forcemps then
- report("processing metapost output: %s",filename)
+ report_system("processing metapost output: %s",filename)
context.starttext()
context.startTEXpage()
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 8e5888eb9..9e91a2475 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{2020.11.07 18:44}
+\edef\contextversion{2020.11.08 12:31}
%D Kind of special:
diff --git a/tex/context/base/mkiv/context.mkxl b/tex/context/base/mkiv/context.mkxl
index 8562fc981..c00ca6194 100644
--- a/tex/context/base/mkiv/context.mkxl
+++ b/tex/context/base/mkiv/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2020.11.07 18:44}
+\edef\contextversion{2020.11.08 12:31}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
@@ -265,7 +265,7 @@
\loadmarkfile{strc-def} % might happen later
\loadmklxfile{strc-ref}
%loadmarkfile{strc-reg}
-\loadmkvifile{strc-lev} % experiment
+\loadmklxfile{strc-lev} % experiment
\loadmkxlfile{spac-hor}
\loadmkxlfile{spac-ali}
@@ -506,7 +506,7 @@
\loadmarkfile{phys-dim}
\loadmarkfile{node-rul} % beware, defined \underbar so after math
-\loadmkvifile{font-sol} % font solutions
+\loadmklxfile{font-sol} % font solutions
\loadmklxfile{strc-not}
\loadmkvifile{strc-lnt}
diff --git a/tex/context/base/mkiv/core-env.mkxl b/tex/context/base/mkiv/core-env.mkxl
index c862935e6..47f2c3c6c 100644
--- a/tex/context/base/mkiv/core-env.mkxl
+++ b/tex/context/base/mkiv/core-env.mkxl
@@ -49,13 +49,13 @@
\immutable\def\??mode{mode>} % special namespace, also used at lua end
-\permanent\protected\def\newmode #1{\ifcsname \??mode#1\endcsname\else\setmode{#1}\fi}
+\permanent\protected\def\newmode #1{\ifcsname \??mode#1\endcsname\else\resetmode{#1}\fi}
\permanent\protected\def\setmode #1{\expandafter \integerdef\csname\??mode#1\endcsname\plusone}
\permanent\protected\def\resetmode #1{\expandafter \integerdef\csname\??mode#1\endcsname\zerocount}
\permanent\protected\def\globalsetmode #1{\global\expandafter\integerdef\csname\??mode#1\endcsname\plusone}
\permanent\protected\def\globalresetmode #1{\global\expandafter\integerdef\csname\??mode#1\endcsname\zerocount}
-\permanent\protected\def\newsystemmode #1{\ifcsname \??mode\systemmodeprefix#1\endcsname\else\setsystemmode{#1}\fi}
+\permanent\protected\def\newsystemmode #1{\ifcsname \??mode\systemmodeprefix#1\endcsname\else\resetsystemmode{#1}\fi}
\permanent\protected\def\setsystemmode #1{\expandafter \integerdef\csname\??mode\systemmodeprefix#1\endcsname\plusone}
\permanent\protected\def\resetsystemmode #1{\expandafter \integerdef\csname\??mode\systemmodeprefix#1\endcsname\zerocount}
\permanent\protected\def\globalsetsystemmode #1{\global\expandafter\integerdef\csname\??mode\systemmodeprefix#1\endcsname\plusone}
@@ -130,8 +130,10 @@
\fi
\ifx\m_modes_asked\v!keep
% not changes, disabled when undefined
+ \orelse\ifx\m_modes_asked\v!yes
+ \setmode{#1}%
\else
- \expandafter\integerdef\lastnamedcs\ifx\m_modes_asked\v!yes\plusone\else\zerocount\fi
+ \resetmode{#1}%
\fi}
% handy for mp
diff --git a/tex/context/base/mkiv/font-fea.mklx b/tex/context/base/mkiv/font-fea.mklx
index 46034f82a..5f83c87d3 100644
--- a/tex/context/base/mkiv/font-fea.mklx
+++ b/tex/context/base/mkiv/font-fea.mklx
@@ -202,7 +202,7 @@
\c_font_feature_state\zerocount
\let\currentfeature\m_font_feature_asked}
-\protected\def\resetfeature
+\permanent\protected\def\resetfeature
{\ifx\currentfeature\s!current \else
\font_feature_reset_indeed
\fi}
@@ -213,7 +213,7 @@
\let\m_font_feature_list \s!current
\clf_resetfeature}
-\protected\def\revivefeature
+\permanent\protected\def\revivefeature
{\ifx\currentfeature\s!current \else
\font_feature_revive_indeed
\fi}
@@ -296,28 +296,30 @@
\let\m_font_feature_list\currentfeature
\clf_setfontfeature{\currentfeature}}
-\let\resetfontfeature\resetfeature
+% these are obsolete (don't use them any longer)
+
+\aliased\let\resetfontfeature\resetfeature % obsolete
% these are obsolete (don't use them any longer)
-% \let\addfontfeaturetoset \font_feature_add_nop
-% \let\subtractfontfeaturefromset \font_feature_subtract_nop
-% \let\addfontfeaturetofont \font_feature_add_nop
-% \let\subtractfontfeaturefromfont\font_feature_subtract_nop
+% \let\addfontfeaturetoset \font_feature_add_nop % obsolete
+% \let\subtractfontfeaturefromset \font_feature_subtract_nop % obsolete
+% \let\addfontfeaturetofont \font_feature_add_nop % obsolete
+% \let\subtractfontfeaturefromfont\font_feature_subtract_nop % obsolete
-% also old, maybe some day a comptability module
+% these are obsolete (don't use them any longer)
-\let\setff\setfontfeature
-\let\addfs\doaddfeature
-\let\subfs\dosubtractfeature
-\let\addff\doaddfeature
-\let\subff\dosubtractfeature
+\aliased\let\setff\setfontfeature % obsolete
+\aliased\let\addfs\doaddfeature % obsolete
+\aliased\let\subfs\dosubtractfeature % obsolete
+\aliased\let\addff\doaddfeature % obsolete
+\aliased\let\subff\dosubtractfeature % obsolete
%D \macros
%D {os}
%D
-%D In good old \TEX, the old style numerals were often taken
-%D from the math fonts. No longer.
+%D In good old \TEX, the old style numerals were often taken from the math fonts. No
+%D longer.
\definefontfeature
[just-os]
@@ -334,8 +336,8 @@
\permanent\def\doifelsefontfeature #feature{\clf_doifelsefontfeature {#feature}} % expandable
\permanent\def\doifunknownfontfeature #feature{\clf_doifunknownfontfeature {#feature}} % expandable
-\let\doifcurrentfonthasfeatureelse\doifelsecurrentfonthasfeature
-\let\doiffontfeatureelse \doifelsefontfeature
+\aliased\let\doifcurrentfonthasfeatureelse\doifelsecurrentfonthasfeature
+\aliased\let\doiffontfeatureelse \doifelsefontfeature
% new:
diff --git a/tex/context/base/mkiv/font-sol.mklx b/tex/context/base/mkiv/font-sol.mklx
new file mode 100644
index 000000000..8f3d3d712
--- /dev/null
+++ b/tex/context/base/mkiv/font-sol.mklx
@@ -0,0 +1,131 @@
+%D \module
+%D [ file=font-sol,
+%D version=2009.05.19,
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=Solutions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Node Support / Splitters}
+
+% todo: pass color for tracing
+
+%D This module is specially made for the oriental \TEX\ project. The working is as
+%D follows (and tuned for fonts like Idris' Husayni. The following method came to
+%D my mind after a couple of Skype sessions with Idris while working on the rough
+%D edges of the Husayni font and playing with font dynamics.
+%D
+%D \startitemize[packed]
+%D
+%D \item We define a couple of features sets, some can have stylistics variants
+%D that result in the same words getting a different width. Normally this
+%D happens in a goodies file.
+%D
+%D \item We group such features in a solution set. A solutionset can be enabled
+%D by setting an attribute.
+%D
+%D \item For each paragraph we identify words that get this set applied. We replace
+%D these words by a user node that refers to the original.
+%D
+%D \item For each word we apply the features to a copy that we associate with this
+%D original word.
+%D
+%D \item At the end we have a paragraph (node list) with user nodes that point to a
+%D cache that has originals and processed variants.
+%D
+%D \item When the paragraph is broken into lines we optimize the spacing by
+%D substituting variants.
+%D
+%D \stopitemize
+%D
+%D This approach permits us to use a dedicated paragraph builder, one that treats
+%D the user nodes special and takes the alternatives into account.
+%D
+%D Currently we assume only one solution being active. Maybe some day I'll support
+%D a mixture. This is only one way of optimizing and after several experiments this
+%D one was chosen as testcase. It took quite some experiments (and time) to get thus
+%D far.
+%D
+%D The is experimental code for the Oriental \TEX\ project and aspects of it might
+%D change.
+%D
+%D \starttyping
+%D \setupfontsolutions[method={random,preroll},criterium=1,randomseed=101]
+%D
+%D \definefontsolution % actually only the last run needs to be done this way
+%D [FancyHusayni]
+%D [goodies=husayni,
+%D solution=experimental]
+%D
+%D \definedfont[husayni*husayni-default at 24pt]
+%D \setupinterlinespace[line=36pt]
+%D \righttoleft
+%D \enabletrackers[parbuilders.solutions.splitters.colors]
+%D \setfontsolution[FancyHusayni]
+%D alb alb alb \par
+%D \resetfontsolution
+%D \disabletrackers[parbuilders.solutions.splitters.colors]
+%D \stoptyping
+
+\registerctxluafile{font-sol}{}
+
+\unprotect
+
+\definesystemattribute[splitter][public]
+
+\installcorenamespace{fontsolution}
+
+\installcommandhandler \??fontsolution {fontsolution} \??fontsolution
+
+\aliased\let\setupfontsolutions\setupfontsolution
+
+\appendtoks
+ \clf_definefontsolution
+ {\currentfontsolution}%
+ {% these are frozen
+ goodies {\fontsolutionparameter\s!goodies}%
+ solution {\fontsolutionparameter\c!solution}%
+ less {\fontsolutionparameter\c!less}%
+ more {\fontsolutionparameter\c!more}%
+ }%
+ \relax
+\to \everydefinefontsolution
+
+\permanent\protected\def\setfontsolution[#solution]% just one
+ {\edef\currentfontsolution{#solution}%
+ \clf_setfontsolution
+ {\currentfontsolution}%
+ {%
+ method {\fontsolutionparameter\c!method}%
+ criterium {\fontsolutionparameter\c!criterium}%
+ % randomseed {\fontsolutionparameter\c!random}%
+ }%
+ \relax}
+
+\let\currentfontsolution\empty
+
+\permanent\protected\def\resetfontsolution % resets all
+ {\clf_resetfontsolution
+ \let\currentfontsolution\empty}
+
+\permanent\protected\def\startfontsolution % [#1]
+ {\pushmacro\currentfontsolution
+ \setfontsolution}
+
+\permanent\protected\def\stopfontsolution
+ {\ifhmode\par\fi
+ \clf_stopfontsolution
+ \popmacro\currentfontsolution}
+
+% We initialize this module at the \LUA\ end.
+%
+% \setupfontsolutions
+% [\c!method={\v!normal,preroll},
+% \c!criterium=0]
+
+\protect
diff --git a/tex/context/base/mkiv/lxml-css.lua b/tex/context/base/mkiv/lxml-css.lua
index 96dc626f7..f783a9224 100644
--- a/tex/context/base/mkiv/lxml-css.lua
+++ b/tex/context/base/mkiv/lxml-css.lua
@@ -17,6 +17,8 @@ local setmetatableindex = table.setmetatableindex
xml.css = xml.css or { }
local css = xml.css
+local report_css = logs and logs.reporter("xml","css") or function(...) print(string.format(...)) end
+
local getid = lxml.getid
if not number.dimenfactors then
@@ -787,7 +789,7 @@ local p_not = P(":not") * Cc(true) * skipspace * P("(") * skipspace
local p_yes = Cc(false) * skipspace * p_step
local p_stepper = Ct((skipspace * (p_not+p_yes))^1)
-local p_steps = Ct((p_stepper * p_separator^0)^1) * skipspace * (P(-1) + function() print("error") end)
+local p_steps = Ct((p_stepper * p_separator^0)^1) * skipspace * (P(-1) + function() report_css("recovering from error") end)
local cache = setmetatableindex(function(t,k)
local v = lpegmatch(p_steps,k) or false
diff --git a/tex/context/base/mkiv/pack-rul.mkxl b/tex/context/base/mkiv/pack-rul.mkxl
index 8ab327c79..c9383dff0 100644
--- a/tex/context/base/mkiv/pack-rul.mkxl
+++ b/tex/context/base/mkiv/pack-rul.mkxl
@@ -70,7 +70,7 @@
%D Inheritance:
\permanent\protected\def\installinheritedframed#1%
- {\normalexpanded{\doinstallinheritedframed
+ {\normalexpanded{\mult_interfaces_install_inherited_framed
\expandafter\noexpand\csname current#1\endcsname
\expandafter\noexpand\csname #1parameter\endcsname
\expandafter\noexpand\csname #1parameterhash\endcsname
@@ -81,7 +81,7 @@
\expandafter\noexpand\csname inherited#1framed\endcsname
\expandafter\noexpand\csname inherited#1framedbox\endcsname}} % new
-\protected\def\doinstallinheritedframed#1#2#3#4#5#6#7#8#9%
+\protected\def\mult_interfaces_install_inherited_framed#1#2#3#4#5#6#7#8#9%
{\enforced\frozen\def#5##1##2{\ifx##1\relax#6{##2}\else#4{##1}{##2}\fi}%
\enforced\frozen\def#6##1{\ifcsname\??framed:##1\endcsname\??framed:##1\else\??empty\fi}% root
\frozen\instance\protected\def#8%
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index d9a49b9af..a71011ae0 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index b9de0083b..39b3b5304 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/strc-lev.mklx b/tex/context/base/mkiv/strc-lev.mklx
new file mode 100644
index 000000000..b8b633c32
--- /dev/null
+++ b/tex/context/base/mkiv/strc-lev.mklx
@@ -0,0 +1,101 @@
+%D \module
+%D [ file=strc-lev,
+%D version=2010.09.23,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Automatic Levels,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Automatic Levels}
+
+%D This module is the result of a discussion between Alan Braslau and
+%D me. I used to have a private (\MKII) module for this but the new
+%D structure code in \MKIV\ is more suitable for this so now we have
+%D it as core functionality. For the moment this an experiment that
+%D Alan and I conduct so it might evolve.
+
+\registerctxluafile{strc-lev}{}
+
+\unprotect
+
+\unexpanded\def\definesectionlevels{\dodoubleargument\strc_levels_define}
+\unexpanded\def\startsectionlevel {\dosingleempty \strc_levels_start_section}
+\unexpanded\def\startsubjectlevel {\dosingleempty \strc_levels_start_subject}
+
+\unexpanded\def\strc_levels_define[#category][#list]{\clf_definesectionlevels{#category}{#list}}
+\unexpanded\def\stopsectionlevel {\clf_stopsectionlevel}
+\unexpanded\def\stopsubjectlevel {\clf_stopsectionlevel}
+
+\unexpanded\def\nostarthead{\dotripleargument\strc_levels_start_nop} % used at the lua end
+\unexpanded\def\nostophead {\dosingleargument\strc_levels_stop_nop } % used at the lua end
+
+\unexpanded\def\strc_levels_start_section[#category]%
+ {\doifelseassignment{#category}%
+ {\clf_startsectionlevel\plusone{\v!default}{\currentnamedsection}[#category]}%
+ {\clf_startsectionlevel\plusone {#category}{\currentnamedsection}}}
+
+\unexpanded\def\strc_levels_start_subject[#category]%
+ {\doifelseassignment{#category}%
+ {\clf_startsectionlevel\plustwo{\v!default}{\currentnamedsection}[#category]}%
+ {\clf_startsectionlevel\plustwo {#category}{\currentnamedsection}}}
+
+\unexpanded\def\strc_levels_start_nop[#category][#settings][#userdata]%
+ {\blank
+ \noindentation{\tttf[start missing section level #category]}
+ \blank}
+
+\unexpanded\def\strc_levels_stop_nop[#category]%
+ {\blank
+ \noindentation{\tttf[stop missing section level #category]}
+ \blank}
+
+\definesectionlevels
+ [\v!default]
+ [{\v!chapter,\v!title},
+ {\v!section,\v!subject},
+ {\v!subsection,\v!subsubject},
+ {\v!subsubsection,\v!subsubsubject},
+ {\v!subsubsubsection,\v!subsubsubject},
+ {\v!subsubsubsubsection,\v!subsubsubject}]
+
+\let\definestructurelevels\definesectionlevels
+\let\startstructurelevel \startsectionlevel
+\let\stopstructurelevel \stopsectionlevel
+
+\protect \endinput
+
+% \starttext
+%
+% \definehead[xxxxxxsection][subsubsection]
+% \setuphead [xxxxxxsection][color=red]
+%
+% \definesectionlevels[main][chapter,section,subsection,subsubsection]
+% \definesectionlevels[next][chapter,section,subsection,xxxxxxsection]
+%
+% \startsectionlevel [main] [title=first top level]
+%
+% \startsectionlevel [main] [title=first lower level]
+% \startsectionlevel [main] [title=second lower level]
+% \startsectionlevel [main] [title=third lower level]
+% test
+% \stopsectionlevel
+% \stopsectionlevel
+% \stopsectionlevel
+%
+% \startsectionlevel [main] [title=first lower level]
+% \startsectionlevel [main] [title=second lower level]
+% \startsectionlevel [next] [title=third lower level]
+% test
+% \stopsectionlevel
+% \stopsectionlevel
+% \stopsectionlevel
+%
+% \stopsectionlevel
+%
+% \stoptext
+
diff --git a/tex/context/base/mkiv/strc-lev.mkvi b/tex/context/base/mkiv/strc-lev.mkvi
index b8b633c32..cfb704fc9 100644
--- a/tex/context/base/mkiv/strc-lev.mkvi
+++ b/tex/context/base/mkiv/strc-lev.mkvi
@@ -23,33 +23,31 @@
\unprotect
-\unexpanded\def\definesectionlevels{\dodoubleargument\strc_levels_define}
-\unexpanded\def\startsectionlevel {\dosingleempty \strc_levels_start_section}
-\unexpanded\def\startsubjectlevel {\dosingleempty \strc_levels_start_subject}
+\permanent\tolerant\protected\def\definesectionlevels[#category]#spacer[#list]%
+ {\clf_definesectionlevels{#category}{#list}} % we could scan/use public at the lua end
-\unexpanded\def\strc_levels_define[#category][#list]{\clf_definesectionlevels{#category}{#list}}
-\unexpanded\def\stopsectionlevel {\clf_stopsectionlevel}
-\unexpanded\def\stopsubjectlevel {\clf_stopsectionlevel}
-
-\unexpanded\def\nostarthead{\dotripleargument\strc_levels_start_nop} % used at the lua end
-\unexpanded\def\nostophead {\dosingleargument\strc_levels_stop_nop } % used at the lua end
-
-\unexpanded\def\strc_levels_start_section[#category]%
+\permanent\tolerant\protected\def\startsectionlevel[#category]%
{\doifelseassignment{#category}%
{\clf_startsectionlevel\plusone{\v!default}{\currentnamedsection}[#category]}%
{\clf_startsectionlevel\plusone {#category}{\currentnamedsection}}}
-\unexpanded\def\strc_levels_start_subject[#category]%
+\permanent\protected\def\stopsectionlevel
+ {\clf_stopsectionlevel} % we could use public at the lua end
+
+\permanent\tolerant\protected\def\startsubjectlevel[#category]%
{\doifelseassignment{#category}%
{\clf_startsectionlevel\plustwo{\v!default}{\currentnamedsection}[#category]}%
{\clf_startsectionlevel\plustwo {#category}{\currentnamedsection}}}
-\unexpanded\def\strc_levels_start_nop[#category][#settings][#userdata]%
+\permanent\protected\def\stopsubjectlevel
+ {\clf_stopsectionlevel} % we could use public at the lua end
+
+\permanent\tolerant\protected\def\nostarthead[#category]#spacer[#settings]#spacer[#userdata]%
{\blank
\noindentation{\tttf[start missing section level #category]}
\blank}
-\unexpanded\def\strc_levels_stop_nop[#category]%
+\permanent\tolerant\protected\def\nostarthead[#category]%
{\blank
\noindentation{\tttf[stop missing section level #category]}
\blank}
@@ -63,9 +61,9 @@
{\v!subsubsubsection,\v!subsubsubject},
{\v!subsubsubsubsection,\v!subsubsubject}]
-\let\definestructurelevels\definesectionlevels
-\let\startstructurelevel \startsectionlevel
-\let\stopstructurelevel \stopsectionlevel
+\aliased\let\definestructurelevels\definesectionlevels
+\aliased\let\startstructurelevel \startsectionlevel
+\aliased\let\stopstructurelevel \stopsectionlevel
\protect \endinput
diff --git a/tex/context/base/mkiv/symb-ini.mkxl b/tex/context/base/mkiv/symb-ini.mkxl
index ae1fe8565..53a1f8979 100644
--- a/tex/context/base/mkiv/symb-ini.mkxl
+++ b/tex/context/base/mkiv/symb-ini.mkxl
@@ -208,8 +208,7 @@
%D By default, such symbols scale along the current bodyfont size or running font
%D size (which is better).
-\ifdefined\externalfigure \else \def\externalfigure[#1][#2]{#1} \fi
-\ifdefined\resetexternalfigures \else \let\resetexternalfigures\relax \fi
+\ifdefined\externalfigure \else \def\externalfigure[#1][#2]{#1} \fi
\def\defaultsymbolfactor{10}
\def\defaultsymbolheight{1.25ex}
@@ -217,10 +216,6 @@
\permanent\tolerant\protected\def\figuresymbol[#1]#*[#2]%
{\externalfigure[#1][\c!reset=\v!yes,\c!symbol=\v!yes,\c!height=\defaultsymbolheight,#2]}
-\appendtoks
- \resetexternalfigures
-\to \everysymbol
-
\permanent\tolerant\protected\def\definefiguresymbol[#1]#*[#2]#*[#3]%
{\ifarguments\or\else
\definesymbol[#1][{\symb_figure[#2][#3]}]%
diff --git a/tex/context/base/mkiv/syst-ini.mkxl b/tex/context/base/mkiv/syst-ini.mkxl
index 02202063c..f04e2e2db 100644
--- a/tex/context/base/mkiv/syst-ini.mkxl
+++ b/tex/context/base/mkiv/syst-ini.mkxl
@@ -514,7 +514,7 @@
\permanent\def\emptyvbox{\normalvpack{}} % no copy as we need to set attributes
\permanent\def\emptyhbox{\normalhpack{}} % no copy as we need to set attributes
-\let\leavevmode\unvoidbox % we prefer to use \dontleavehmode
+\aliased\let\leavevmode\unvoidbox % we prefer to use \dontleavehmode
%D \macros
%D {dontcomplain}
diff --git a/tex/context/base/mkiv/trac-set.lua b/tex/context/base/mkiv/trac-set.lua
index 85a1155f1..3974830fa 100644
--- a/tex/context/base/mkiv/trac-set.lua
+++ b/tex/context/base/mkiv/trac-set.lua
@@ -254,8 +254,12 @@ end
-- we could make this into a module but we also want the rest avaliable
-local function report_setter(setter,fmt,...)
- print(formatters["%-15s : %s\n"](setter.name,formatters[fmt](...)))
+function setters.report(setter,fmt,...)
+ if fmt then
+ print(formatters["%-15s : %s"](setter.name,formatters[fmt](...)))
+ else
+ print("")
+ end
end
local function setter_default(setter,name)
@@ -273,7 +277,7 @@ local function new_setter(name) -- we could use foo:bar syntax (but not used tha
setter = {
data = allocate(), -- indexed, but also default and value fields
name = name,
- report = function(...) report_setter (setter,...) end,
+ report = function(...) setters.report (setter,...) end, -- setters.report gets implemented later
enable = function(...) enable_setter (setter,...) end,
disable = function(...) disable_setter (setter,...) end,
reset = function(...) reset_setter (setter,...) end, -- can be dangerous
@@ -289,7 +293,7 @@ end
setters.enable = enable_setter
setters.disable = disable_setter
-setters.report = report_setter
+-------.report = report_setter -- todo: adapt after call (defaults to print)
setters.register = register_setter
setters.list = list_setter
setters.show = show_setter
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 368ce6215..da9e5bc11 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 : 2020-11-07 18:44
+-- merge date : 2020-11-08 12:31
do -- begin closure to overcome local limits and interference