summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2012-07-26 21:20:16 +0300
committerMarius <mariausol@gmail.com>2012-07-26 21:20:16 +0300
commitf09b2aabeeebefd483622c018ae170e37397308d (patch)
tree6835400206e98ff028450e631d2cd8418831a3b2 /tex
parent0d565456a826f94f3d8a7d8f9bb28982737615cd (diff)
downloadcontext-f09b2aabeeebefd483622c018ae170e37397308d.tar.gz
beta 2012.07.26 19:37
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/anch-pgr.lua2
-rw-r--r--tex/context/base/anch-pos.lua18
-rw-r--r--tex/context/base/attr-col.lua71
-rw-r--r--tex/context/base/attr-eff.lua16
-rw-r--r--tex/context/base/attr-ini.lua36
-rw-r--r--tex/context/base/attr-lay.lua70
-rw-r--r--tex/context/base/attr-neg.lua5
-rw-r--r--tex/context/base/back-ini.lua4
-rw-r--r--tex/context/base/back-swf.mkiv8
-rw-r--r--tex/context/base/back-u3d.mkiv7
-rw-r--r--tex/context/base/bibl-tra.lua2
-rw-r--r--tex/context/base/buff-ini.lua12
-rw-r--r--tex/context/base/buff-par.lua2
-rw-r--r--tex/context/base/buff-ver.lua2
-rw-r--r--tex/context/base/catc-ini.lua21
-rw-r--r--tex/context/base/char-cjk.lua18
-rw-r--r--tex/context/base/char-enc.lua39
-rw-r--r--tex/context/base/char-ent.lua2
-rw-r--r--tex/context/base/char-ini.lua55
-rw-r--r--tex/context/base/char-utf.lua1
-rw-r--r--tex/context/base/chem-ini.lua8
-rw-r--r--tex/context/base/chem-str.lua56
-rw-r--r--tex/context/base/chem-str.mkiv18
-rw-r--r--tex/context/base/cldf-bas.lua32
-rw-r--r--tex/context/base/cldf-com.lua4
-rw-r--r--tex/context/base/cldf-ini.lua14
-rw-r--r--tex/context/base/cldf-int.lua9
-rw-r--r--tex/context/base/cldf-ver.lua4
-rw-r--r--tex/context/base/colo-ini.lua105
-rw-r--r--tex/context/base/colo-run.lua6
-rw-r--r--tex/context/base/colo-run.mkiv4
-rw-r--r--tex/context/base/cont-new.mkii2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4090 -> 4087 bytes
-rw-r--r--tex/context/base/context-version.pngbin106603 -> 106497 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv3
-rw-r--r--tex/context/base/context.rme7
-rw-r--r--tex/context/base/context.todo6
-rw-r--r--tex/context/base/core-con.lua128
-rw-r--r--tex/context/base/core-env.lua3
-rw-r--r--tex/context/base/core-two.lua2
-rw-r--r--tex/context/base/core-uti.lua18
-rw-r--r--tex/context/base/file-ini.lua5
-rw-r--r--tex/context/base/file-lib.lua7
-rw-r--r--tex/context/base/file-mod.lua14
-rw-r--r--tex/context/base/file-syn.lua7
-rw-r--r--tex/context/base/font-afk.lua199
-rw-r--r--tex/context/base/font-afm.lua364
-rw-r--r--tex/context/base/font-agl.lua2
-rw-r--r--tex/context/base/font-chk.lua2
-rw-r--r--tex/context/base/font-chk.mkiv22
-rw-r--r--tex/context/base/font-cid.lua17
-rw-r--r--tex/context/base/font-col.lua96
-rw-r--r--tex/context/base/font-ctx.lua12
-rw-r--r--tex/context/base/font-ldr.lua4
-rw-r--r--tex/context/base/font-lib.mkvi2
-rw-r--r--tex/context/base/font-sol.lua73
-rw-r--r--tex/context/base/font-tra.mkiv28
-rw-r--r--tex/context/base/java-ini.lua37
-rw-r--r--tex/context/base/lang-def.lua44
-rw-r--r--tex/context/base/lang-ini.lua91
-rw-r--r--tex/context/base/lang-ini.mkiv14
-rw-r--r--tex/context/base/lang-lab.lua36
-rw-r--r--tex/context/base/lang-lab.mkiv13
-rw-r--r--tex/context/base/lang-url.lua3
-rw-r--r--tex/context/base/lang-wrd.lua95
-rw-r--r--tex/context/base/lpdf-ren.lua111
-rw-r--r--tex/context/base/luat-cod.lua3
-rw-r--r--tex/context/base/luat-cod.mkiv6
-rw-r--r--tex/context/base/lxml-ctx.mkiv3
-rw-r--r--tex/context/base/lxml-tex.lua7
-rw-r--r--tex/context/base/m-barcodes.mkiv8
-rw-r--r--tex/context/base/m-chart.mkvi40
-rw-r--r--tex/context/base/m-database.mkiv2
-rw-r--r--tex/context/base/m-morse.mkvi12
-rw-r--r--tex/context/base/m-spreadsheet.lua2
-rw-r--r--tex/context/base/m-timing.mkiv10
-rw-r--r--tex/context/base/m-translate.mkiv21
-rw-r--r--tex/context/base/math-act.lua2
-rw-r--r--tex/context/base/math-dim.lua6
-rw-r--r--tex/context/base/math-ini.lua111
-rw-r--r--tex/context/base/meta-ini.lua2
-rw-r--r--tex/context/base/meta-pdf.lua7
-rw-r--r--tex/context/base/meta-tex.lua2
-rw-r--r--tex/context/base/mlib-ctx.lua2
-rw-r--r--tex/context/base/mlib-pdf.lua93
-rw-r--r--tex/context/base/mlib-run.lua195
-rw-r--r--tex/context/base/mult-aux.mkiv2
-rw-r--r--tex/context/base/mult-chk.lua5
-rw-r--r--tex/context/base/mult-fun.lua95
-rw-r--r--tex/context/base/mult-ini.lua130
-rw-r--r--tex/context/base/mult-ini.mkiv42
-rw-r--r--tex/context/base/mult-low.lua4
-rw-r--r--tex/context/base/mult-prm.mkiv15
-rw-r--r--tex/context/base/norm-ctx.mkiv8
-rw-r--r--tex/context/base/pack-obj.lua4
-rw-r--r--tex/context/base/regi-ini.lua16
-rw-r--r--tex/context/base/s-fnt-10.mkiv2
-rw-r--r--tex/context/base/s-fnt-28.mkiv2
-rw-r--r--tex/context/base/s-fnt-29.mkiv2
-rw-r--r--tex/context/base/s-fnt-32.mkiv2
-rw-r--r--tex/context/base/s-inf-01.mkvi2
-rw-r--r--tex/context/base/s-lan-04.mkiv2
-rw-r--r--tex/context/base/s-pre-69.mkiv2
-rw-r--r--tex/context/base/scrn-fld.lua6
-rw-r--r--tex/context/base/scrp-cjk.lua3
-rw-r--r--tex/context/base/scrp-ini.lua276
-rw-r--r--tex/context/base/status-files.pdfbin24335 -> 24404 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin184570 -> 189757 bytes
-rw-r--r--tex/context/base/status-mkiv.lua6966
-rw-r--r--tex/context/base/status-mkiv.tex127
-rw-r--r--tex/context/base/strc-doc.lua2
-rw-r--r--tex/context/base/strc-ini.lua10
-rw-r--r--tex/context/base/strc-mar.lua2
-rw-r--r--tex/context/base/strc-ref.lua4
-rw-r--r--tex/context/base/strc-syn.mkiv4
-rw-r--r--tex/context/base/supp-box.lua12
-rw-r--r--tex/context/base/supp-ran.lua28
-rw-r--r--tex/context/base/symb-run.mkiv8
-rw-r--r--tex/context/base/syst-aux.lua16
-rw-r--r--tex/context/base/syst-aux.mkiv32
-rw-r--r--tex/context/base/syst-ini.mkiv8
-rw-r--r--tex/context/base/syst-lua.lua52
-rw-r--r--tex/context/base/syst-lua.mkiv7
-rw-r--r--tex/context/base/tabl-ltb.mkiv6
-rw-r--r--tex/context/base/tabl-tbl.lua6
-rw-r--r--tex/context/base/tabl-xtb.lua2
-rw-r--r--tex/context/base/task-ini.lua5
-rw-r--r--tex/context/base/trac-ctx.lua4
-rw-r--r--tex/context/base/trac-fil.lua33
-rw-r--r--tex/context/base/trac-set.lua2
-rw-r--r--tex/context/base/trac-tim.lua2
-rw-r--r--tex/context/base/type-ini.lua17
-rw-r--r--tex/context/base/type-ini.mkvi12
-rw-r--r--tex/context/base/x-asciimath.mkiv2
-rw-r--r--tex/context/base/x-udhr.mkiv2
-rw-r--r--tex/context/fonts/husayni.lfg1
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua19
139 files changed, 5829 insertions, 4838 deletions
diff --git a/tex/context/base/anch-pgr.lua b/tex/context/base/anch-pgr.lua
index aabf018fc..aba61794b 100644
--- a/tex/context/base/anch-pgr.lua
+++ b/tex/context/base/anch-pgr.lua
@@ -8,6 +8,8 @@ if not modules then modules = { } end modules ['anch-pgr'] = {
-- todo: we need to clean up lists (of previous pages)
+local commands, context = commands, context
+
local format = string.format
local abs = math.abs
local concat, sort = table.concat, table.sort
diff --git a/tex/context/base/anch-pos.lua b/tex/context/base/anch-pos.lua
index 5d01a6e46..6fa916291 100644
--- a/tex/context/base/anch-pos.lua
+++ b/tex/context/base/anch-pos.lua
@@ -17,6 +17,8 @@ more efficient.</p>
-- maybe replace texsp by our own converter (stay at the lua end)
-- eventually mp will have large numbers so we can use sp there too
+local commands, context = commands, context
+
local tostring, next, rawget, setmetatable = tostring, next, rawget, setmetatable
local concat, sort = table.concat, table.sort
local format, gmatch, match = string.format, string.gmatch, string.match
@@ -969,35 +971,35 @@ function commands.MPxywhd(id)
end
end
--- is testcase already defined? if so, then local
+local doif, doifelse = commands.doif, commands.doifelse
function commands.doifpositionelse(name)
- commands.doifelse(collected[name])
+ doifelse(collected[name])
end
function commands.doifposition(name)
- commands.doif(collected[name])
+ doif(collected[name])
end
function commands.doifpositiononpage(name,page) -- probably always realpageno
local c = collected[name]
- commands.testcase(c and c.p == page)
+ doifelse(c and c.p == page)
end
function commands.doifoverlappingelse(one,two,overlappingmargin)
- commands.testcase(overlapping(one,two,overlappingmargin))
+ doifelse(overlapping(one,two,overlappingmargin))
end
function commands.doifpositionsonsamepageelse(list,page)
- commands.testcase(onsamepage(list))
+ doifelse(onsamepage(list))
end
function commands.doifpositionsonthispageelse(list)
- commands.testcase(onsamepage(list,tostring(tex.count.realpageno)))
+ doifelse(onsamepage(list,tostring(tex.count.realpageno)))
end
function commands.doifelsepositionsused()
- commands.testcase(next(collected))
+ doifelse(next(collected))
end
commands.markcolumnbox = jobpositions.markcolumnbox
diff --git a/tex/context/base/attr-col.lua b/tex/context/base/attr-col.lua
index c592d1dc1..18182ba85 100644
--- a/tex/context/base/attr-col.lua
+++ b/tex/context/base/attr-col.lua
@@ -15,8 +15,11 @@ if not modules then modules = { } end modules ['attr-col'] = {
local type = type
local format = string.format
local concat = table.concat
+local min, max, floor = math.min, math.max, math.floor
-local attributes, nodes = attributes, nodes
+local attributes, nodes, utilities, logs, backends, storage = attributes, nodes, utilities, logs, backends, storage
+local commands, context, interfaces = commands, context, interfaces
+local tex = tex
local allocate = utilities.storage.allocate
local setmetatableindex = table.setmetatableindex
@@ -31,11 +34,13 @@ local report_transparencies = logs.reporter("transparencies","support")
-- nb: attributes: color etc is much slower than normal (marks + literals) but ...
-- nb. too many "0 g"s
-local states = attributes.states
-local tasks = nodes.tasks
-local nodeinjections = backends.nodeinjections
-local registrations = backends.registrations
-local unsetvalue = attributes.unsetvalue
+local states = attributes.states
+local tasks = nodes.tasks
+local nodeinjections = backends.nodeinjections
+local registrations = backends.registrations
+local unsetvalue = attributes.unsetvalue
+
+local registerstorage = storage.register
-- We can distinguish between rules and glyphs but it's not worth the trouble. A
-- first implementation did that and while it saves a bit for glyphs and rules, it
@@ -63,7 +68,7 @@ local unsetvalue = attributes.unsetvalue
-- colors.strings[color] = "return colors." .. colorspace .. "(" .. concat({...},",") .. ")"
-- end
--
--- storage.register("attributes/colors/data", colors.strings, "attributes.colors.data") -- evaluated
+-- registerstorage("attributes/colors/data", colors.strings, "attributes.colors.data") -- evaluated
--
-- We assume that only processcolors are defined in the format.
@@ -83,9 +88,17 @@ colors.default = 1
colors.main = nil
colors.triggering = true
colors.supported = true
+colors.model = "all"
+
+local data = colors.data
+local values = colors.values
+local registered = colors.registered
-storage.register("attributes/colors/values", colors.values, "attributes.colors.values")
-storage.register("attributes/colors/registered", colors.registered, "attributes.colors.registered")
+local numbers = attributes.numbers
+local list = attributes.list
+
+registerstorage("attributes/colors/values", values, "attributes.colors.values")
+registerstorage("attributes/colors/registered", registered, "attributes.colors.registered")
local templates = {
rgb = "r:%s:%s:%s",
@@ -104,17 +117,6 @@ local models = {
cmyk = 4,
}
-colors.model = "all"
-
-local data = colors.data
-local values = colors.values
-local registered = colors.registered
-
-local numbers = attributes.numbers
-local list = attributes.list
-
-local min, max, floor = math.min, math.max, math.floor
-
local function rgbtocmyk(r,g,b) -- we could reduce
return 1-r, 1-g, 1-b, 0
end
@@ -125,9 +127,9 @@ end
local function rgbtogray(r,g,b)
if colors.weightgray then
- return .30*r+.59*g+.11*b
+ return .30*r + .59*g + .11*b
else
- return r/3+g/3+b/3
+ return r/3 + g/3 + b/3
end
end
@@ -135,6 +137,17 @@ local function cmyktogray(c,m,y,k)
return rgbtogray(cmyktorgb(c,m,y,k))
end
+-- not critical so not needed:
+--
+-- local function cmyktogray(c,m,y,k)
+-- local r, g, b = 1.0 - min(1.0,c+k), 1.0 - min(1.0,m+k), 1.0 - min(1.0,y+k)
+-- if colors.weightgray then
+-- return .30*r + .59*g + .11*b
+-- else
+-- return r/3 + g/3 + b/3
+-- end
+-- end
+
-- http://en.wikipedia.org/wiki/HSI_color_space
-- http://nl.wikipedia.org/wiki/HSV_(kleurruimte)
@@ -363,15 +376,15 @@ transparencies.triggering = true
transparencies.attribute = a_transparency
transparencies.supported = true
-storage.register("attributes/transparencies/registered", transparencies.registered, "attributes.transparencies.registered")
-storage.register("attributes/transparencies/values", transparencies.values, "attributes.transparencies.values")
+local registered = transparencies.registered -- we could use a 2 dimensional table instead
+local data = transparencies.data
+local values = transparencies.values
+local template = "%s:%s"
-local registered = transparencies.registered -- we could use a 2 dimensional table instead
-local data = transparencies.data
-local values = transparencies.values
-local template = "%s:%s"
+registerstorage("attributes/transparencies/registered", registered, "attributes.transparencies.registered")
+registerstorage("attributes/transparencies/values", values, "attributes.transparencies.values")
-local function inject_transparency (...)
+local function inject_transparency(...)
inject_transparency = nodeinjections.transparency
return inject_transparency(...)
end
diff --git a/tex/context/base/attr-eff.lua b/tex/context/base/attr-eff.lua
index 64a620bad..60e0c08ac 100644
--- a/tex/context/base/attr-eff.lua
+++ b/tex/context/base/attr-eff.lua
@@ -8,7 +8,9 @@ if not modules then modules = { } end modules ['attr-eff'] = {
local format = string.format
-local attributes, nodes = attributes, nodes
+local commands, interfaces = commands, interfaces
+local attributes, nodes, backends, utilities = attributes, nodes, backends, utilities
+local tex = tex
local states = attributes.states
local tasks = nodes.tasks
@@ -30,14 +32,14 @@ effects.values = effects.values or { }
effects.registered = effects.registered or { }
effects.attribute = a_effect
-storage.register("attributes/effects/registered", effects.registered, "attributes.effects.registered")
-storage.register("attributes/effects/values", effects.values, "attributes.effects.values")
+local data = effects.data
+local registered = effects.registered
+local values = effects.values
-local template = "%s:%s:%s"
+local template = "%s:%s:%s"
-local data = effects.data
-local registered = effects.registered
-local values = effects.values
+storage.register("attributes/effects/registered", registered, "attributes.effects.registered")
+storage.register("attributes/effects/values", values, "attributes.effects.values")
-- valid effects: normal inner outer both hidden (stretch,rulethickness,effect)
diff --git a/tex/context/base/attr-ini.lua b/tex/context/base/attr-ini.lua
index f3714fcb4..5a3bafce3 100644
--- a/tex/context/base/attr-ini.lua
+++ b/tex/context/base/attr-ini.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['attr-ini'] = {
license = "see context related readme files"
}
+local commands, context, nodes, storage = commands, context, nodes, storage
+
local next, type = next, type
--[[ldx--
@@ -13,11 +15,10 @@ local next, type = next, type
symbolic names later on.</p>
--ldx]]--
-attributes = attributes or { }
-
-local attributes, nodes = attributes, nodes
+attributes = attributes or { }
+local attributes = attributes
--- todo: local and then gobals ... first loaded anyway
+local sharedstorage = storage.shared
attributes.names = attributes.names or { }
attributes.numbers = attributes.numbers or { }
@@ -26,15 +27,14 @@ attributes.states = attributes.states or { }
attributes.handlers = attributes.handlers or { }
attributes.unsetvalue = -0x7FFFFFFF
-local names, numbers, list = attributes.names, attributes.numbers, attributes.list
+local names = attributes.names
+local numbers = attributes.numbers
+local list = attributes.list
storage.register("attributes/names", names, "attributes.names")
storage.register("attributes/numbers", numbers, "attributes.numbers")
storage.register("attributes/list", list, "attributes.list")
-names [0] = "fontdynamic"
-numbers["fontdynamic"] = 0
-
function attributes.define(name,number) -- at the tex end
if not numbers[name] then
numbers[name] = number
@@ -44,12 +44,18 @@ function attributes.define(name,number) -- at the tex end
end
--[[ldx--
+<p>We reserve this one as we really want it to be always set (faster).</p>
+--ldx]]--
+
+names[0], numbers["fontdynamic"] = "fontdynamic", 0
+
+--[[ldx--
<p>We can use the attributes in the range 127-255 (outside user space). These
are only used when no attribute is set at the \TEX\ end which normally
happens in <l n='context'/>.</p>
--ldx]]--
-storage.shared.attributes_last_private = storage.shared.attributes_last_private or 127
+sharedstorage.attributes_last_private = sharedstorage.attributes_last_private or 127
-- to be considered (so that we can use an array access):
--
@@ -57,10 +63,10 @@ storage.shared.attributes_last_private = storage.shared.attributes_last_private
--
-- setmetatable(private, {
-- __index = function(t,name)
--- local number = storage.shared.attributes_last_private or 127
+-- local number = sharedstorage.attributes_last_private
-- if number < 1023 then -- tex.count.minallocatedattribute - 1
-- number = number + 1
--- storage.shared.attributes_last_private = number
+-- sharedstorage.attributes_last_private = number
-- end
-- numbers[name], names[number], list[number] = number, name, { }
-- private[name] = number
@@ -74,12 +80,12 @@ storage.shared.attributes_last_private = storage.shared.attributes_last_private
function attributes.private(name) -- at the lua end (hidden from user)
local number = numbers[name]
if not number then
- local last = storage.shared.attributes_last_private or 127
+ local last = sharedstorage.attributes_last_private
if last < 1023 then -- tex.count.minallocatedattribute - 1
last = last + 1
- storage.shared.attributes_last_private = last
+ sharedstorage.attributes_last_private = last
else
- report_attribute("no more room for private attributes") -- fatal
+ report_attribute("no more room for private attributes")
os.exit()
end
number = last
@@ -88,7 +94,7 @@ function attributes.private(name) -- at the lua end (hidden from user)
return number
end
--- new (actually a tracer)
+-- tracers
local report_attribute = logs.reporter("attributes")
diff --git a/tex/context/base/attr-lay.lua b/tex/context/base/attr-lay.lua
index bb5cce4e2..8046a43a7 100644
--- a/tex/context/base/attr-lay.lua
+++ b/tex/context/base/attr-lay.lua
@@ -10,10 +10,16 @@ if not modules then modules = { } end modules ['attr-lay'] = {
-- but when we need it stacked layers might show up too; the next function based
-- approach can be replaced by static (metatable driven) resolvers
+-- maybe use backends.registrations here too
+
local type = type
local format = string.format
local insert, remove, concat = table.insert, table.remove, table.concat
+local attributes, nodes, utilities, logs, backends = attributes, nodes, utilities, logs, backends
+local commands, context, interfaces = commands, context, interfaces
+local tex = tex
+
local allocate = utilities.storage.allocate
local setmetatableindex = table.setmetatableindex
@@ -26,7 +32,6 @@ local report_viewerlayers = logs.reporter("viewerlayers")
-- nb. too many "0 g"s
-- nb: more local tables
-local attributes, nodes = attributes, nodes
attributes.viewerlayers = attributes.viewerlayers or { }
local viewerlayers = attributes.viewerlayers
@@ -59,16 +64,17 @@ local unsetvalue = attributes.unsetvalue
local nodepool = nodes.pool
-storage.register("attributes/viewerlayers/registered", viewerlayers.registered, "attributes.viewerlayers.registered")
-storage.register("attributes/viewerlayers/values", viewerlayers.values, "attributes.viewerlayers.values")
-storage.register("attributes/viewerlayers/scopes", viewerlayers.scopes, "attributes.viewerlayers.scopes")
+local data = viewerlayers.data
+local values = viewerlayers.values
+local listwise = viewerlayers.listwise
+local registered = viewerlayers.registered
+local scopes = viewerlayers.scopes
-local data = viewerlayers.data
-local values = viewerlayers.values
-local listwise = viewerlayers.listwise
-local registered = viewerlayers.registered
-local scopes = viewerlayers.scopes
-local template = "%s"
+local template = "%s"
+
+storage.register("attributes/viewerlayers/registered", registered, "attributes.viewerlayers.registered")
+storage.register("attributes/viewerlayers/values", values, "attributes.viewerlayers.values")
+storage.register("attributes/viewerlayers/scopes", scopes, "attributes.viewerlayers.scopes")
local layerstacker = utilities.stacker.new("layers") -- experiment
@@ -86,9 +92,12 @@ end
-- stacked
+local function startlayer(...) startlayer = nodeinjections.startlayer return startlayer(...) end
+local function stoplayer (...) stoplayer = nodeinjections.stoplayer return stoplayer (...) end
+
local function extender(viewerlayers,key)
if viewerlayers.supported and key == "none" then
- local d = nodeinjections.stoplayer()
+ local d = stoplayer()
viewerlayers.none = d
return d
end
@@ -98,7 +107,7 @@ local function reviver(data,n)
if viewerlayers.supported then
local v = values[n]
if v then
- local d = nodeinjections.startlayer(v)
+ local d = startlayer(v)
data[n] = d
return d
else
@@ -110,38 +119,9 @@ end
setmetatableindex(viewerlayers, extender)
setmetatableindex(viewerlayers.data, reviver)
-function layerstacker.start(s,t,first,last) -- move to lpdf-ren.lua
- local r = { }
- for i=first,last do
- r[#r+1] = codeinjections.startlayer(values[t[i]])
- end
- r = concat(r," ")
--- print("start",r)
- return nodepool.pdfliteral(r)
-end
-
-function layerstacker.stop(s,t,first,last) -- move to lpdf-ren.lua
- local r = { }
- for i=last,first,-1 do
- r[#r+1] = codeinjections.stoplayer()
- end
- r = concat(r," ")
--- print("stop",r)
- return nodepool.pdfliteral(r)
-end
-
-function layerstacker.change(s,t1,first1,last1,t2,first2,last2) -- move to lpdf-ren.lua
- local r = { }
- for i=last1,first1,-1 do
- r[#r+1] = codeinjections.stoplayer()
- end
- for i=first2,last2 do
- r[#r+1] = codeinjections.startlayer(values[t2[i]])
- end
- r = concat(r," ")
--- print("change",r)
- return nodepool.pdfliteral(r)
-end
+-- layerstacker.start = function(...) local f = nodeinjections.startstackedlayer layerstacker.start = f return f(...) end
+-- layerstacker.stop = function(...) local f = nodeinjections.stopstackedlayer layerstacker.stop = f return f(...) end
+-- layerstacker.change = function(...) local f = nodeinjections.changestackedlayer layerstacker.change = f return f(...) end
local function initializer(...)
return states.initialize(...)
@@ -152,7 +132,7 @@ attributes.viewerlayers.handler = nodes.installattributehandler {
namespace = viewerlayers,
initializer = initializer,
finalizer = states.finalize,
--- processor = states.stacked,
+ -- processor = states.stacked,
processor = states.stacker,
}
diff --git a/tex/context/base/attr-neg.lua b/tex/context/base/attr-neg.lua
index 4d89cb49b..c32cec956 100644
--- a/tex/context/base/attr-neg.lua
+++ b/tex/context/base/attr-neg.lua
@@ -11,8 +11,9 @@ if not modules then modules = { } end modules ['attr-neg'] = {
local format = string.format
-
-local attributes, nodes = attributes, nodes
+local attributes, nodes, utilities, logs, backends = attributes, nodes, utilities, logs, backends
+local commands, context, interfaces = commands, context, interfaces
+local tex = tex
local states = attributes.states
local tasks = nodes.tasks
diff --git a/tex/context/base/back-ini.lua b/tex/context/base/back-ini.lua
index 0c02e201a..f76b85438 100644
--- a/tex/context/base/back-ini.lua
+++ b/tex/context/base/back-ini.lua
@@ -93,9 +93,9 @@ tables.vfspecials = allocate {
stopslant = comment,
}
--- -- experimental code --
+-- experimental code --
-function commands.pdfrotation(a)
+function commands.pdfrotation(a) -- somewhat weird here
local s, c = sind(a), cosd(a)
context("%s %s %s %s",c,s,-s,c)
end
diff --git a/tex/context/base/back-swf.mkiv b/tex/context/base/back-swf.mkiv
index 595f4aa15..09745e0f9 100644
--- a/tex/context/base/back-swf.mkiv
+++ b/tex/context/base/back-swf.mkiv
@@ -11,9 +11,11 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% This is only a placeholder that demonstrates the usage of swf resources.
-% There is no need to include this file.
-
+%D This is only a placeholder that demonstrates the usage of swf resources.
+%D There is no need to include this file into the format. The module was
+%D tested by Luigi and Willi and based on their suggestions the functionality
+%D was improved.
+%D
%D \starttyping
%D \enabletrackers[graphics.locating]
%D \enabletrackers[backend.swf]
diff --git a/tex/context/base/back-u3d.mkiv b/tex/context/base/back-u3d.mkiv
index dfe8a90c2..89d26ee41 100644
--- a/tex/context/base/back-u3d.mkiv
+++ b/tex/context/base/back-u3d.mkiv
@@ -11,10 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% This is only a placeholder that demonstrates the usage of u3d
-% resources. The user interface is rather messy an might be
-% improved. The files and setup is derived from an example by
-% Michael Vidiassov.
+%D This is only a placeholder that demonstrates the usage of u3d resources. The
+%D user interface is rather messy an might be improved. The files and setup is
+%D derived from an example by Michael Vidiassov.
\endinput
diff --git a/tex/context/base/bibl-tra.lua b/tex/context/base/bibl-tra.lua
index 3436ac88c..ca6403c44 100644
--- a/tex/context/base/bibl-tra.lua
+++ b/tex/context/base/bibl-tra.lua
@@ -115,7 +115,7 @@ function hacks.registerplaced(str)
end
function hacks.doifalreadyplaced(str)
- commands.testcase(used[str])
+ commands.doifelse(used[str])
end
-- we ask for <n>:tag but when we can't find it we go back
diff --git a/tex/context/base/buff-ini.lua b/tex/context/base/buff-ini.lua
index ab386a950..e5763267f 100644
--- a/tex/context/base/buff-ini.lua
+++ b/tex/context/base/buff-ini.lua
@@ -18,11 +18,13 @@ local type, next = type, next
local sub, format, match, find = string.sub, string.format, string.match, string.find
local count, splitlines, validstring = string.count, string.splitlines, string.valid
-local variables = interfaces.variables
+local variables = interfaces.variables
local settings_to_array = utilities.parsers.settings_to_array
-local ctxcatcodes = tex.ctxcatcodes
-local txtcatcodes = tex.txtcatcodes
+local catcodenumbers = catcodes.numbers
+
+local ctxcatcodes = catcodenumbers.ctxcatcodes
+local txtcatcodes = catcodenumbers.txtcatcodes
buffers = { }
@@ -184,7 +186,7 @@ function commands.grabbuffer(name,begintag,endtag,bufferdata,catcodes) -- maybe
end
end
assign(name,dn,catcodes)
- commands.testcase(more)
+ commands.doifelse(more)
end
-- The optional prefix hack is there for the typesetbuffer feature and
@@ -265,7 +267,7 @@ function commands.getbufferctxlua(name)
end
function commands.doifelsebuffer(name)
- commands.testcase(exists(name))
+ commands.doifelse(exists(name))
end
-- This only used for mp buffers and is a kludge. Don't change the
diff --git a/tex/context/base/buff-par.lua b/tex/context/base/buff-par.lua
index 58ae5a268..bcdcc851e 100644
--- a/tex/context/base/buff-par.lua
+++ b/tex/context/base/buff-par.lua
@@ -175,5 +175,5 @@ commands.placeparallel = parallel.place
commands.resetparallel = parallel.reset
function commands.doifelseparallel(category,tags)
- commands.testcase(parallel.hassomecontent(category,tags))
+ commands.doifelse(parallel.hassomecontent(category,tags))
end
diff --git a/tex/context/base/buff-ver.lua b/tex/context/base/buff-ver.lua
index 004d89858..06adfe4a6 100644
--- a/tex/context/base/buff-ver.lua
+++ b/tex/context/base/buff-ver.lua
@@ -688,7 +688,7 @@ local getlines = buffers.getlines
-- interface
function commands.doifelsevisualizer(name)
- commands.testcase(specifications[lower(name)])
+ commands.doifelse(specifications[lower(name)])
end
commands.loadvisualizer = visualizers.load
diff --git a/tex/context/base/catc-ini.lua b/tex/context/base/catc-ini.lua
index b2c793a6a..d4f9b65af 100644
--- a/tex/context/base/catc-ini.lua
+++ b/tex/context/base/catc-ini.lua
@@ -6,8 +6,6 @@ if not modules then modules = { } end modules ['catc-ini'] = {
license = "see context related readme files"
}
--- todo: everywhere replace tex.ctxcatcodes -> catcodes.numbers.ctxcatcodes
-
catcodes = catcodes or { }
catcodes.numbers = catcodes.numbers or { }
catcodes.names = catcodes.names or { }
@@ -15,26 +13,29 @@ catcodes.names = catcodes.names or { }
storage.register("catcodes/numbers", catcodes.numbers, "catcodes.numbers")
storage.register("catcodes/names", catcodes.names, "catcodes.names")
+local numbers = catcodes.numbers
+local names = catcodes.names
+
-- this only happens at initime
function catcodes.register(name,number)
- catcodes.numbers[name] = number
- local cnn = catcodes.names[number]
+ numbers[name] = number
+ local cnn = names[number]
if cnn then
cnn[#cnn+1] = name
else
- catcodes.names[number] = { name }
+ names[number] = { name }
end
- tex[name] = number
+ tex[name] = number -- downward compatible
end
-- this only happens at runtime
-for k, v in next, catcodes.numbers do
- tex[k] = v
+for k, v in next, numbers do
+ tex[k] = v -- downward compatible
end
-- nasty
-table.setmetatableindex(catcodes.numbers,function(t,k) if type(k) == "number" then t[k] = k return k end end)
-table.setmetatableindex(catcodes.names, function(t,k) if type(k) == "string" then t[k] = k return k end end)
+table.setmetatableindex(numbers,function(t,k) if type(k) == "number" then t[k] = k return k end end)
+table.setmetatableindex(names, function(t,k) if type(k) == "string" then t[k] = k return k end end)
diff --git a/tex/context/base/char-cjk.lua b/tex/context/base/char-cjk.lua
index b077f4a3e..6232ebcad 100644
--- a/tex/context/base/char-cjk.lua
+++ b/tex/context/base/char-cjk.lua
@@ -226,24 +226,6 @@ local hangul_syllable_basetable = {
linebreak = "h2",
}
---~ local hangul_syllable_metatable = {
---~ __index = function(t,k)
---~ local u = t.unicodeslot
---~ if k == "fscode" then
---~ -- no need to cache this as we normally use fscodes
---~ return leadconsonant(u)
---~ elseif k == "shcode" then
---~ return { decomposed(u) }
---~ elseif k == "specials" then
---~ return { "char", decomposed(u) }
---~ elseif k == "description" then
---~ return description(u)
---~ else
---~ return hangul_syllable_basetable[k]
---~ end
---~ end
---~ }
-
local hangul_syllable_metatable = {
__index = function(t,k)
local u = t.unicodeslot
diff --git a/tex/context/base/char-enc.lua b/tex/context/base/char-enc.lua
index 19955ad84..048837eec 100644
--- a/tex/context/base/char-enc.lua
+++ b/tex/context/base/char-enc.lua
@@ -4,6 +4,7 @@ if not modules then modules = { } end modules ['char-enc'] = {
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
+ -- dataonly = true,
}
-- Thanks to tex4ht for these mappings.
@@ -144,25 +145,25 @@ characters.synonyms = allocate { -- afm mess
Yen = 0x00A5,
}
---~ if not characters.enccodes then
---~
---~ local enccodes = { } characters.enccodes = enccodes
---~
---~ for unicode, data in next, characters.data do
---~ local encname = data.adobename or data.contextname
---~ if encname then
---~ enccodes[encname] = unicode
---~ end
---~ end
---~
---~ for name, unicode in next, characters.synonyms do
---~ if not enccodes[name] then enccodes[name] = unicode end
---~ end
---~
---~
---~ end
---~
---~ storage.register("characters.enccodes", characters.enccodes, "characters.enccodes")
+-- if not characters.enccodes then
+--
+-- local enccodes = { } characters.enccodes = enccodes
+--
+-- for unicode, data in next, characters.data do
+-- local encname = data.adobename or data.contextname
+-- if encname then
+-- enccodes[encname] = unicode
+-- end
+-- end
+--
+-- for name, unicode in next, characters.synonyms do
+-- if not enccodes[name] then enccodes[name] = unicode end
+-- end
+--
+--
+-- end
+--
+-- storage.register("characters.enccodes", characters.enccodes, "characters.enccodes")
-- As this table is seldom used, we can delay its definition. Beware, this means
-- that table.print would not work on this file unless it is accessed once. This
diff --git a/tex/context/base/char-ent.lua b/tex/context/base/char-ent.lua
index 65dbdf992..ef55be7e4 100644
--- a/tex/context/base/char-ent.lua
+++ b/tex/context/base/char-ent.lua
@@ -9,8 +9,6 @@ if not modules then modules = { } end modules ['char-ent'] = {
-- http://www.w3.org/2003/entities/2007/w3centities-f.ent
-- http://www.w3.org/2003/entities/2007/htmlmathml-f.ent
--- this might go into char-def
-
local entities = utilities.storage.allocate {
["AElig"] = "Æ", -- U+000C6
["AMP"] = "&", -- U+00026
diff --git a/tex/context/base/char-ini.lua b/tex/context/base/char-ini.lua
index 90e36bc7b..778035ff4 100644
--- a/tex/context/base/char-ini.lua
+++ b/tex/context/base/char-ini.lua
@@ -11,10 +11,9 @@ if not modules then modules = { } end modules ['char-ini'] = {
-- we can remove the tag range starting at 0xE0000 (special applications)
local tex = tex
-local utf = unicode.utf8
local utfchar, utfbyte, utfvalues = utf.char, utf.byte, string.utfvalues
-local ustring = unicode.ustring
+local ustring, utf = unicode.ustring, unicode.utf8
local concat, unpack, tohash = table.concat, table.unpack, table.tohash
local next, tonumber, type, rawget, rawset = next, tonumber, type, rawget, rawset
local format, lower, gsub, match, gmatch = string.format, string.lower, string.gsub, string.match, string.match, string.gmatch
@@ -28,8 +27,8 @@ local texsetsfcode = tex.setsfcode
local texsetcatcode = tex.setcatcode
local contextsprint = context.sprint
-local ctxcatcodes = tex.ctxcatcodes
-local texcatcodes = tex.texcatcodes
+local ctxcatcodes = catcodes.numbers.ctxcatcodes
+local texcatcodes = catcodes.numbers.texcatcodes
local setmetatableindex = table.setmetatableindex
@@ -48,7 +47,6 @@ loaded!</p>
characters = characters or { }
local characters = characters
-
local data = characters.data
if data then
@@ -461,10 +459,12 @@ if not characters.fallbacks then
for k, d in next, data do
local specials = d.specials
- if specials and specials[1] == "compat" and specials[2] == 0x0020 and specials[3] then
+ if specials and specials[1] == "compat" and specials[2] == 0x0020 then
local s = specials[3]
- fallbacks[k] = s
- fallbacks[s] = k
+ if s then
+ fallbacks[k] = s
+ fallbacks[s] = k
+ end
end
end
@@ -497,7 +497,7 @@ which is rather specific to <l n='context'/>.</p>
use the table. After all, we have this information available anyway.</p>
--ldx]]--
-function characters.makeactive(n,name) -- let ?
+function characters.makeactive(n,name) --
contextsprint(ctxcatcodes,format("\\catcode%s=13\\unexpanded\\def %s{\\%s}",n,utfchar(n),name))
-- context("\\catcode%s=13\\unexpanded\\def %s{\\%s}",n,utfchar(n),name)
end
@@ -512,7 +512,7 @@ function tex.uprint(c,n)
end
end
-local temphack = tohash {
+local forbidden = tohash { -- at least now
0x00A0,
0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x200B, 0x200C, 0x200D,
0x202F,
@@ -548,12 +548,10 @@ function characters.define(tobelettered, tobeactivated) -- catcodetables
else
contextsprint(ctxcatcodes,format("\\def\\%s{%s}",contextname,utfchar(u))) -- has no s
end
- elseif is_command[category] then
-if not temphack[u] then
+ elseif is_command[category] and not forbidden[u] then
contextsprint("{\\catcode",u,"=13\\unexpanded\\gdef ",utfchar(u),"{\\"..contextname,"}}")
a = a + 1
activated[a] = u
-end
end
end
end
@@ -641,15 +639,17 @@ function characters.setcodes()
end
else
local lc, uc = chr.lccode, chr.uccode
- if not lc then chr.lccode, lc = code, code end
- if not uc then chr.uccode, uc = code, code end
- texsetcatcode(code,11) -- letter
- if type(lc) == "table" then
+ if not lc then
+ chr.lccode, lc = code, code
+ elseif type(lc) == "table" then
lc = code
end
- if type(uc) == "table" then
+ if not uc then
+ chr.uccode, uc = code, code
+ elseif type(uc) == "table" then
uc = code
end
+ texsetcatcode(code,11) -- letter
texsetlccode(code,lc,uc)
if cc == "lu" then
texsetsfcode(code,999)
@@ -824,8 +824,7 @@ function characters.unicodechar(asked)
if n then
return n
elseif type(asked) == "string" then
- asked = gsub(asked," ","")
- return descriptions[asked]
+ return descriptions[asked] or descriptions[gsub(asked," ","")]
end
end
@@ -891,17 +890,21 @@ end
function characters.uccode(n) return uccodes[n] end -- obsolete
function characters.lccode(n) return lccodes[n] end -- obsolete
-function characters.flush(n,direct)
+function characters.safechar(n)
local c = data[n]
if c and c.contextname then
- c = "\\" .. c.contextname
+ return "\\" .. c.contextname
else
- c = utfchar(n)
+ return utfchar(n)
end
- if direct then
- return c
+end
+
+function commands.safechar(n)
+ local c = data[n]
+ if c and c.contextname then
+ contextsprint("\\" .. c.contextname) -- context[c.contextname]()
else
- contextsprint(c)
+ contextsprint(utfchar(n))
end
end
diff --git a/tex/context/base/char-utf.lua b/tex/context/base/char-utf.lua
index a411c2d82..cefaca4e3 100644
--- a/tex/context/base/char-utf.lua
+++ b/tex/context/base/char-utf.lua
@@ -76,6 +76,7 @@ local decomposed = allocate {
["ﬖ"] = "վն",
["ﬗ"] = "մխ",
}
+
characters.decomposed = decomposed
local function initialize() -- maybe only 'mn'
diff --git a/tex/context/base/chem-ini.lua b/tex/context/base/chem-ini.lua
index 4d47982a2..192953ec9 100644
--- a/tex/context/base/chem-ini.lua
+++ b/tex/context/base/chem-ini.lua
@@ -17,8 +17,8 @@ local report_chemistry = logs.reporter("chemistry")
local context = context
-chemicals = chemicals or { }
-local chemicals = chemicals
+chemistry = chemistry or { }
+local chemistry = chemistry
--[[
<p>The next code is an adaptation of code from Wolfgang Schuster
@@ -62,9 +62,9 @@ local high = Cc("\\high{%s}") * superscript * content
local justtext = (1 - somescript)^1
local parser = Cs((csname + lowhigh + highlow + low + high + sign + any)^0)
-chemicals.moleculeparser = parser -- can be used to avoid functioncall
+chemistry.moleculeparser = parser -- can be used to avoid functioncall
-function chemicals.molecule(str)
+function chemistry.molecule(str)
return lpegmatch(parser,str)
end
diff --git a/tex/context/base/chem-str.lua b/tex/context/base/chem-str.lua
index b56525e3f..2cd6effc9 100644
--- a/tex/context/base/chem-str.lua
+++ b/tex/context/base/chem-str.lua
@@ -29,12 +29,12 @@ local P, R, S, C, Cs, Ct, Cc = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cs, lpeg.Ct,
local variables = interfaces.variables
local context = context
-chemicals = chemicals or { }
-local chemicals = chemicals
+chemistry = chemistry or { }
+local chemistry = chemistry
-chemicals.instance = "metafun" -- "ppchtex"
-chemicals.format = "metafun"
-chemicals.structures = 0
+chemistry.instance = "metafun" -- "ppchtex"
+chemistry.format = "metafun"
+chemistry.structures = 0
local remapper = {
["+"] = "p",
@@ -151,11 +151,11 @@ local syntax = {
local definitions = { }
-function chemicals.undefine(name)
+function chemistry.undefine(name)
definitions[lower(name)] = nil
end
-function chemicals.define(name,spec,text)
+function chemistry.define(name,spec,text)
name = lower(name)
local dn = definitions[name]
if not dn then dn = { } definitions[name] = dn end
@@ -166,7 +166,7 @@ function chemicals.define(name,spec,text)
end
local metacode, variant, keys, bonds, max, txt, textsize, rot, pstack
-local molecule = chemicals.molecule -- or use lpegmatch(chemicals.moleculeparser,...)
+local molecule = chemistry.molecule -- or use lpegmatch(chemistry.moleculeparser,...)
local function fetch(txt)
local st = stack[txt]
@@ -392,8 +392,8 @@ end
--
-- rulethickness in points
-function chemicals.start(settings)
- chemicals.structures = chemicals.structures + 1
+function chemistry.start(settings)
+ chemistry.structures = chemistry.structures + 1
local textsize, rulethickness, rulecolor = settings.size, settings.rulethickness, settings.rulecolor
local width, height, scale, offset = settings.width or 0, settings.height or 0, settings.scale or "medium", settings.offset or 0
local l, r, t, b = settings.left or 0, settings.right or 0, settings.top or 0, settings.bottom or 0
@@ -449,7 +449,7 @@ function chemicals.start(settings)
scale = 0.75 * scale/625
--
metacode[#metacode+1] = format("chem_start_structure(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) ;",
- chemicals.structures,
+ chemistry.structures,
l/25, r/25, t/25, b/25, scale,
tostring(settings.axis == variables.on), tostring(width), tostring(height), tostring(offset)
)
@@ -457,18 +457,18 @@ function chemicals.start(settings)
variant, keys, bonds, stack, rot, pstack = "six", { }, 6, { }, 1, { }
end
-function chemicals.stop()
+function chemistry.stop()
metacode[#metacode+1] = "chem_stop_structure ;"
--
local mpcode = concat(metacode,"\n")
if trace_structure then
report_chemistry("metapost code:\n%s", mpcode)
end
- metapost.graphic(chemicals.instance,chemicals.format,mpcode)
+ metapost.graphic(chemistry.instance,chemistry.format,mpcode)
metacode = nil
end
-function chemicals.component(spec,text,settings)
+function chemistry.component(spec,text,settings)
rulethickness, rulecolor, offset = settings.rulethickness, settings.rulecolor
local spec = settings_to_array(lower(spec))
local text = settings_to_array(text)
@@ -477,6 +477,22 @@ function chemicals.component(spec,text,settings)
metacode[#metacode+1] = "chem_stop_component ;"
end
+statistics.register("chemical formulas", function()
+ if chemistry.structures > 0 then
+ return format("%s chemical structure formulas",chemistry.structures) -- no timing needed, part of metapost
+ end
+end)
+
+-- interfaces
+
+commands.undefinechemical = chemistry.undefine
+commands.definechemical = chemistry.define
+commands.startchemical = chemistry.start
+commands.stopchemical = chemistry.stop
+commands.chemicalcomponent = chemistry.component
+
+-- todo: top / bottom
+
local inline = {
["single"] = "\\chemicalsinglebond", ["-"] = "\\chemicalsinglebond",
["double"] = "\\chemicaldoublebond", ["--"] = "\\chemicaldoublebond", -- also =? and unicode triple?
@@ -489,23 +505,15 @@ local inline = {
["space"] = "\\chemicalspace",
}
--- todo: top / bottom
-
-function chemicals.inline(spec)
+function commands.inlinechemical(spec)
local spec = settings_to_array(spec)
for i=1,#spec do
local s = spec[i]
local inl = inline[lower(s)]
if inl then
- context(inl)
+ context(inl) -- could be a fast context.sprint
else
context.chemicalinline(molecule(s))
end
end
end
-
-statistics.register("chemical formulas", function()
- if chemicals.structures > 0 then
- return format("%s chemical structure formulas",chemicals.structures) -- no timing needed, part of metapost
- end
-end)
diff --git a/tex/context/base/chem-str.mkiv b/tex/context/base/chem-str.mkiv
index 183eeb181..eca3b1b40 100644
--- a/tex/context/base/chem-str.mkiv
+++ b/tex/context/base/chem-str.mkiv
@@ -79,7 +79,7 @@
{\startnointerference
\edef\currentdefinedchemical{#1}%
\let\chemical\chem_chemical_nested
- \ctxlua{chemicals.undefine("#1")}%
+ \ctxcommand{undefinechemical("#1")}%
#2% flush
\stopnointerference}
@@ -87,7 +87,7 @@
{\dodoubleempty\chem_chemical_nested_indeed}
\def\chem_chemical_nested_indeed[#1][#2]%
- {\ctxlua{chemicals.define("\currentdefinedchemical",\!!bs#1\!!es,\!!bs\detokenize{#2}\!!es)}}
+ {\ctxcommand{definechemical("\currentdefinedchemical",\!!bs#1\!!es,\!!bs\detokenize{#2}\!!es)}}
% chemical symbols
@@ -150,7 +150,7 @@
\fi\fi
\the\everystructurechemical
\setbox\b_chem_result\hbox\bgroup
- \ctxlua{chemicals.start {
+ \ctxcommand{startchemical {
width = "\chemicalparameter\c!width",
height = "\chemicalparameter\c!height",
left = \chemicalparameter\c!left,
@@ -165,7 +165,7 @@
\unexpanded\def\stopchemical
{\stopnointerference
- \ctxlua{chemicals.stop()}%
+ \ctxcommand{stopchemical()}%
\egroup
\d_chem_width \wd\b_chem_result
\d_chem_height\ht\b_chem_result
@@ -204,14 +204,14 @@
\def\strc_chem_indeed_three[#1][#2][#3]%
{\writestatus\m!chemicals{hyperlinked chemicals not yet supported}% todo reference, for the moment ignored
- \ctxlua{chemicals.component(\!!bs#2\!!es, \!!bs\detokenize{#3}\!!es, { % maybe also pass first two args this way
+ \ctxcommand{chemicalcomponent(\!!bs#2\!!es, \!!bs\detokenize{#3}\!!es, { % maybe also pass first two args this way
rulethickness = "\the\dimexpr\chemicalparameter\c!rulethickness\relax", % todo: scaled points
rulecolor = "\MPcolor{\chemicalparameter\c!rulecolor}" % we can precalculate this for speedup
} ) }%
\ignorespaces}
\def\strc_chem_indeed_two[#1][#2]%
- {\ctxlua{chemicals.component(\!!bs#1\!!es,\!!bs\detokenize{#2}\!!es, { % maybe also pass first two args this way
+ {\ctxcommand{chemicalcomponent(\!!bs#1\!!es,\!!bs\detokenize{#2}\!!es, { % maybe also pass first two args this way
rulethickness = "\the\dimexpr\chemicalparameter\c!rulethickness\relax", % todo: scaled points
rulecolor = "\MPcolor{\chemicalparameter\c!rulecolor}" % we can precalculate this for speedup
} ) }%
@@ -293,8 +293,8 @@
\def\chem_arrow_construct#1#2#3%
{\enspace
\mathematics{#1%
- {\strut\hbox \s!spread 2\emwidth{\hss\ctxlua{chemicals.inline(\!!bs#2\!!es)}\hss}}% {\strut\hbox \s!spread 2em{\hss#2\hss}}%
- {\strut\hbox \s!spread 2\emwidth{\hss\ctxlua{chemicals.inline(\!!bs#3\!!es)}\hss}}}% {\strut\hbox \s!spread 2em{\hss#3\hss}}}%
+ {\strut\hbox \s!spread 2\emwidth{\hss\ctxcommand{inlinechemical(\!!bs#2\!!es)}\hss}}% {\strut\hbox \s!spread 2em{\hss#2\hss}}%
+ {\strut\hbox \s!spread 2\emwidth{\hss\ctxcommand{inlinechemical(\!!bs#3\!!es)}\hss}}}% {\strut\hbox \s!spread 2em{\hss#3\hss}}}%
\enspace}
% special macros (probably needs some more work)
@@ -444,7 +444,7 @@
\unexpanded\def\inlinechemical#1%
{\dontleavehmode
- \hbox{\usechemicalstyleandcolor\c!style\c!color\ctxlua{chemicals.inline(\!!bs#1\!!es)}}}
+ \hbox{\usechemicalstyleandcolor\c!style\c!color\ctxcommand{inlinechemical(\!!bs#1\!!es)}}}
\unexpanded\def\chemicalbondrule
{\hbox{\vrule\s!height.75\exheight\s!depth-\dimexpr.75\exheight-\linewidth\relax\s!width\emwidth\relax}}
diff --git a/tex/context/base/cldf-bas.lua b/tex/context/base/cldf-bas.lua
index a9d72630a..dd6c575bf 100644
--- a/tex/context/base/cldf-bas.lua
+++ b/tex/context/base/cldf-bas.lua
@@ -22,6 +22,8 @@ if not modules then modules = { } end modules ['cldf-bas'] = {
-- flush(ctxcatcodes,"}")
-- end
+-- maybe use context.generics
+
local type = type
local format = string.format
local utfchar = utf.char
@@ -35,10 +37,12 @@ local new_rule = nodes.pool.rule
function context.char(k) -- used as escape too, so don't change to utf
if type(k) == "table" then
- -- for i=1,#k do
- -- context(format([[\char%s\relax]],k[i]))
- -- end
- context([[\char%s\relax]],concat(k,[[\relax\char]]))
+ local n = #k
+ if n == 1 then
+ context([[\char%s\relax]],k[1])
+ elseif n > 0 then
+ context([[\char%s\relax]],concat(k,[[\relax\char]]))
+ end
elseif k then
context([[\char%s\relax]],k)
end
@@ -98,22 +102,22 @@ context.vrule = context.hrule
-- not yet used ... but will get variant at the tex end as well
-function context.sethboxregister (n) context("\\setbox %s\\hbox",n) end
-function context.setvboxregister (n) context("\\setbox %s\\vbox",n) end
+function context.sethboxregister(n) context([[\setbox %s\hbox]],n) end
+function context.setvboxregister(n) context([[\setbox %s\vbox]],n) end
function context.starthboxregister(n)
if type(n) == "number" then
- context("\\setbox%s\\hbox\\bgroup",n)
+ context([[\setbox%s\hbox{]],n)
else
- context("\\setbox\\%s\\hbox\\bgroup",n)
+ context([[\setbox\%s\hbox{]],n)
end
end
function context.startvboxregister(n)
if type(n) == "number" then
- context("\\setbox%s\\vbox\\bgroup",n)
+ context([[\setbox%s\vbox{]],n)
else
- context("\\setbox\\%s\\vbox\\bgroup",n)
+ context([[\setbox\%s\vbox{]],n)
end
end
@@ -122,18 +126,18 @@ context.stopvboxregister = context.egroup
function context.flushboxregister(n)
if type(n) == "number" then
- context("\\box%s ",n)
+ context([[\box%s ]],n)
else
- context("\\box\\%s",n)
+ context([[\box\%s]],n)
end
end
function context.beginvbox()
- context("\\vbox\\bgroup") -- we can do \bvbox ... \evbox (less tokens)
+ context([[\vbox{]]) -- we can do \bvbox ... \evbox (less tokens)
end
function context.beginhbox()
- context("\\hbox\\bgroup") -- todo: use fast one
+ context([[\hbox{]]) -- todo: use fast one
end
context.endvbox = context.egroup
diff --git a/tex/context/base/cldf-com.lua b/tex/context/base/cldf-com.lua
index bacbbeafd..d9062594e 100644
--- a/tex/context/base/cldf-com.lua
+++ b/tex/context/base/cldf-com.lua
@@ -11,8 +11,8 @@ local context = context
local generics = context.generics -- needs documentation
local variables = interfaces.variables
-generics.starttabulate = "start" .. variables.tabulate -- todo: e!start
-generics.stoptabulate = "stop" .. variables.tabulate -- todo: e!stop
+generics.starttabulate = "starttabulate" -- "start" .. variables.tabulate -- todo: e!start
+generics.stoptabulate = "stoptabulate" -- "stop" .. variables.tabulate -- todo: e!stop
local NC, NR = context.NC, context.NR
diff --git a/tex/context/base/cldf-ini.lua b/tex/context/base/cldf-ini.lua
index 4d693ab91..ad5f14855 100644
--- a/tex/context/base/cldf-ini.lua
+++ b/tex/context/base/cldf-ini.lua
@@ -40,12 +40,14 @@ local isnode = node.is_node -- after 0.65 just node.type
local writenode = node.write
local copynodelist = node.copy_list
-local ctxcatcodes = tex.ctxcatcodes
-local prtcatcodes = tex.prtcatcodes
-local texcatcodes = tex.texcatcodes
-local txtcatcodes = tex.txtcatcodes
-local vrbcatcodes = tex.vrbcatcodes
-local xmlcatcodes = tex.xmlcatcodes
+local catcodenumbers = catcodes.numbers
+
+local ctxcatcodes = catcodenumbers.ctxcatcodes
+local prtcatcodes = catcodenumbers.prtcatcodes
+local texcatcodes = catcodenumbers.texcatcodes
+local txtcatcodes = catcodenumbers.txtcatcodes
+local vrbcatcodes = catcodenumbers.vrbcatcodes
+local xmlcatcodes = catcodenumbers.xmlcatcodes
local flush = texsprint
local flushdirect = texprint
diff --git a/tex/context/base/cldf-int.lua b/tex/context/base/cldf-int.lua
index b554dabc7..6cbfd666f 100644
--- a/tex/context/base/cldf-int.lua
+++ b/tex/context/base/cldf-int.lua
@@ -14,9 +14,12 @@ if not modules then modules = { } end modules ['cldf-int'] = {
local format, insert, remove, concat = string.format, table.insert, table.remove, table.concat
local unpack = unpack or table.unpack
-local contextsprint = context.sprint
-local ctxcatcodes = tex.ctxcatcodes
-local vrbcatcodes = tex.vrbcatcodes
+local catcodenumbers = catcodes.numbers
+
+local ctxcatcodes = catcodenumbers.ctxcatcodes
+local vrbcatcodes = catcodenumbers.vrbcatcodes
+
+local contextsprint = context.sprint
local trace_define = false trackers.register("context.define", function(v) trace_define = v end)
diff --git a/tex/context/base/cldf-ver.lua b/tex/context/base/cldf-ver.lua
index 237078157..9b1b82806 100644
--- a/tex/context/base/cldf-ver.lua
+++ b/tex/context/base/cldf-ver.lua
@@ -6,6 +6,10 @@ if not modules then modules = { } end modules ['cldf-ver'] = {
license = "see context related readme files"
}
+-- We have better verbatim: context.verbatim so that needs to be looked
+-- into. We can also directly store in buffers although this variant works
+-- better when used mixed with other code (synchronization issue).
+
local concat, tohandle = table.concat, table.tohandle
local find, splitlines = string.find, string.splitlines
local tostring, type = tostring, type
diff --git a/tex/context/base/colo-ini.lua b/tex/context/base/colo-ini.lua
index 747e2116f..253027238 100644
--- a/tex/context/base/colo-ini.lua
+++ b/tex/context/base/colo-ini.lua
@@ -16,7 +16,8 @@ local trace_define = false trackers.register("colors.define",function(v) trace_
local report_colors = logs.reporter("colors","defining")
-local attributes, context, commands = attributes, context, commands
+local attributes, backends, storage = attributes, backends, storage
+local context, commands = context, commands
local settings_to_hash_strict = utilities.parsers.settings_to_hash_strict
@@ -666,83 +667,51 @@ function colors.defineintermediatecolor(name,fraction,c_one,c_two,a_one,a_two,sp
end
end
---~ local function f(one,two,i,fraction_one,fraction_two)
---~ local otf = fraction_one * one[i] + fraction_two * two[i]
---~ if otf > 1 then
---~ otf = 1
---~ end
---~ return otf
---~ end
-
---~ function colors.defineduocolor(name,fraction_one,c_one,fraction_two,c_two,global,freeze)
---~ local one, two = colorvalues[c_one], colorvalues[c_two]
---~ if one and two then
---~ fraction_one = tonumber(fraction_one) or 1
---~ fraction_two = tonumber(fraction_two) or 1
---~ local csone, cstwo = one[1], two[1]
---~ local ca
---~ if csone == 2 then
---~ ca = register_color(name,'gray',f(one,two,2,fraction_one,fraction_two))
---~ elseif csone == 3 then
---~ ca = register_color(name,'rgb', f(one,two,3,fraction_one,fraction_two),
---~ f(one,two,4,fraction_one,fraction_two),
---~ f(one,two,5,fraction_one,fraction_two))
---~ elseif csone == 4 then
---~ ca = register_color(name,'cmyk',f(one,two,6,fraction_one,fraction_two),
---~ f(one,two,7,fraction_one,fraction_two),
---~ f(one,two,8,fraction_one,fraction_two),
---~ f(one,two,9,fraction_one,fraction_two))
---~ else
---~ ca = register_color(name,'gray',f(one,two,2,fraction_one,fraction_two))
---~ end
---~ definecolor(name,ca,global,freeze)
---~ end
---~ end
-
- local function f(i,colors,fraction)
- local otf = 0
- for c=1,#colors do
- otf = otf + (tonumber(fraction[c]) or 1) * colors[c][i]
- end
- if otf > 1 then
- otf = 1
- end
- return otf
+local function f(i,colors,fraction)
+ local otf = 0
+ for c=1,#colors do
+ otf = otf + (tonumber(fraction[c]) or 1) * colors[c][i]
end
+ if otf > 1 then
+ otf = 1
+ end
+ return otf
+end
- function colors.definemixcolor(name,fractions,cs,global,freeze)
- local values = { }
- for i=1,#cs do -- do fraction in here
- local v = colorvalues[cs[i]]
- if not v then
- return
- end
- values[i] = v
- end
- local csone = values[1][1]
- local ca
- if csone == 2 then
- ca = register_color(name,'gray',f(2,values,fractions))
- elseif csone == 3 then
- ca = register_color(name,'rgb', f(3,values,fractions),
- f(4,values,fractions),
- f(5,values,fractions))
- elseif csone == 4 then
- ca = register_color(name,'cmyk',f(6,values,fractions),
- f(7,values,fractions),
- f(8,values,fractions),
- f(9,values,fractions))
- else
- ca = register_color(name,'gray',f(2,values,fractions))
+function colors.definemixcolor(name,fractions,cs,global,freeze)
+ local values = { }
+ for i=1,#cs do -- do fraction in here
+ local v = colorvalues[cs[i]]
+ if not v then
+ return
end
- definecolor(name,ca,global,freeze)
+ values[i] = v
end
+ local csone = values[1][1]
+ local ca
+ if csone == 2 then
+ ca = register_color(name,'gray',f(2,values,fractions))
+ elseif csone == 3 then
+ ca = register_color(name,'rgb', f(3,values,fractions),
+ f(4,values,fractions),
+ f(5,values,fractions))
+ elseif csone == 4 then
+ ca = register_color(name,'cmyk',f(6,values,fractions),
+ f(7,values,fractions),
+ f(8,values,fractions),
+ f(9,values,fractions))
+ else
+ ca = register_color(name,'gray',f(2,values,fractions))
+ end
+ definecolor(name,ca,global,freeze)
+end
-- for the moment downward compatible
local patterns = { "colo-imp-%s.mkiv", "colo-imp-%s.tex", "colo-%s.mkiv", "colo-%s.tex" }
local function action(name,foundname)
+ -- could be one command
context.startreadingfile()
context.startcolorset { name }
context.input(foundname)
diff --git a/tex/context/base/colo-run.lua b/tex/context/base/colo-run.lua
index 4f1916d5a..27f7c6b12 100644
--- a/tex/context/base/colo-run.lua
+++ b/tex/context/base/colo-run.lua
@@ -6,8 +6,10 @@ if not modules then modules = { } end modules ['colo-run'] = {
license = "see context related readme files"
}
--- For historic reasons the core has a couple of tracing
--- features. Nowadays these would end up in modules.
+-- For historic reasons the core has a couple of tracing features. Nowadays
+-- these would end up in modules.
+
+local colors, commands, context, utilities = colors, commands, context, utilities
local colors= attributes.colors
diff --git a/tex/context/base/colo-run.mkiv b/tex/context/base/colo-run.mkiv
index c41a133d3..5084fdd35 100644
--- a/tex/context/base/colo-run.mkiv
+++ b/tex/context/base/colo-run.mkiv
@@ -42,9 +42,9 @@
%D Palets
\unexpanded\gdef\showpalet
- {\dodoubleargument\doshowpalet}
+ {\dodoubleargument\colo_show_palet}
-\gdef\doshowpalet[#1][#2]%
+\gdef\colo_show_palet[#1][#2]%
{\ifcsname\??colorpalet#1\endcsname
\doifinsetelse\v!vertical{#2} \colo_palets_show_vertical \colo_palets_show_horizontal [#1][#2]%
\fi}
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 0264366e6..8e6af22c4 100644
--- a/tex/context/base/cont-new.mkii
+++ b/tex/context/base/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2012.07.24 15:58}
+\newcontextversion{2012.07.26 19:37}
%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/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 904539237..221df96d6 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2012.07.24 15:58}
+\newcontextversion{2012.07.26 19:37}
%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/context-version.pdf b/tex/context/base/context-version.pdf
index 57a38d2e2..cab5577dc 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index 0cccb425b..35f343c2c 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii
index 4ae4bbc2a..efa88f262 100644
--- a/tex/context/base/context.mkii
+++ b/tex/context/base/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2012.07.24 15:57}
+\edef\contextversion{2012.07.26 19:37}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 5df05ac69..3ba054e33 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2012.07.24 15:58}
+\edef\contextversion{2012.07.26 19:37}
%D For those who want to use this:
@@ -352,6 +352,7 @@
\loadmarkfile{font-pre}
\loadmarkfile{font-unk}
\loadmarkfile{font-tra}
+\loadmarkfile{font-chk}
\loadmarkfile{font-uni}
\loadmkvifile{font-col}
\loadmkvifile{font-gds}
diff --git a/tex/context/base/context.rme b/tex/context/base/context.rme
index 1ce6b25c0..ff9ffb8ac 100644
--- a/tex/context/base/context.rme
+++ b/tex/context/base/context.rme
@@ -14,7 +14,10 @@ real problem as the engines don't change much either.
Early 2011 the code base between MkII and MkIV got split completely
and there is no shared code any longer, apart from some styles and
-modules.
+modules. From the perspective of ConteXt we now consider XeTeX to be
+obsolete although we will keep supporting it in MkII. As pdftex is
+still used in older workflows we will support that as long as it's
+around.
The main files context.mkii and context.mkiv are normally not used
directly but instead we use the interface specific formats:
@@ -76,4 +79,4 @@ Don't hesitate to ask questions. ConTeXt can do a lot, but the manuals
always lag behind and can be incomplete.
-------------------------
-Hans Hagen, pragma@wxs.nl
+Hans Hagen, pragma @ wxs . nl
diff --git a/tex/context/base/context.todo b/tex/context/base/context.todo
deleted file mode 100644
index 27d914a7b..000000000
--- a/tex/context/base/context.todo
+++ /dev/null
@@ -1,6 +0,0 @@
-% marginrules
-
-% consistently use label/name/tag
-% consistently use type/kind
-
-% option vs options
diff --git a/tex/context/base/core-con.lua b/tex/context/base/core-con.lua
index e4b516e3b..1271c92a6 100644
--- a/tex/context/base/core-con.lua
+++ b/tex/context/base/core-con.lua
@@ -14,6 +14,8 @@ slower but look nicer this way.</p>
<p>Some code may move to a module in the language namespace.</p>
--ldx]]--
+local command, context = commands, context
+
local utf = unicode.utf8
local floor, date, time, concat = math.floor, os.date, os.time, table.concat
@@ -45,7 +47,7 @@ function commands.number(n) context(n) end
-- to be reconsidered ... languages namespace here, might become local plus a register command
local counters = allocate {
- ['**'] = {
+ ['default'] = {
0x0061, 0x0062, 0x0063, 0x0064, 0x0065,
0x0066, 0x0067, 0x0068, 0x0069, 0x006A,
0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
@@ -125,6 +127,12 @@ local counters = allocate {
},
}
+table.setmetatableindex(counters,function(t,k)
+ local v = t.default
+ t[k] = v
+ return v
+end)
+
languages.counters = counters
counters['ar'] = counters['arabic']
@@ -135,7 +143,7 @@ counters['kr'] = counters['korean']
counters['kr-p'] = counters['korean-parent']
counters['kr-c'] = counters['korean-circle']
-local fallback = utf.byte('0')
+local fallback = utfbyte('0')
local function chr(n,m)
return (n > 0 and n < 27 and utfchar(n+m)) or ""
@@ -197,32 +205,28 @@ local function do_alphabetic(n,mapping,mapper,t)
end
end
-local function alphabetic(n,code)
- return do_alphabetic(n,counters[code] or counters['**'],lowercharacter)
+function converters.alphabetic(n,code)
+ return do_alphabetic(n,counters[code],lowercharacter)
end
-local function Alphabetic(n,code)
- return do_alphabetic(n,counters[code] or counters['**'],uppercharacter)
+function converters.Alphabetic(n,code)
+ return do_alphabetic(n,counters[code],uppercharacter)
end
-local function character (n) return chr (n,96) end
-local function Character (n) return chr (n,64) end
-local function characters(n) return chrs(n,96) end
-local function Characters(n) return chrs(n,64) end
-
-converters.alphabetic = alphabetic
-converters.Alphabetic = Alphabetic
-converters.character = character
-converters.Character = Character
-converters.characters = characters
-converters.Characters = Characters
-
-function commands.alphabetic(n,c) context(alphabetic(n,c)) end
-function commands.Alphabetic(n,c) context(Alphabetic(n,c)) end
-function commands.character (n) context(character (n)) end
-function commands.Character (n) context(Character (n)) end
-function commands.characters(n) context(characters(n)) end
-function commands.Characters(n) context(Characters(n)) end
+local lower_offset = 96
+local upper_offset = 64
+
+function converters.character (n) return chr (n,lower_offset) end
+function converters.Character (n) return chr (n,upper_offset) end
+function converters.characters(n) return chrs(n,lower_offset) end
+function converters.Characters(n) return chrs(n,upper_offset) end
+
+function commands.alphabetic(n,c) context(do_alphabetic(n,counters[c],lowercharacter)) end
+function commands.Alphabetic(n,c) context(do_alphabetic(n,counters[c],uppercharacter)) end
+function commands.character (n) context(chr (n,lower_offset)) end
+function commands.Character (n) context(chr (n,upper_offset)) end
+function commands.characters(n) context(chrs(n,lower_offset)) end
+function commands.Characters(n) context(chrs(n,upper_offset)) end
local days = {
[false] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
@@ -245,52 +249,35 @@ local function nofdays(year,month)
return days[isleapyear(year)][month]
end
-local function year () return date("%Y") end
-local function month () return date("%m") end
-local function hour () return date("%H") end
-local function minute() return date("%M") end
-local function second() return date("%S") end
-
local function textime()
return tonumber(date("%H")) * 60 + tonumber(date("%M"))
end
+function converters.year () return date("%Y") end
+function converters.month () return date("%m") end
+function converters.hour () return date("%H") end
+function converters.minute() return date("%M") end
+function converters.second() return date("%S") end
+
converters.weekday = weekday
converters.isleapyear = isleapyear
converters.leapyear = leapyear
converters.nofdays = nofdays
-converters.year = year
-converters.month = month
-converters.hour = hour
-converters.minute = minute
-converters.second = second
converters.textime = textime
-function commands.weekday(day,month,year)
- context(weekday(day,month,year))
-end
+function commands.weekday (day,month,year) context(weekday (day,month,year)) end
+function commands.leapyear(year) context(leapyear(year)) end -- rather useless
+function commands.nofdays (year,month) context(nofdays (year,month)) end
-function commands.isleapyear(year)
- context(isleapyear(year))
-end
-
-function commands.leapyear(year)
- context(leapyear(year))
-end
-
-function commands.nofdays(year,month)
- context(nofdays(year,month))
-end
-
-function commands.year () context(year ()) end
-function commands.month () context(month ()) end
-function commands.hour () context(hour ()) end
-function commands.minute () context(minute ()) end
-function commands.second () context(second ()) end
+function commands.year () context(date("%Y")) end
+function commands.month () context(date("%m")) end
+function commands.hour () context(date("%H")) end
+function commands.minute () context(date("%M")) end
+function commands.second () context(date("%S")) end
function commands.textime() context(textime()) end
function commands.doifleapyearelse(year)
- commands.testcase(leapyear(year))
+ commands.doifelse(isleapyear(year))
end
local roman = {
@@ -307,13 +294,9 @@ local function toroman(n)
end
end
-local Romannumerals = toroman
-
-local function romannumerals(n) return lower(toroman(n)) end
-
converters.toroman = toroman
converters.Romannumerals = toroman
-converters.romannumerals = romannumerals
+converters.romannumerals = function(n) return lower(toroman(n)) end
function commands.romannumerals(n) context(lower(toroman(n))) end
function commands.Romannumerals(n) context( toroman(n)) end
@@ -366,11 +349,8 @@ end
converters.toabjad = toabjad
-local function abjadnumerals (n) return toabjad(n,false) end
-local function abjadnodotnumerals(n) return toabjad(n,true ) end
-
-converters.abjadnumerals = abjadnumerals
-converters.abjadnodotnumerals = abjadnodotnumerals
+function converters.abjadnumerals (n) return toabjad(n,false) end
+function converters.abjadnodotnumerals(n) return toabjad(n,true ) end
function commands.abjadnumerals (n) context(toabjad(n,false)) end
function commands.abjadnodotnumerals(n) context(toabjad(n,true )) end
@@ -515,13 +495,9 @@ end
converters.tochinese = tochinese
-local function chinesenumerals (n) return tochinese(n,"normal") end
-local function chinesecapnumerals(n) return tochinese(n,"cap" ) end
-local function chineseallnumerals(n) return tochinese(n,"all" ) end
-
-converters.chinesenumerals = chinesenumerals
-converters.chinesecapnumerals = chinesecapnumerals
-converters.chineseallnumerals = chineseallnumerals
+function converters.chinesenumerals (n) return tochinese(n,"normal") end
+function converters.chinesecapnumerals(n) return tochinese(n,"cap" ) end
+function converters.chineseallnumerals(n) return tochinese(n,"all" ) end
function commands.chinesenumerals (n) context(tochinese(n,"normal")) end
function commands.chinesecapnumerals(n) context(tochinese(n,"cap" )) end
@@ -683,7 +659,7 @@ end
-- context(escapes[n] or utfchar(n))
-- end
--
--- local lccodes, uccodes = characters.lccode, characters.uccode
+-- local lccodes, uccodes, safechar = characters.lccode, characters.uccode, commands.safechar
--
-- local function do_alphabetic(n,mapping,chr)
-- local max = #mapping
@@ -691,7 +667,7 @@ end
-- do_alphabetic(floor((n-1)/max),mapping,chr)
-- n = (n-1)%max+1
-- end
--- characters.flush(chr(n,mapping))
+-- safechar(chr(n,mapping))
-- end
--
-- local function lowercased(n,mapping) return characters.lccode(mapping[n] or fallback) end
@@ -705,8 +681,6 @@ end
-- do_alphabetic(n,counters[code] or counters['**'],uppercased)
-- end
--- --
-
local ordinals = {
english = function(n)
local two = n % 100
diff --git a/tex/context/base/core-env.lua b/tex/context/base/core-env.lua
index c31df929e..cd4284a7d 100644
--- a/tex/context/base/core-env.lua
+++ b/tex/context/base/core-env.lua
@@ -122,12 +122,15 @@ local types = {
function tex.isdimen(name)
return lookuptoken(name)[1] == dimencode
end
+
function tex.iscount(name)
return lookuptoken(name)[1] == countcode
end
+
function tex.istoken(name)
return lookuptoken(name)[1] == tokencode
end
+
function tex.isskip(name)
return lookuptoken(name)[1] == skipcode
end
diff --git a/tex/context/base/core-two.lua b/tex/context/base/core-two.lua
index f94b102bc..d6e006e04 100644
--- a/tex/context/base/core-two.lua
+++ b/tex/context/base/core-two.lua
@@ -153,5 +153,5 @@ commands.savetwopassdata = jobpasses.save
commands.savetaggedtwopassdata = jobpasses.savetagged
function commands.doifelseintwopassdata(id,str)
- commands.testcase(inlist(id,str))
+ commands.doifelse(inlist(id,str))
end
diff --git a/tex/context/base/core-uti.lua b/tex/context/base/core-uti.lua
index 1657a75e2..ab64b99af 100644
--- a/tex/context/base/core-uti.lua
+++ b/tex/context/base/core-uti.lua
@@ -20,6 +20,7 @@ saves much runtime but at the cost of more memory usage.</p>
local format, match = string.format, string.match
local next, type, tostring = next, type, tostring
local concat = table.concat
+local texcount = tex.count
local definetable = utilities.tables.definetable
local accesstable = utilities.tables.accesstable
@@ -146,9 +147,7 @@ function job.save(filename) -- we could return a table but it can get pretty lar
for c=1,#comment do
f:write("-- ",comment[c],"\n")
end
- f:write("\n")
- f:write("local utilitydata = { }\n")
- f:write("\n")
+ f:write("\nlocal utilitydata = { }\n\n")
for l=1,#savelist do
local list = savelist[l]
local target = format("utilitydata.%s",list[1])
@@ -160,16 +159,13 @@ function job.save(filename) -- we could return a table but it can get pretty lar
if job.pack then
packers.pack(data,jobpacker,true)
end
- f:write(definetable(target),"\n")
- f:write(serialize(data,target,true,true),"\n")
+ f:write(definetable(target),"\n",serialize(data,target,true,true),"\n")
end
if job.pack then
packers.strip(jobpacker)
f:write(serialize(jobpacker,"utilitydata.job.packed",true,true),"\n")
end
- f:write("\n")
- f:write("return utilitydata\n")
- f:write("\n")
+ f:write("\nreturn utilitydata\n\n")
f:close()
end
statistics.stoptiming(_save_)
@@ -252,7 +248,7 @@ end)
statistics.register("callbacks", function()
local total, indirect = status.callbacks or 0, status.indirect_callbacks or 0
- local pages = tex.count['realpageno'] - 1
+ local pages = texcount['realpageno'] - 1
if pages > 1 then
return format("direct: %s, indirect: %s, total: %s (%i per page)", total-indirect, indirect, total, total/pages)
else
@@ -268,8 +264,8 @@ end)
function statistics.formatruntime(runtime)
if not environment.initex then -- else error when testing as not counters yet
- local shipped = tex.count['nofshipouts']
- local pages = tex.count['realpageno'] - 1
+ local shipped = texcount['nofshipouts']
+ local pages = texcount['realpageno'] - 1
if shipped > 0 or pages > 0 then
local persecond = shipped / runtime
if pages == 0 then pages = shipped end
diff --git a/tex/context/base/file-ini.lua b/tex/context/base/file-ini.lua
index 4f8b5b6e3..1872ed3d3 100644
--- a/tex/context/base/file-ini.lua
+++ b/tex/context/base/file-ini.lua
@@ -7,9 +7,8 @@ if not modules then modules = { } end modules ['file-ini'] = {
}
--[[ldx--
-<p>It's more convenient to manipulate filenames (paths) in
-<l n='lua'/> than in <l n='tex'/>. These methods have counterparts
-at the <l n='tex'/> side.</p>
+<p>It's more convenient to manipulate filenames (paths) in <l n='lua'/> than in
+<l n='tex'/>. These methods have counterparts at the <l n='tex'/> end.</p>
--ldx]]--
resolvers.jobs = resolvers.jobs or { }
diff --git a/tex/context/base/file-lib.lua b/tex/context/base/file-lib.lua
index 92dacbf5c..c99c2ac41 100644
--- a/tex/context/base/file-lib.lua
+++ b/tex/context/base/file-lib.lua
@@ -33,6 +33,7 @@ function commands.uselibrary(specification) -- todo; reporter
local failure = specification.failure or defaultfailure
local onlyonce = specification.onlyonce
local files = utilities.parsers.settings_to_array(name)
+ local truename = environment.truefilename
local done = false
for i=1,#files do
local filename = files[i]
@@ -42,9 +43,9 @@ function commands.uselibrary(specification) -- todo; reporter
end
for i=1,#patterns do
local somename = format(patterns[i],filename)
-if environment.truefilename then
- somename = environment.truefilename(somename)
-end
+ if truename then
+ somename = truename(somename)
+ end
local foundname = resolvers.getreadfilename("any",".",somename) or ""
if foundname ~= "" then
action(name,foundname)
diff --git a/tex/context/base/file-mod.lua b/tex/context/base/file-mod.lua
index e6592f0f0..1bbe657e0 100644
--- a/tex/context/base/file-mod.lua
+++ b/tex/context/base/file-mod.lua
@@ -20,14 +20,14 @@ at the <l n='tex'/> side.</p>
local format, concat, tonumber = string.format, table.concat, tonumber
-local trace_modules = false trackers.register("modules.loading", function(v) trace_modules = v end)
+local trace_modules = false trackers.register("modules.loading", function(v) trace_modules = v end)
local report_modules = logs.reporter("resolvers","modules")
-commands = commands or { }
-local commands = commands
+commands = commands or { }
+local commands = commands
-local findbyscheme = resolvers.finders.byscheme -- use different one
+local findbyscheme = resolvers.finders.byscheme -- use different one
-- modules can have a specific suffix or can specify one
@@ -144,8 +144,8 @@ statistics.register("loaded tex modules", function()
t[nt] = k
end
end
- local ts = (nt>0 and format(" (%s)",concat(t," "))) or ""
- local fs = (nf>0 and format(" (%s)",concat(f," "))) or ""
+ local ts = nt > 0 and format(" (%s)",concat(t," ")) or ""
+ local fs = nf > 0 and format(" (%s)",concat(f," ")) or ""
return format("%s requested, %s found%s, %s missing%s",nt+nf,nt,ts,nf,fs)
else
return nil
@@ -166,5 +166,5 @@ function commands.doifolderversionelse(one,two) -- one >= two
two = lpeg.match(splitter,two)
one = (one[1] or 0) * 10000 + (one[2] or 0) * 100 + (one[3] or 0)
two = (two[1] or 0) * 10000 + (two[2] or 0) * 100 + (two[3] or 0)
- commands.testcase(one>=two)
+ commands.doifelse(one>=two)
end
diff --git a/tex/context/base/file-syn.lua b/tex/context/base/file-syn.lua
index 1be9fb4b1..8d913bb37 100644
--- a/tex/context/base/file-syn.lua
+++ b/tex/context/base/file-syn.lua
@@ -11,6 +11,9 @@ local report_files = logs.reporter("files")
environment.filesynonyms = environment.filesynonyms or { }
local filesynonyms = environment.filesynonyms
+local settings_to_array = utilities.parsers.settings_to_array
+local findfile = resolvers.findfile
+
storage.register("environment/filesynonyms", filesynonyms, "environment.filesynonyms")
local function truefilename(name)
@@ -37,9 +40,9 @@ function commands.definefilesynonym(name,realname)
end
function commands.definefilefallback(name,alternatives)
- local names = utilities.parser.settings_to_array(alternatives)
+ local names = settings_to_array(alternatives)
for i=1,#names do
- local realname = resolvers.findfile(names[i])
+ local realname = findfile(names[i])
if realname ~= "" then
filesynonyms[name] = realname
break
diff --git a/tex/context/base/font-afk.lua b/tex/context/base/font-afk.lua
new file mode 100644
index 000000000..2674cb233
--- /dev/null
+++ b/tex/context/base/font-afk.lua
@@ -0,0 +1,199 @@
+if not modules then modules = { } end modules ['font-afk'] = {
+ version = 1.001,
+ comment = "companion to font-afm.lua",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+ dataonly = true,
+}
+
+--[[ldx--
+<p>For ligatures, only characters with a code smaller than 128 make sense,
+anything larger is encoding dependent. An interesting complication is that a
+character can be in an encoding twice but is hashed once.</p>
+--ldx]]--
+
+
+fonts.handlers.afm.helpdata = {
+ ligatures = { -- okay, nowadays we could parse the name but type 1 fonts
+ ['f'] = { -- don't have that many ligatures anyway
+ { 'f', 'ff' },
+ { 'i', 'fi' },
+ { 'l', 'fl' },
+ },
+ ['ff'] = {
+ { 'i', 'ffi' }
+ },
+ ['fi'] = {
+ { 'i', 'fii' }
+ },
+ ['fl'] = {
+ { 'i', 'fli' }
+ },
+ ['s'] = {
+ { 't', 'st' }
+ },
+ ['i'] = {
+ { 'j', 'ij' }
+ },
+ },
+ texligatures = {
+ -- ['space'] = {
+ -- { 'L', 'Lslash' },
+ -- { 'l', 'lslash' }
+ -- },
+ -- ['question'] = {
+ -- { 'quoteleft', 'questiondown' }
+ -- },
+ -- ['exclam'] = {
+ -- { 'quoteleft', 'exclamdown' }
+ -- },
+ ['quoteleft'] = {
+ { 'quoteleft', 'quotedblleft' }
+ },
+ ['quoteright'] = {
+ { 'quoteright', 'quotedblright' }
+ },
+ ['hyphen'] = {
+ { 'hyphen', 'endash' }
+ },
+ ['endash'] = {
+ { 'hyphen', 'emdash' }
+ }
+ },
+ leftkerned = {
+ AEligature = "A", aeligature = "a",
+ OEligature = "O", oeligature = "o",
+ IJligature = "I", ijligature = "i",
+ AE = "A", ae = "a",
+ OE = "O", oe = "o",
+ IJ = "I", ij = "i",
+ Ssharp = "S", ssharp = "s",
+ },
+ rightkerned = {
+ AEligature = "E", aeligature = "e",
+ OEligature = "E", oeligature = "e",
+ IJligature = "J", ijligature = "j",
+ AE = "E", ae = "e",
+ OE = "E", oe = "e",
+ IJ = "J", ij = "j",
+ Ssharp = "S", ssharp = "s",
+ },
+ bothkerned = {
+ Acircumflex = "A", acircumflex = "a",
+ Ccircumflex = "C", ccircumflex = "c",
+ Ecircumflex = "E", ecircumflex = "e",
+ Gcircumflex = "G", gcircumflex = "g",
+ Hcircumflex = "H", hcircumflex = "h",
+ Icircumflex = "I", icircumflex = "i",
+ Jcircumflex = "J", jcircumflex = "j",
+ Ocircumflex = "O", ocircumflex = "o",
+ Scircumflex = "S", scircumflex = "s",
+ Ucircumflex = "U", ucircumflex = "u",
+ Wcircumflex = "W", wcircumflex = "w",
+ Ycircumflex = "Y", ycircumflex = "y",
+
+ Agrave = "A", agrave = "a",
+ Egrave = "E", egrave = "e",
+ Igrave = "I", igrave = "i",
+ Ograve = "O", ograve = "o",
+ Ugrave = "U", ugrave = "u",
+ Ygrave = "Y", ygrave = "y",
+
+ Atilde = "A", atilde = "a",
+ Itilde = "I", itilde = "i",
+ Otilde = "O", otilde = "o",
+ Utilde = "U", utilde = "u",
+ Ntilde = "N", ntilde = "n",
+
+ Adiaeresis = "A", adiaeresis = "a", Adieresis = "A", adieresis = "a",
+ Ediaeresis = "E", ediaeresis = "e", Edieresis = "E", edieresis = "e",
+ Idiaeresis = "I", idiaeresis = "i", Idieresis = "I", idieresis = "i",
+ Odiaeresis = "O", odiaeresis = "o", Odieresis = "O", odieresis = "o",
+ Udiaeresis = "U", udiaeresis = "u", Udieresis = "U", udieresis = "u",
+ Ydiaeresis = "Y", ydiaeresis = "y", Ydieresis = "Y", ydieresis = "y",
+
+ Aacute = "A", aacute = "a",
+ Cacute = "C", cacute = "c",
+ Eacute = "E", eacute = "e",
+ Iacute = "I", iacute = "i",
+ Lacute = "L", lacute = "l",
+ Nacute = "N", nacute = "n",
+ Oacute = "O", oacute = "o",
+ Racute = "R", racute = "r",
+ Sacute = "S", sacute = "s",
+ Uacute = "U", uacute = "u",
+ Yacute = "Y", yacute = "y",
+ Zacute = "Z", zacute = "z",
+
+ Dstroke = "D", dstroke = "d",
+ Hstroke = "H", hstroke = "h",
+ Tstroke = "T", tstroke = "t",
+
+ Cdotaccent = "C", cdotaccent = "c",
+ Edotaccent = "E", edotaccent = "e",
+ Gdotaccent = "G", gdotaccent = "g",
+ Idotaccent = "I", idotaccent = "i",
+ Zdotaccent = "Z", zdotaccent = "z",
+
+ Amacron = "A", amacron = "a",
+ Emacron = "E", emacron = "e",
+ Imacron = "I", imacron = "i",
+ Omacron = "O", omacron = "o",
+ Umacron = "U", umacron = "u",
+
+ Ccedilla = "C", ccedilla = "c",
+ Kcedilla = "K", kcedilla = "k",
+ Lcedilla = "L", lcedilla = "l",
+ Ncedilla = "N", ncedilla = "n",
+ Rcedilla = "R", rcedilla = "r",
+ Scedilla = "S", scedilla = "s",
+ Tcedilla = "T", tcedilla = "t",
+
+ Ohungarumlaut = "O", ohungarumlaut = "o",
+ Uhungarumlaut = "U", uhungarumlaut = "u",
+
+ Aogonek = "A", aogonek = "a",
+ Eogonek = "E", eogonek = "e",
+ Iogonek = "I", iogonek = "i",
+ Uogonek = "U", uogonek = "u",
+
+ Aring = "A", aring = "a",
+ Uring = "U", uring = "u",
+
+ Abreve = "A", abreve = "a",
+ Ebreve = "E", ebreve = "e",
+ Gbreve = "G", gbreve = "g",
+ Ibreve = "I", ibreve = "i",
+ Obreve = "O", obreve = "o",
+ Ubreve = "U", ubreve = "u",
+
+ Ccaron = "C", ccaron = "c",
+ Dcaron = "D", dcaron = "d",
+ Ecaron = "E", ecaron = "e",
+ Lcaron = "L", lcaron = "l",
+ Ncaron = "N", ncaron = "n",
+ Rcaron = "R", rcaron = "r",
+ Scaron = "S", scaron = "s",
+ Tcaron = "T", tcaron = "t",
+ Zcaron = "Z", zcaron = "z",
+
+ dotlessI = "I", dotlessi = "i",
+ dotlessJ = "J", dotlessj = "j",
+
+ AEligature = "AE", aeligature = "ae", AE = "AE", ae = "ae",
+ OEligature = "OE", oeligature = "oe", OE = "OE", oe = "oe",
+ IJligature = "IJ", ijligature = "ij", IJ = "IJ", ij = "ij",
+
+ Lstroke = "L", lstroke = "l", Lslash = "L", lslash = "l",
+ Ostroke = "O", ostroke = "o", Oslash = "O", oslash = "o",
+
+ Ssharp = "SS", ssharp = "ss",
+
+ Aumlaut = "A", aumlaut = "a",
+ Eumlaut = "E", eumlaut = "e",
+ Iumlaut = "I", iumlaut = "i",
+ Oumlaut = "O", oumlaut = "o",
+ Uumlaut = "U", uumlaut = "u",
+ }
+}
diff --git a/tex/context/base/font-afm.lua b/tex/context/base/font-afm.lua
index 9d3d8ddd7..a27a6a236 100644
--- a/tex/context/base/font-afm.lua
+++ b/tex/context/base/font-afm.lua
@@ -17,12 +17,7 @@ where we handles font encodings. Eventually font encoding goes
away.</p>
--ldx]]--
-local trace_features = false trackers.register("afm.features", function(v) trace_features = v end)
-local trace_indexing = false trackers.register("afm.indexing", function(v) trace_indexing = v end)
-local trace_loading = false trackers.register("afm.loading", function(v) trace_loading = v end)
-local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
-
-local report_afm = logs.reporter("fonts","afm loading")
+local fonts, logs, trackers, containers, resolvers = fonts, logs, trackers, containers, resolvers
local next, type, tonumber = next, type, tonumber
local format, match, gmatch, lower, gsub, strip = string.format, string.match, string.gmatch, string.lower, string.gsub, string.strip
@@ -30,25 +25,34 @@ local abs = math.abs
local P, S, C, R, lpegmatch, patterns = lpeg.P, lpeg.S, lpeg.C, lpeg.R, lpeg.match, lpeg.patterns
local derivetable = table.derive
-local fonts = fonts
+local trace_features = false trackers.register("afm.features", function(v) trace_features = v end)
+local trace_indexing = false trackers.register("afm.indexing", function(v) trace_indexing = v end)
+local trace_loading = false trackers.register("afm.loading", function(v) trace_loading = v end)
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+
+local report_afm = logs.reporter("fonts","afm loading")
+
+local definers = fonts.definers
+local readers = fonts.readers
+local constructors = fonts.constructors
+local handlers = fonts.handlers
+
local afm = { }
local pfb = { }
-fonts.handlers.afm = afm
-fonts.handlers.pfb = pfb
+
+handlers.afm = afm
+handlers.pfb = pfb
afm.version = 1.410 -- incrementing this number one up will force a re-cache
afm.cache = containers.define("fonts", "afm", afm.version, true)
afm.autoprefixed = true -- this will become false some day (catches texnansi-blabla.*)
+afm.helpdata = { } -- set later on so no local for this
afm.syncspace = true -- when true, nicer stretch values
afm.addligatures = true -- best leave this set to true
afm.addtexligatures = true -- best leave this set to true
afm.addkerns = true -- best leave this set to true
-local definers = fonts.definers
-local readers = fonts.readers
-local constructors = fonts.constructors
-
local findbinfile = resolvers.findbinfile
local afmfeatures = constructors.newfeatures("afm")
@@ -429,79 +433,26 @@ end
and extra kerns. This saves quite some lookups later.</p>
--ldx]]--
---[[ldx--
-<p>Only characters with a code smaller than 128 make sense,
-anything larger is encoding dependent. An interesting complication
-is that a character can be in an encoding twice but is hashed
-once.</p>
---ldx]]--
-
-local ligatures = { -- okay, nowadays we could parse the name but type 1 fonts
- ['f'] = { -- don't have that many ligatures anyway
- { 'f', 'ff' },
- { 'i', 'fi' },
- { 'l', 'fl' },
- },
- ['ff'] = {
- { 'i', 'ffi' }
- },
- ['fi'] = {
- { 'i', 'fii' }
- },
- ['fl'] = {
- { 'i', 'fli' }
- },
- ['s'] = {
- { 't', 'st' }
- },
- ['i'] = {
- { 'j', 'ij' }
- },
-}
-
-local texligatures = {
- -- ['space'] = {
- -- { 'L', 'Lslash' },
- -- { 'l', 'lslash' }
- -- },
- -- ['question'] = {
- -- { 'quoteleft', 'questiondown' }
- -- },
- -- ['exclam'] = {
- -- { 'quoteleft', 'exclamdown' }
- -- },
- ['quoteleft'] = {
- { 'quoteleft', 'quotedblleft' }
- },
- ['quoteright'] = {
- { 'quoteright', 'quotedblright' }
- },
- ['hyphen'] = {
- { 'hyphen', 'endash' }
- },
- ['endash'] = {
- { 'hyphen', 'emdash' }
- }
-}
-
local addthem = function(rawdata,ligatures)
- local descriptions = rawdata.descriptions
- local resources = rawdata.resources
- local unicodes = resources.unicodes
- local names = resources.names
- for ligname, ligdata in next, ligatures do
- local one = descriptions[unicodes[ligname]]
- if one then
- for _, pair in next, ligdata do
- local two, three = unicodes[pair[1]], unicodes[pair[2]]
- if two and three then
- local ol = one.ligatures
- if ol then
- if not ol[two] then
- ol[two] = three
+ if ligatures then
+ local descriptions = rawdata.descriptions
+ local resources = rawdata.resources
+ local unicodes = resources.unicodes
+ local names = resources.names
+ for ligname, ligdata in next, ligatures do
+ local one = descriptions[unicodes[ligname]]
+ if one then
+ for _, pair in next, ligdata do
+ local two, three = unicodes[pair[1]], unicodes[pair[2]]
+ if two and three then
+ local ol = one.ligatures
+ if ol then
+ if not ol[two] then
+ ol[two] = three
+ end
+ else
+ one.ligatures = { [two] = three }
end
- else
- one.ligatures = { [two] = three }
end
end
end
@@ -509,8 +460,8 @@ local addthem = function(rawdata,ligatures)
end
end
-addligatures = function(rawdata) addthem(rawdata,ligatures ) end
-addtexligatures = function(rawdata) addthem(rawdata,texligatures) end
+addligatures = function(rawdata) addthem(rawdata,afm.helpdata.ligatures ) end
+addtexligatures = function(rawdata) addthem(rawdata,afm.helpdata.texligatures) end
--[[ldx--
<p>We keep the extra kerns in separate kerning tables so that we can use
@@ -524,208 +475,71 @@ them selectively.</p>
-- we don't use the character database. (Ok, we can have a context specific
-- variant).
--- we can make them numbers
-
-local left = {
- AEligature = "A", aeligature = "a",
- OEligature = "O", oeligature = "o",
- IJligature = "I", ijligature = "i",
- AE = "A", ae = "a",
- OE = "O", oe = "o",
- IJ = "I", ij = "i",
- Ssharp = "S", ssharp = "s",
-}
-
-local right = {
- AEligature = "E", aeligature = "e",
- OEligature = "E", oeligature = "e",
- IJligature = "J", ijligature = "j",
- AE = "E", ae = "e",
- OE = "E", oe = "e",
- IJ = "J", ij = "j",
- Ssharp = "S", ssharp = "s",
-}
-
-local both = {
- Acircumflex = "A", acircumflex = "a",
- Ccircumflex = "C", ccircumflex = "c",
- Ecircumflex = "E", ecircumflex = "e",
- Gcircumflex = "G", gcircumflex = "g",
- Hcircumflex = "H", hcircumflex = "h",
- Icircumflex = "I", icircumflex = "i",
- Jcircumflex = "J", jcircumflex = "j",
- Ocircumflex = "O", ocircumflex = "o",
- Scircumflex = "S", scircumflex = "s",
- Ucircumflex = "U", ucircumflex = "u",
- Wcircumflex = "W", wcircumflex = "w",
- Ycircumflex = "Y", ycircumflex = "y",
-
- Agrave = "A", agrave = "a",
- Egrave = "E", egrave = "e",
- Igrave = "I", igrave = "i",
- Ograve = "O", ograve = "o",
- Ugrave = "U", ugrave = "u",
- Ygrave = "Y", ygrave = "y",
-
- Atilde = "A", atilde = "a",
- Itilde = "I", itilde = "i",
- Otilde = "O", otilde = "o",
- Utilde = "U", utilde = "u",
- Ntilde = "N", ntilde = "n",
-
- Adiaeresis = "A", adiaeresis = "a", Adieresis = "A", adieresis = "a",
- Ediaeresis = "E", ediaeresis = "e", Edieresis = "E", edieresis = "e",
- Idiaeresis = "I", idiaeresis = "i", Idieresis = "I", idieresis = "i",
- Odiaeresis = "O", odiaeresis = "o", Odieresis = "O", odieresis = "o",
- Udiaeresis = "U", udiaeresis = "u", Udieresis = "U", udieresis = "u",
- Ydiaeresis = "Y", ydiaeresis = "y", Ydieresis = "Y", ydieresis = "y",
-
- Aacute = "A", aacute = "a",
- Cacute = "C", cacute = "c",
- Eacute = "E", eacute = "e",
- Iacute = "I", iacute = "i",
- Lacute = "L", lacute = "l",
- Nacute = "N", nacute = "n",
- Oacute = "O", oacute = "o",
- Racute = "R", racute = "r",
- Sacute = "S", sacute = "s",
- Uacute = "U", uacute = "u",
- Yacute = "Y", yacute = "y",
- Zacute = "Z", zacute = "z",
-
- Dstroke = "D", dstroke = "d",
- Hstroke = "H", hstroke = "h",
- Tstroke = "T", tstroke = "t",
-
- Cdotaccent = "C", cdotaccent = "c",
- Edotaccent = "E", edotaccent = "e",
- Gdotaccent = "G", gdotaccent = "g",
- Idotaccent = "I", idotaccent = "i",
- Zdotaccent = "Z", zdotaccent = "z",
-
- Amacron = "A", amacron = "a",
- Emacron = "E", emacron = "e",
- Imacron = "I", imacron = "i",
- Omacron = "O", omacron = "o",
- Umacron = "U", umacron = "u",
-
- Ccedilla = "C", ccedilla = "c",
- Kcedilla = "K", kcedilla = "k",
- Lcedilla = "L", lcedilla = "l",
- Ncedilla = "N", ncedilla = "n",
- Rcedilla = "R", rcedilla = "r",
- Scedilla = "S", scedilla = "s",
- Tcedilla = "T", tcedilla = "t",
-
- Ohungarumlaut = "O", ohungarumlaut = "o",
- Uhungarumlaut = "U", uhungarumlaut = "u",
-
- Aogonek = "A", aogonek = "a",
- Eogonek = "E", eogonek = "e",
- Iogonek = "I", iogonek = "i",
- Uogonek = "U", uogonek = "u",
-
- Aring = "A", aring = "a",
- Uring = "U", uring = "u",
-
- Abreve = "A", abreve = "a",
- Ebreve = "E", ebreve = "e",
- Gbreve = "G", gbreve = "g",
- Ibreve = "I", ibreve = "i",
- Obreve = "O", obreve = "o",
- Ubreve = "U", ubreve = "u",
-
- Ccaron = "C", ccaron = "c",
- Dcaron = "D", dcaron = "d",
- Ecaron = "E", ecaron = "e",
- Lcaron = "L", lcaron = "l",
- Ncaron = "N", ncaron = "n",
- Rcaron = "R", rcaron = "r",
- Scaron = "S", scaron = "s",
- Tcaron = "T", tcaron = "t",
- Zcaron = "Z", zcaron = "z",
-
- dotlessI = "I", dotlessi = "i",
- dotlessJ = "J", dotlessj = "j",
-
- AEligature = "AE", aeligature = "ae", AE = "AE", ae = "ae",
- OEligature = "OE", oeligature = "oe", OE = "OE", oe = "oe",
- IJligature = "IJ", ijligature = "ij", IJ = "IJ", ij = "ij",
-
- Lstroke = "L", lstroke = "l", Lslash = "L", lslash = "l",
- Ostroke = "O", ostroke = "o", Oslash = "O", oslash = "o",
-
- Ssharp = "SS", ssharp = "ss",
-
- Aumlaut = "A", aumlaut = "a",
- Eumlaut = "E", eumlaut = "e",
- Iumlaut = "I", iumlaut = "i",
- Oumlaut = "O", oumlaut = "o",
- Uumlaut = "U", uumlaut = "u",
-
-}
-
addkerns = function(rawdata) -- using shcodes is not robust here
local descriptions = rawdata.descriptions
local resources = rawdata.resources
local unicodes = resources.unicodes
local function do_it_left(what)
- for unicode, description in next, descriptions do
- local kerns = description.kerns
- if kerns then
- local extrakerns
- for complex, simple in next, what do
- complex = unicodes[complex]
- simple = unicodes[simple]
- if complex and simple then
- local ks = kerns[simple]
- if ks and not kerns[complex] then
- if extrakerns then
- extrakerns[complex] = ks
- else
- extrakerns = { [complex] = ks }
+ if what then
+ for unicode, description in next, descriptions do
+ local kerns = description.kerns
+ if kerns then
+ local extrakerns
+ for complex, simple in next, what do
+ complex = unicodes[complex]
+ simple = unicodes[simple]
+ if complex and simple then
+ local ks = kerns[simple]
+ if ks and not kerns[complex] then
+ if extrakerns then
+ extrakerns[complex] = ks
+ else
+ extrakerns = { [complex] = ks }
+ end
end
end
end
- end
- if extrakerns then
- description.extrakerns = extrakerns
+ if extrakerns then
+ description.extrakerns = extrakerns
+ end
end
end
end
end
local function do_it_copy(what)
- for complex, simple in next, what do
- complex = unicodes[complex]
- simple = unicodes[simple]
- if complex and simple then
- local complexdescription = descriptions[complex]
- if complexdescription then -- optional
- local simpledescription = descriptions[complex]
- if simpledescription then
- local extrakerns
- local kerns = simpledescription.kerns
- if kerns then
- for unicode, kern in next, kerns do
- if extrakerns then
- extrakerns[unicode] = kern
- else
- extrakerns = { [unicode] = kern }
+ if what then
+ for complex, simple in next, what do
+ complex = unicodes[complex]
+ simple = unicodes[simple]
+ if complex and simple then
+ local complexdescription = descriptions[complex]
+ if complexdescription then -- optional
+ local simpledescription = descriptions[complex]
+ if simpledescription then
+ local extrakerns
+ local kerns = simpledescription.kerns
+ if kerns then
+ for unicode, kern in next, kerns do
+ if extrakerns then
+ extrakerns[unicode] = kern
+ else
+ extrakerns = { [unicode] = kern }
+ end
end
end
- end
- local extrakerns = simpledescription.extrakerns
- if extrakerns then
- for unicode, kern in next, extrakerns do
- if extrakerns then
- extrakerns[unicode] = kern
- else
- extrakerns = { [unicode] = kern }
+ local extrakerns = simpledescription.extrakerns
+ if extrakerns then
+ for unicode, kern in next, extrakerns do
+ if extrakerns then
+ extrakerns[unicode] = kern
+ else
+ extrakerns = { [unicode] = kern }
+ end
end
end
- end
- if extrakerns then
- complexdescription.extrakerns = extrakerns
+ if extrakerns then
+ complexdescription.extrakerns = extrakerns
+ end
end
end
end
@@ -733,11 +547,11 @@ addkerns = function(rawdata) -- using shcodes is not robust here
end
end
-- add complex with values of simplified when present
- do_it_left(left)
- do_it_left(both)
+ do_it_left(afm.helpdata.leftkerned)
+ do_it_left(afm.helpdata.bothkerned)
-- copy kerns from simple char to complex char unless set
- do_it_copy(both)
- do_it_copy(right)
+ do_it_copy(afm.helpdata.bothkerned)
+ do_it_copy(afm.helpdata.rightkerned)
end
--[[ldx--
diff --git a/tex/context/base/font-agl.lua b/tex/context/base/font-agl.lua
index 6c1f387ba..ca7fb61cb 100644
--- a/tex/context/base/font-agl.lua
+++ b/tex/context/base/font-agl.lua
@@ -271,7 +271,7 @@ for a, u in next, extras do
end
end
--- We load this table only when needed. We coul duse a loading mechanism
+-- We load this table only when needed. We could use a loading mechanism
-- return the table but there are no more vectors like this so why bother.
fonts.encodings = fonts.encodings or { }
diff --git a/tex/context/base/font-chk.lua b/tex/context/base/font-chk.lua
index 04b49b02c..7536a3e09 100644
--- a/tex/context/base/font-chk.lua
+++ b/tex/context/base/font-chk.lua
@@ -149,7 +149,7 @@ local package = "q %0.6f 0 0 %0.6f 0 0 cm %s %s %s rg %s %s %s RG 10 M 1 j 1 J 0
local cache = { } -- saves some tables but not that impressive
-local function addmissingsymbols(tfmdata)
+local function addmissingsymbols(tfmdata) -- we can have an alternative with rules
local characters = tfmdata.characters
local size = tfmdata.parameters.size
local privates = tfmdata.properties.privates
diff --git a/tex/context/base/font-chk.mkiv b/tex/context/base/font-chk.mkiv
new file mode 100644
index 000000000..d436388de
--- /dev/null
+++ b/tex/context/base/font-chk.mkiv
@@ -0,0 +1,22 @@
+%D \module
+%D [ file=font-chk,
+%D version=2009.01.02, % moved from font-tra
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=Checking,
+%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 Font Macros / Checking}
+
+\registerctxluafile{font-chk}{1.001}
+
+\unexpanded\def\checkcharactersinfont {\ctxcommand{checkcharactersinfont()}}
+\unexpanded\def\removemissingcharacters {\ctxcommand{removemissingcharacters()}}
+\unexpanded\def\replacemissingcharacters{\ctxcommand{replacemissingcharacters()}}
+
+\endinput
diff --git a/tex/context/base/font-cid.lua b/tex/context/base/font-cid.lua
index 4a4c4d209..bf186d885 100644
--- a/tex/context/base/font-cid.lua
+++ b/tex/context/base/font-cid.lua
@@ -10,17 +10,17 @@ local format, match, lower = string.format, string.match, string.lower
local tonumber = tonumber
local P, S, R, C, V, lpegmatch = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.match
-local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+local fonts, logs, trackers = fonts, logs, trackers
-local report_otf = logs.reporter("fonts","otf loading")
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
-local fonts = fonts
+local report_otf = logs.reporter("fonts","otf loading")
-local cid = { }
-fonts.cid = cid
+local cid = { }
+fonts.cid = cid
-local cidmap = { }
-local cidmax = 10
+local cidmap = { }
+local cidmax = 10
-- original string parser: 0.109, lpeg parser: 0.036 seconds for Adobe-CNS1-4.cidmap
--
@@ -79,8 +79,7 @@ local function loadcidfile(filename)
end
end
-cid.loadfile = loadcidfile -- we use the frozen variant
-
+cid.loadfile = loadcidfile -- we use the frozen variant
local template = "%s-%s-%s.cidmap"
local function locate(registry,ordering,supplement)
diff --git a/tex/context/base/font-col.lua b/tex/context/base/font-col.lua
index f8add1e4e..849ade5d8 100644
--- a/tex/context/base/font-col.lua
+++ b/tex/context/base/font-col.lua
@@ -8,32 +8,40 @@ if not modules then modules = { } end modules ['font-col'] = {
-- possible optimization: delayed initialization of vectors
-local gmatch, type = string.gmatch, type
-local traverse_id = node.traverse_id
-local lpegmatch = lpeg.match
+local context, commands, trackers, logs = context, commands, trackers, logs
+local node, nodes, fonts, characters = node, nodes, fonts, characters
+local file, lpeg, table, string = file, lpeg, table, string
+
+local type, next, toboolean = type, next, toboolean
+local gmatch = string.gmatch
local fastcopy = table.fastcopy
-local settings_to_hash = utilities.parsers.settings_to_hash
+----- P, Cc, lpegmatch = lpeg.P, lpeg.Cc, lpeg.match
+
+local traverse_id = node.traverse_id
+local settings_to_hash = utilities.parsers.settings_to_hash
-local trace_collecting = false trackers.register("fonts.collecting", function(v) trace_collecting = v end)
+local trace_collecting = false trackers.register("fonts.collecting", function(v) trace_collecting = v end)
-local report_fonts = logs.reporter("fonts","collections")
+local report_fonts = logs.reporter("fonts","collections")
-local fonts, context = fonts, context
+fonts.collections = fonts.collections or { }
+local collections = fonts.collections
-fonts.collections = fonts.collections or { }
-local collections = fonts.collections
+collections.definitions = collections.definitions or { }
+local definitions = collections.definitions
-collections.definitions = collections.definitions or { }
-local definitions = collections.definitions
+collections.vectors = collections.vectors or { }
+local vectors = collections.vectors
-collections.vectors = collections.vectors or { }
-local vectors = collections.vectors
+local fontdata = fonts.hashes.identifiers
-local fontdata = fonts.hashes.identifiers
+local glyph_code = nodes.nodecodes.glyph
-local glyph = node.id('glyph')
+local fontpatternhassize = fonts.helpers.fontpatternhassize
-local list, current, active = { }, 0, false
+local list = { }
+local current = 0
+local enabled = false
-- maybe also a copy
@@ -145,17 +153,19 @@ function collections.clonevector(name)
if trace_collecting then
report_fonts("def: activating collection %s for font %s",name,current)
end
- active = true
+ if not enabled then
+ nodes.tasks.enableaction("processors","fonts.collections.process")
+ enabled = true
+ end
statistics.stoptiming(fonts)
end
-- we already have this parser
-
-local P, Cc = lpeg.P, lpeg.Cc
-local spec = (P("sa") + P("at") + P("scaled") + P("at") + P("mo")) * P(" ")^1 * (1-P(" "))^1 * P(" ")^0 * -1
-local okay = ((1-spec)^1 * spec * Cc(true)) + Cc(false)
-
--- todo: check for already done
+--
+-- local spec = (P("sa") + P("at") + P("scaled") + P("at") + P("mo")) * P(" ")^1 * (1-P(" "))^1 * P(" ")^0 * -1
+-- local okay = ((1-spec)^1 * spec * Cc(true)) + Cc(false)
+--
+-- if lpegmatch(okay,name) then
function collections.prepare(name)
current = font.current()
@@ -175,7 +185,7 @@ function collections.prepare(name)
local f = d[i]
local name = f.font
local scale = f.rscale or 1
- if lpegmatch(okay,name) then
+ if fontpatternhassize(name) then
context.font_fallbacks_clone_unique(name,scale)
else
context.font_fallbacks_clone_inherited(name,scale)
@@ -198,32 +208,28 @@ function collections.report(message)
end
function collections.process(head) -- this way we keep feature processing
- if active then
- local done = false
- for n in traverse_id(glyph,head) do
- local v = vectors[n.font]
- if v then
- local id = v[n.char]
- if id then
- if type(id) == "table" then
- local newid, newchar = id[1], id[2]
- if trace_collecting then
- report_fonts("lst: remapping character %s in font %s to character %s in font %s",n.char,n.font,newchar,newid)
- end
- n.font, n.char = newid, newchar
- else
- if trace_collecting then
- report_fonts("lst: remapping font %s to %s for character %s",n.font,id,n.char)
- end
- n.font = id
+ local done = false
+ for n in traverse_id(glyph,head) do
+ local v = vectors[n.font]
+ if v then
+ local id = v[n.char]
+ if id then
+ if type(id) == "table" then
+ local newid, newchar = id[1], id[2]
+ if trace_collecting then
+ report_fonts("lst: remapping character %s in font %s to character %s in font %s",n.char,n.font,newchar,newid)
end
+ n.font, n.char = newid, newchar
+ else
+ if trace_collecting then
+ report_fonts("lst: remapping font %s to %s for character %s",n.font,id,n.char)
+ end
+ n.font = id
end
end
end
- return head, done
- else
- return head, false
end
+ return head, done
end
-- interface
diff --git a/tex/context/base/font-ctx.lua b/tex/context/base/font-ctx.lua
index a7dcd6edd..8fdb42c7d 100644
--- a/tex/context/base/font-ctx.lua
+++ b/tex/context/base/font-ctx.lua
@@ -790,6 +790,18 @@ local scale_scaled = P("scaled") * Cc(4) * spaces * dimension -- value
local sizepattern = spaces * (scale_at + scale_sa + scale_mo + scale_scaled + scale_none)
local splitpattern = spaces * value * spaces * rest
+function helpers.splitfontpattern(str)
+ local name, size = lpegmatch(splitpattern,str)
+ local kind, size = lpegmatch(sizepattern,size)
+ return name, kind, size
+end
+
+function helpers.fontpatternhassize(str)
+ local name, size = lpegmatch(splitpattern,str)
+ local kind, size = lpegmatch(sizepattern,size)
+ return size or false
+end
+
local specification -- still needed as local ?
local getspecification = definers.getspecification
diff --git a/tex/context/base/font-ldr.lua b/tex/context/base/font-ldr.lua
index ca4e3f98a..175b4d0cc 100644
--- a/tex/context/base/font-ldr.lua
+++ b/tex/context/base/font-ldr.lua
@@ -6,8 +6,8 @@ if not modules then modules = { } end modules ['font-ldr'] = {
license = "see context related readme files"
}
--- This module provides a replacement for fontloader.to_table
--- and will be loaded in due time.
+-- This module provides an experimental replacement for fontloader.to_table
+-- but is not used that much.
local fields = fontloader.fields
diff --git a/tex/context/base/font-lib.mkvi b/tex/context/base/font-lib.mkvi
index d9c04f0a2..6b3d76567 100644
--- a/tex/context/base/font-lib.mkvi
+++ b/tex/context/base/font-lib.mkvi
@@ -27,6 +27,7 @@
\registerctxluafile{font-tfm}{1.001}
\registerctxluafile{font-afm}{1.001}
+\registerctxluafile{font-afk}{1.001}
\registerctxluafile{font-oti}{1.001} % otf initialization
\registerctxluafile{font-ott}{1.001} % otf tables (first)
@@ -56,7 +57,6 @@
\registerctxluafile{font-ext}{1.001}
\registerctxluafile{font-fbk}{1.001}
-\registerctxluafile{font-chk}{1.001}
\registerctxluafile{font-aux}{1.001}
diff --git a/tex/context/base/font-sol.lua b/tex/context/base/font-sol.lua
index e97e627b4..d77a990b5 100644
--- a/tex/context/base/font-sol.lua
+++ b/tex/context/base/font-sol.lua
@@ -24,16 +24,18 @@ local insert, remove = table.insert, table.remove
local utfchar = utf.char
local random = math.random
-local trace_split = false trackers.register("builders.paragraphs.solutions.splitters.splitter", function(v) trace_split = v end)
-local trace_optimize = false trackers.register("builders.paragraphs.solutions.splitters.optimizer", function(v) trace_optimize = v end)
-local trace_colors = false trackers.register("builders.paragraphs.solutions.splitters.colors", function(v) trace_colors = v end)
-local trace_goodies = false trackers.register("fonts.goodies", function(v) trace_goodies = v end)
+local utilities, logs, statistics, fonts, trackers = utilities, logs, statistics, fonts, trackers
+local interfaces, commands, attributes = interfaces, commands, attributes
+local nodes, node, tex = nodes, node, tex
-local report_solutions = logs.reporter("fonts","solutions")
-local report_splitters = logs.reporter("fonts","splitters")
-local report_optimizers = logs.reporter("fonts","optimizers")
+local trace_split = false trackers.register("builders.paragraphs.solutions.splitters.splitter", function(v) trace_split = v end)
+local trace_optimize = false trackers.register("builders.paragraphs.solutions.splitters.optimizer", function(v) trace_optimize = v end)
+local trace_colors = false trackers.register("builders.paragraphs.solutions.splitters.colors", function(v) trace_colors = v end)
+local trace_goodies = false trackers.register("fonts.goodies", function(v) trace_goodies = v end)
-local nodes, node = nodes, node
+local report_solutions = logs.reporter("fonts","solutions")
+local report_splitters = logs.reporter("fonts","splitters")
+local report_optimizers = logs.reporter("fonts","optimizers")
local variables = interfaces.variables
@@ -87,41 +89,42 @@ local starttiming = statistics.starttiming
local stoptiming = statistics.stoptiming
local process_characters = nodes.handlers.characters
local inject_kerns = nodes.injections.handler
-local fontdata = fonts.hashes.identifiers
-local setfontdynamics = fonts.hashes.setdynamics
-local fontprocesses = fonts.hashes.processes
+
+local fonthashes = fonts.hashes
+local fontdata = fonthashes.identifiers
+local setfontdynamics = fonthashes.setdynamics
+local fontprocesses = fonthashes.processes
local texsetattribute = tex.setattribute
local unsetvalue = attributes.unsetvalue
-local parbuilders = builders.paragraphs
-parbuilders.solutions = parbuilders.solutions or { }
-parbuilders.solutions.splitters = parbuilders.solutions.splitters or { }
-
-local splitters = parbuilders.solutions.splitters
+local parbuilders = builders.paragraphs
+parbuilders.solutions = parbuilders.solutions or { }
+local parsolutions = parbuilders.solutions
+parsolutions.splitters = parsolutions.splitters or { }
+local splitters = parsolutions.splitters
-local solutions = { } -- attribute sets
-local registered = { } -- backmapping
+local solutions = { } -- attribute sets
+local registered = { } -- backmapping
+splitters.registered = registered
-local a_split = attributes.private('splitter')
+local a_split = attributes.private('splitter')
-local preroll = true
-local criterium = 0
-local randomseed = nil
-local optimize = nil -- set later
-local variant = v_normal
-local splitwords = true
+local preroll = true
+local criterium = 0
+local randomseed = nil
+local optimize = nil -- set later
+local variant = v_normal
+local splitwords = true
-local cache = { }
-local variants = { }
-local max_less = 0
-local max_more = 0
+local cache = { }
+local variants = { }
+local max_less = 0
+local max_more = 0
-splitters.registered = registered
+local stack = { }
-local stack = { }
-
-local dummy = {
+local dummy = {
attribute = unsetvalue,
randomseed = 0,
criterium = 0,
@@ -409,8 +412,6 @@ end
-- we could avoid a hpack but hpack is not that slow
-
-
local function doit(word,list,best,width,badness,line,set,listdir)
local changed = 0
local n = word[1]
@@ -769,7 +770,6 @@ function splitters.reset()
end
end
-
-- interface
commands.definefontsolution = splitters.define
@@ -777,4 +777,3 @@ commands.startfontsolution = splitters.start
commands.stopfontsolution = splitters.stop
commands.setfontsolution = splitters.set
commands.resetfontsolution = splitters.reset
-
diff --git a/tex/context/base/font-tra.mkiv b/tex/context/base/font-tra.mkiv
index 06b861378..d0a562fbd 100644
--- a/tex/context/base/font-tra.mkiv
+++ b/tex/context/base/font-tra.mkiv
@@ -13,6 +13,8 @@
\unprotect
+\writestatus{loading}{ConTeXt Font Macros / Tracing}
+
%D \macros
%D {showbodyfont}
%D
@@ -82,10 +84,8 @@
\fetchruntimecommand \showcharratio {\f!fontprefix\s!run}
\fetchruntimecommand \showfontparameters {\f!fontprefix\s!run}
-\unexpanded\def\checkcharactersinfont {\ctxcommand{checkcharactersinfont()}}
-\unexpanded\def\removemissingcharacters{\ctxcommand{removemissingcharacters()}}
-\unexpanded\def\showchardata #1{\ctxcommand{showchardata("#1")}}
-\unexpanded\def\showfontdata {\ctxcommand{showfontparameters()}}
+\unexpanded\def\showchardata #1{\ctxcommand{showchardata("#1")}}
+\unexpanded\def\showfontdata {\ctxcommand{showfontparameters()}}
%D \macros
%D {doiffontpresentelse}
@@ -95,7 +95,7 @@
%D \doiffontpresentelse{adam-lindsay-modern-serif}{YES}{NO}
%D \stoptyping
-\def\doiffontpresentelse#1{\ctxcommand{doifelse(fonts.names.exists("#1"))}}
+\unexpanded\def\doiffontpresentelse#1{\ctxcommand{doifelse(fonts.names.exists("#1"))}}
% experimental, maybe this becomes a module
@@ -103,24 +103,24 @@
\unexpanded\def\startotfcollecting{\ctxlua{nodes.tracers.steppers.start()}}
\unexpanded\def\stopotfcollecting {\ctxlua{nodes.tracers.steppers.stop()}}
-\def\resetotfcollecting{\ctxlua{nodes.tracers.steppers.reset()}}
+\unexpanded\def\resetotfcollecting{\ctxlua{nodes.tracers.steppers.reset()}}
% Rather experimental:
%
% \page \showotfcomposition{arabtype*arab-default at 48pt}{-1}{الضَّرَّ} \page
% \page \showotfcomposition{arabtype*arab-default at 48pt}{-1}{لِلّٰهِ} \page
-\def\showotfstepglyphs#1%
+\unexpanded\def\showotfstepglyphs#1%
{\ctxlua{nodes.tracers.steppers.glyphs(\number\otfcollector,#1)}%
\unhbox\otfcollector}
-\def\otfstepcharcommand#1#2#3% font char class
+\unexpanded\def\otfstepcharcommand#1#2#3% font char class
{\removeunwantedspaces
\hskip.5em plus .125em\relax
\doif{#3}{mark}{\underbar}{U+\hexnumber{#2}}:\ruledhbox{\ctxlua{nodes.tracers.fontchar(#1,#2)}}%
\hskip.5em plus .125em\relax}
-\def\otfstepmessagecommand#1#2%
+\unexpanded\def\otfstepmessagecommand#1#2%
{\begingroup
\tttf\language\minusone
\veryraggedright
@@ -133,16 +133,16 @@
\endgroup
\blank}
-\def\showotfstepchars#1%
+\unexpanded\def\showotfstepchars#1%
{\ctxlua{nodes.tracers.steppers.codes(#1,"otfstepcharcommand")}}
-\def\showotfstepmessages#1%
+\unexpanded\def\showotfstepmessages#1%
{\ctxlua{nodes.tracers.steppers.messages(#1,"otfstepmessagecommand",true)}}
-\def\showotfstepfeatures
+\unexpanded\def\showotfstepfeatures
{\ctxlua{nodes.tracers.steppers.features()}}
-\def\showotfsteps
+\unexpanded\def\showotfsteps
{\begingroup
\veryraggedright
\forgetparindent
@@ -186,7 +186,7 @@
\newbox\otfcompositionbox
-\def\showotfcomposition#1#2#3% {font*features at size}, rl=-1, text
+\unexpanded\def\showotfcomposition#1#2#3% {font*features at size}, rl=-1, text
{\begingroup
\veryraggedright
\forgetparindent
diff --git a/tex/context/base/java-ini.lua b/tex/context/base/java-ini.lua
index 1e98de717..b431a965c 100644
--- a/tex/context/base/java-ini.lua
+++ b/tex/context/base/java-ini.lua
@@ -8,9 +8,10 @@ if not modules then modules = { } end modules ['java-ini'] = {
local format = string.format
local concat = table.concat
-local lpegmatch, lpegP, lpegR, lpegS, lpegC, lpegCarg = lpeg.match, lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Carg
+local lpegmatch, P, S, C, Carg, Cc = lpeg.match, lpeg.P, lpeg.S, lpeg.C, lpeg.Carg, lpeg.Cc
local allocate = utilities.storage.allocate
+local settings_to_array = utilities.parsers.settings_to_array
local variables = interfaces.variables
-- todo: don't flush scripts if no JS key
@@ -38,24 +39,24 @@ local function storefunction(s,preamble)
functions[s] = preamble
end
-local uses = lpegP("uses")
-local used = lpegP("used")
-local left = lpegP("{")
-local right = lpegP("}")
-local space = lpegS(" \r\n")
+local uses = P("uses")
+local used = P("used")
+local left = P("{")
+local right = P("}")
+local space = S(" \r\n")
local spaces = space^0
-local braced = left * lpegC((1-right-space)^1) * right
-local unbraced = lpegC((1-space)^1)
+local braced = left * C((1-right-space)^1) * right
+local unbraced = C((1-space)^1)
local name = spaces * (braced + unbraced) * spaces
-local any = lpegP(1)
-local script = lpegC(any^1)
-local funct = lpegP("function")
-local leftp = lpegP("(")
-local rightp = lpegP(")")
-local fname = spaces * funct * spaces * (lpegC((1-space-left-leftp)^1) * lpegCarg(1) / storefunction) * spaces * leftp
-
-local parsecode = name * ((uses * name) + lpeg.Cc("")) * spaces * script
-local parsepreamble = name * ((used * name) + lpeg.Cc("")) * spaces * script
+local any = P(1)
+local script = C(any^1)
+local funct = P("function")
+local leftp = P("(")
+local rightp = P(")")
+local fname = spaces * funct * spaces * (C((1-space-left-leftp)^1) * Carg(1) / storefunction) * spaces * leftp
+
+local parsecode = name * ((uses * name) + Cc("")) * spaces * script
+local parsepreamble = name * ((used * name) + Cc("")) * spaces * script
local parsefunctions = (fname + any)^0
function javascripts.storecode(str)
@@ -112,7 +113,7 @@ end
function javascripts.usepreamblenow(name) -- now later
if name and name ~= "" and name ~= variables.reset then -- todo: reset
- local names = utilities.parsers.settings_to_array(name)
+ local names = settings_to_array(name)
for i=1,#names do
local somename = names[i]
if not preambled[somename] then
diff --git a/tex/context/base/lang-def.lua b/tex/context/base/lang-def.lua
index 8fcd7a621..c6bbcf3ae 100644
--- a/tex/context/base/lang-def.lua
+++ b/tex/context/base/lang-def.lua
@@ -7,10 +7,12 @@ if not modules then modules = { } end modules ['lang-def'] = {
-- dataonly = true, -- saves 10K
}
+local rawget = rawget
local lower = string.lower
languages = languages or { }
local languages = languages
+languages.data = languages.data or { }
local data = languages.data
local allocate = utilities.storage.allocate
@@ -377,50 +379,54 @@ local contexts = { } data.contexts = contexts
local records = { } data.records = records
for k=1,#specifications do
- local v = specifications[k]
- if v.variant then
- variants[v.variant] = v
+ local specification = specifications[k]
+ local variant = specification.variant
+ if variant then
+ variants[lower(variant)] = specification
end
- if v.opentype then
- opentypes[v.opentype] = v
+ local opentype = specification.opentype
+ if opentype then
+ opentypes[lower(opentype)] = specification
end
- local vc = v.context
- if vc then
- if type(vc) == "table" then
- for k=1,#vc do
- contexts[v] = vc[k]
+ local context = context
+ if context then
+ if type(context) == "table" then
+ for k=1,#context do
+ contexts[context[k]] = specification
end
else
- contexts[vc] = v
+ contexts[context] = specification
end
end
end
+local defaultvariant = variants["en-us"]
+
setmetatableindex(variants, function(t,k)
- str = lower(str)
- local v = (l_variant[str] or l_opentype[str] or l_context[str] or l_variant.en).language
+ k = lower(k)
+ local v = (rawget(variants,k) or rawget(opentypes,k) or rawget(contexts,k) or defaultvariant).language
t[k] = v
return v
end)
setmetatableindex(opentypes, function(t,k)
- str = lower(str)
- local v = (l_variant[str] or l_opentype[str] or l_context[str] or l_variant.en).opentype
+ k = lower(k)
+ local v = (rawget(variants,k) or rawget(opentypes,k) or rawget(contexts,k) or defaultvariant).opentype
t[k] = v
return v
end)
setmetatableindex(contexts, function(t,k)
- str = lower(str)
- local v = (l_variant[str] or l_opentype[str] or l_context[str] or l_variant[languages.default]).context
+ k = lower(str)
+ local v = (rawget(variants,k) or rawget(opentypes,k) or rawget(contexts,k) or defaultvariant).context
v = (type(v) == "table" and v[1]) or v
t[k] = v
return v
end)
setmetatableindex(records, function(t,k) -- how useful is this one?
- str = lower(str)
- local v = variants[str] or opentypes[str] or contexts[str] or variants.en
+ k = lower(k)
+ local v = rawget(variants,k) or rawget(opentypes,k) or rawget(contexts,k) or defaultvariant
t[k] = v
return v
end)
diff --git a/tex/context/base/lang-ini.lua b/tex/context/base/lang-ini.lua
index 97528097f..eaedcd69a 100644
--- a/tex/context/base/lang-ini.lua
+++ b/tex/context/base/lang-ini.lua
@@ -29,12 +29,14 @@ local trace_patterns = false trackers.register("languages.patterns", function(v
local report_initialization = logs.reporter("languages","initialization")
-local prehyphenchar = lang.prehyphenchar -- global per language
+local prehyphenchar = lang.prehyphenchar -- global per language
local posthyphenchar = lang.posthyphenchar -- global per language
local lefthyphenmin = lang.lefthyphenmin
local righthyphenmin = lang.righthyphenmin
+local lang = lang
lang.exceptions = lang.hyphenation
+local new_langage = lang.new
languages = languages or {}
local languages = languages
@@ -65,7 +67,7 @@ local function resolve(tag)
if data then
instance = data.instance
if not instance then
- instance = lang.new(data.number)
+ instance = new_langage(data.number)
data.instance = instance
end
end
@@ -78,7 +80,7 @@ local function tolang(what) -- returns lang object
if data then
local instance = data.lang
if not instance then
- instance = lang.new(data.number)
+ instance = new_langage(data.number)
data.instance = instance
end
return instance
@@ -100,34 +102,34 @@ local function loaddefinitions(tag,specification)
local dataused, ok = data.used, false
for i=1,#definitions do
local definition = definitions[i]
- if definition ~= "" then
- if definition == "reset" then -- interfaces.variables.reset
+ if definition == "" then
+ -- error
+ elseif definition == "reset" then -- interfaces.variables.reset
+ if trace_patterns then
+ report_initialization("clearing patterns for language '%s'",tag)
+ end
+ instance:clear_patterns()
+ elseif not dataused[definition] then
+ dataused[definition] = definition
+ local filename = "lang-" .. definition .. ".lua"
+ local fullname = resolvers.findfile(filename) or ""
+ if fullname ~= "" then
if trace_patterns then
- report_initialization("clearing patterns for language '%s'",tag)
+ report_initialization("loading definition '%s' for language '%s' from '%s'",definition,tag,fullname)
end
- instance:clear_patterns()
- elseif not dataused[definition] then
- dataused[definition] = definition
- local filename = "lang-" .. definition .. ".lua"
- local fullname = resolvers.findfile(filename) or ""
- if fullname ~= "" then
- if trace_patterns then
- report_initialization("loading definition '%s' for language '%s' from '%s'",definition,tag,fullname)
- end
- local defs = dofile(fullname) -- use regular loader instead
- if defs then -- todo: version test
- ok, nofloaded = true, nofloaded + 1
- instance:patterns (defs.patterns and defs.patterns.data or "")
- instance:hyphenation(defs.exceptions and defs.exceptions.data or "")
- else
- report_initialization("invalid definition '%s' for language '%s' in '%s'",definition,tag,filename)
- end
- elseif trace_patterns then
+ local defs = dofile(fullname) -- use regular loader instead
+ if defs then -- todo: version test
+ ok, nofloaded = true, nofloaded + 1
+ instance:patterns (defs.patterns and defs.patterns .data or "")
+ instance:hyphenation(defs.exceptions and defs.exceptions.data or "")
+ else
report_initialization("invalid definition '%s' for language '%s' in '%s'",definition,tag,filename)
end
elseif trace_patterns then
- report_initialization("definition '%s' for language '%s' already loaded",definition,tag)
+ report_initialization("invalid definition '%s' for language '%s' in '%s'",definition,tag,filename)
end
+ elseif trace_patterns then
+ report_initialization("definition '%s' for language '%s' already loaded",definition,tag)
end
end
return ok
@@ -161,7 +163,7 @@ function languages.define(tag,parent)
storage.shared.noflanguages = noflanguages
end
-function languages.synonym(synonym,tag) -- convenience function
+function languages.setsynonym(synonym,tag) -- convenience function
local l = registered[tag]
if l then
l.synonyms[synonym] = true -- maybe some day more info
@@ -169,7 +171,7 @@ function languages.synonym(synonym,tag) -- convenience function
end
function languages.installed(separator)
- context(concat(sortedkeys(registered),separator or ","))
+ return concat(sortedkeys(registered),separator or ",")
end
function languages.current(n)
@@ -187,8 +189,6 @@ function languages.association(tag) -- not yet used
local lat = tag and associated[tag]
if lat then
return lat[1], lat[2]
- else
- return nil, nil
end
end
@@ -204,7 +204,7 @@ end
-- a bit messy, we will do all language setting in lua as we can now assign
-- and 'patterns' will go away here.
-function languages.setdirty(tag)
+function languages.unload(tag)
local l = registered[tag]
if l then
l.dirty = true
@@ -217,13 +217,9 @@ if environment.initex then
return 0
end
- function commands.languagenumber()
- context(0)
- end
-
else
- local function getnumber(tag,default,patterns)
+ function languages.getnumber(tag,default,patterns)
local l = registered[tag]
if l then
if l.dirty then
@@ -264,12 +260,6 @@ else
end
end
- languages.getnumber = getnumber
-
- function commands.languagenumber(tag,default,patterns)
- context(getnumber(tag,default,patterns))
- end
-
end
-- not that usefull, global values
@@ -294,7 +284,7 @@ function languages.loadwords(tag,filename)
end
end
-function languages.exceptions(tag,str)
+function languages.setexceptions(tag,str)
local data, instance = resolve(tag)
if data then
instance:hyphenation(string.strip(str)) -- we need to strip leading spaces
@@ -404,3 +394,20 @@ end)
--~ function hyphenation.loadexceptions(tag, exceptions)
--~ return loadthem(tag, exceptions, filterexceptions, "exceptions")
--~ end
+
+-- interface
+
+local getnumber = languages.getnumber
+
+function commands.languagenumber(tag,default,patterns)
+ context(getnumber(tag,default,patterns))
+end
+
+function commands.installedlanguages(separator)
+ context(languages.installed(separator))
+end
+
+commands.definelanguage = languages.define
+commands.setlanguagesynonym = languages.setsynonym
+commands.unloadlanguage = languages.unload
+commands.setlanguageexceptions = languages.setexceptions
diff --git a/tex/context/base/lang-ini.mkiv b/tex/context/base/lang-ini.mkiv
index 150b68f70..4f560ce9d 100644
--- a/tex/context/base/lang-ini.mkiv
+++ b/tex/context/base/lang-ini.mkiv
@@ -174,7 +174,7 @@
\newtoks \everysetuplanguage
-\def\installedlanguages{\ctxlua{languages.installed()}}
+\def\installedlanguages{\ctxcommand{installedlanguages()}}
\unexpanded\def\doiflanguageelse#1%
{\ifcsname\??language#1\c!state\endcsname
@@ -199,10 +199,10 @@
\lang_basics_install_indeed{#1}{#1}%
\getparameters[\??language#1][\c!state=\v!start,#2]}%
\edef\currentsetuplanguage{#1}%
- \ctxlua{languages.define("#1","\specificlanguageparameter{#1}\s!default")}%
+ \ctxcommand{definelanguage("#1","\specificlanguageparameter{#1}\s!default")}%
\the\everysetuplanguage}
{\setvalue{\??languagelinked#1}{#2}%
- \ctxlua{languages.synonym("#1","#2")}%
+ \ctxcommand{setlanguagesynonym("#1","#2")}%
\lang_basics_install_indeed{#1}{#2}}}
\def\lang_basics_install_indeed#1#2%
@@ -254,7 +254,7 @@
\lang_basics_synchronize}
\appendtoks
- \ctxlua{languages.setdirty("\currentsetuplanguage")}%
+ \ctxcommand{unloadlanguage("\currentsetuplanguage")}%
\to \everysetuplanguage
\setuplanguage
@@ -570,15 +570,15 @@
\let\stopexceptions\relax
\unexpanded\def\startexceptions
- {\dosingleempty\dostartexceptions}
+ {\dosingleempty\lang_basics_start_exceptions}
-\def\dostartexceptions[#1]#2\stopexceptions % multilingual or not?
+\def\lang_basics_start_exceptions[#1]#2\stopexceptions % multilingual or not?
{\begingroup
\edef\askedlanguage{\reallanguagetag{#1}}%
\ifx\askedlanguage\empty
\let\askedlanguage\currentlanguage
\fi
- \ctxlua{languages.exceptions("\askedlanguage",\!!bs#2\!!es)}%
+ \ctxcommand{setlanguageexceptions("\askedlanguage",\!!bs#2\!!es)}%
\endgroup}
%D For the moment here:
diff --git a/tex/context/base/lang-lab.lua b/tex/context/base/lang-lab.lua
index a217cd50d..893e1554d 100644
--- a/tex/context/base/lang-lab.lua
+++ b/tex/context/base/lang-lab.lua
@@ -61,9 +61,10 @@ if not modules then modules = { } end modules ['lang-lab'] = {
local format, find = string.format, string.find
local next, rawget, type = next, rawget, type
-local prtcatcodes = tex.prtcatcodes
local lpegmatch = lpeg.match
+local prtcatcodes = catcodes.numbers.prtcatcodes -- todo: use different method
+
local trace_labels = false trackers.register("languages.labels", function(v) trace_labels = v end)
local report_labels = logs.reporter("languages","labels")
@@ -81,17 +82,19 @@ end
labels.split = split
-local function definelanguagelabels(data,command,tag,rawtag)
+local contextsprint = context.sprint
+
+local function definelanguagelabels(data,class,tag,rawtag)
for language, text in next, data.labels do
if text == "" then
-- skip
elseif type(text) == "table" then
- context("\\%s[%s][%s={{%s},{%s}}]",command,language,tag,text[1],text[2])
+ contextsprint(prtcatcodes,"\\setlabeltextpair{",class,"}{",language,"}{",tag,"}{",text[1],"}{",text[2],"}")
if trace_labels then
report_labels("language '%s', defining label '%s' as '%s' and '%s'",language,rawtag,text[1],text[2])
end
else
- context("\\%s[%s][%s={{%s},}]",command,language,tag,text)
+ contextsprint(prtcatcodes,"\\setlabeltextpair{",class,"}{",language,"}{",tag,"}{",text,"}{}")
if trace_labels then
report_labels("language '%s', defining label '%s' as '%s'",language,rawtag,text)
end
@@ -99,11 +102,10 @@ local function definelanguagelabels(data,command,tag,rawtag)
end
end
-function labels.define(command,name,prefixed)
+function labels.define(class,name,prefixed)
local list = languages.data.labels[name]
if list then
report_labels("defining label set '%s'",name)
- context.pushcatcodes(prtcatcodes) -- context.unprotect
for tag, data in next, list do
if data.hidden then
-- skip
@@ -112,25 +114,24 @@ function labels.define(command,name,prefixed)
if second then
if rawget(variables,first) then
if rawget(variables,second) then
- definelanguagelabels(data,command,format("\\v!%s:\\v!%s",first,second),tag)
+ definelanguagelabels(data,class,format("\\v!%s:\\v!%s",first,second),tag)
else
- definelanguagelabels(data,command,format("\\v!%s:%s",first,second),tag)
+ definelanguagelabels(data,class,format("\\v!%s:%s",first,second),tag)
end
elseif rawget(variables,second) then
- definelanguagelabels(data,command,format("%s:\\v!%s",first,second),tag)
+ definelanguagelabels(data,class,format("%s:\\v!%s",first,second),tag)
else
- definelanguagelabels(data,command,format("%s:%s",first,second),tag)
+ definelanguagelabels(data,class,format("%s:%s",first,second),tag)
end
elseif rawget(variables,rawtag) then
- definelanguagelabels(data,command,format("\\v!%s",tag),tag)
+ definelanguagelabels(data,class,format("\\v!%s",tag),tag)
else
- definelanguagelabels(data,command,tag,tag)
+ definelanguagelabels(data,class,tag,tag)
end
else
- definelanguagelabels(data,command,tag,tag)
+ definelanguagelabels(data,class,tag,tag)
end
end
- context.popcatcodes() -- context.protect
else
report_labels("unknown label set '%s'",name)
end
@@ -151,11 +152,16 @@ end
--~
--~ labels.check()
+
+-- interface
+
+commands.definelabels = labels.define
+
-- function commands.setstrippedtextprefix(str)
-- context(string.strip(str))
-- end
-function commands.concatcommalist(settings)
+function commands.concatcommalist(settings) -- it's too easy to forget that this one is there
local list = settings_to_array(settings.text or "")
local size = #list
if size > 1 then
diff --git a/tex/context/base/lang-lab.mkiv b/tex/context/base/lang-lab.mkiv
index 68458e069..285a03315 100644
--- a/tex/context/base/lang-lab.mkiv
+++ b/tex/context/base/lang-lab.mkiv
@@ -231,17 +231,18 @@
\def\lang_labels_text_prefix_assign_dumb#1[#2,#3]%
{\expandafter\def\csname\??label\currenttextprefixclass:\currenttextprefixtag:#1\endcsname{#2}}
+\unexpanded\def\setlabeltextpair#1#2#3#4#5% a fast one for usage at the Lua end
+ {\expandafter\def\csname\??label#1:\reallanguagetag{#2}:#3\endcsname{{#4}{#5}}} % class tag key left right
+
\definelabelclass [head] [0] % titles
\definelabelclass [label] [0] % texts
\definelabelclass [mathlabel] [0] % functions
\definelabelclass [taglabel] [2] % tags
-\ctxlua{
- languages.labels.define("setupheadtext","titles",true)%
- languages.labels.define("setuplabeltext","texts",true)%
- languages.labels.define("setupmathlabeltext","functions",false)%
- languages.labels.define("setuptaglabeltext","tags",false)%
-}
+\ctxcommand{definelabels("head", "titles", true )}
+\ctxcommand{definelabels("label","texts", true )}
+\ctxcommand{definelabels("math", "functions",false)}
+\ctxcommand{definelabels("tag", "tags", false)}
%D \macros
%D {translate}
diff --git a/tex/context/base/lang-url.lua b/tex/context/base/lang-url.lua
index 09a4e5d90..1817fc280 100644
--- a/tex/context/base/lang-url.lua
+++ b/tex/context/base/lang-url.lua
@@ -72,7 +72,8 @@ hyphenatedurl.lefthyphenmin = 2
hyphenatedurl.righthyphenmin = 3
hyphenatedurl.discretionary = nil
--- more fun is to write nodes
+-- more fun is to write nodes .. maybe it's nicer to do this
+-- in an attribute handler anyway
local function action(hyphenatedurl,str,left,right,disc)
local n = 0
diff --git a/tex/context/base/lang-wrd.lua b/tex/context/base/lang-wrd.lua
index e23345040..c5bc75ca2 100644
--- a/tex/context/base/lang-wrd.lua
+++ b/tex/context/base/lang-wrd.lua
@@ -90,76 +90,11 @@ function words.found(id, str)
end
end
--- The following code is an adaption of experimental code for
--- hyphenating and spell checking.
+-- The following code is an adaption of experimental code for hyphenating and
+-- spell checking.
-- there is an n=1 problem somewhere in nested boxes
---~ local function mark_words(head,whenfound) -- can be optimized and shared
---~ local current, start, str, language, n, done = head, nil, "", nil, 0, false
---~ local function action()
---~ if #str > 0 then
---~ local f = whenfound(language,str)
---~ if f then
---~ done = true
---~ for i=1,n do
---~ f(start)
---~ start = start.next
---~ end
---~ end
---~ end
---~ str, start, n = "", nil, 0
---~ end
---~ while current do
---~ local id = current.id
---~ if id == glyph_code then
---~ local a = current.lang
---~ if a then
---~ if a ~= language then
---~ if start then
---~ action()
---~ end
---~ language = a
---~ end
---~ elseif start then
---~ action()
---~ language = a
---~ end
---~ local components = current.components
---~ if components then
---~ start = start or current
---~ n = n + 1
---~ for g in traverse_nodes(components) do
---~ str = str .. utfchar(g.char)
---~ end
---~ else
---~ local code = current.char
---~ local data = chardata[code]
---~ if is_letter[data.category] then
---~ start = start or current
---~ n = n + 1
---~ str = str .. utfchar(code) -- slow, maybe str should be a table (and given max)
---~ elseif start then
---~ action()
---~ end
---~ end
---~ elseif id == disc_code then
---~ if n > 0 then
---~ n = n + 1
---~ end
---~ elseif id == kern_code and current.subtype == kerning_code and start then
---~ -- ok
---~ elseif start then
---~ action()
---~ end
---~ current = current.next
---~ end
---~ if start then
---~ action()
---~ end
---~ return head, done
---~ end
-
local function mark_words(head,whenfound) -- can be optimized and shared
local current, language, done = head, nil, nil, 0, false
local str, s, nds, n = { }, 0, { }, 0 -- n could also be a table, saves calls
@@ -263,21 +198,19 @@ end
local cache = { } -- can also be done with method 1 -- frozen colors once used
-setmetatable(cache, {
- __index = function(t,k) -- k == language, numbers[k] == tag
- local c
- if type(k) == "string" then
- c = colist[k]
- elseif k < 0 then
- c = colist["word:unset"]
- else
- c = colist["word:" .. (numbers[k] or "unset")] or colist["word:unknown"]
- end
- local v = c and function(n) set_attribute(n,a_color,c) end or false
- t[k] = v
- return v
+table.setmetatableindex(cache, function(t,k) -- k == language, numbers[k] == tag
+ local c
+ if type(k) == "string" then
+ c = colist[k]
+ elseif k < 0 then
+ c = colist["word:unset"]
+ else
+ c = colist["word:" .. (numbers[k] or "unset")] or colist["word:unknown"]
end
-} )
+ local v = c and function(n) set_attribute(n,a_color,c) end or false
+ t[k] = v
+ return v
+end)
-- method 1
diff --git a/tex/context/base/lpdf-ren.lua b/tex/context/base/lpdf-ren.lua
index 6ffdf8110..6362d12fe 100644
--- a/tex/context/base/lpdf-ren.lua
+++ b/tex/context/base/lpdf-ren.lua
@@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['lpdf-ren'] = {
-- rendering
local tostring, tonumber, next = tostring, tonumber, next
-local format = string.format
+local format, rep = string.format, string.rep
local settings_to_array = utilities.parsers.settings_to_array
local backends, lpdf, nodes, node = backends, lpdf, nodes, node
@@ -60,49 +60,6 @@ local lpdf_usage = pdfdictionary { Print = pdfdictionary { PrintState = pdf_off
-- hide and vide actions. This is why we need to be able to force usage of layers
-- at several moments.
--- injection
-
-local cache = { }
-
-function codeinjections.startlayer(name)
- if not name then
- name = "unknown"
- end
- codeinjections.useviewerlayer(name)
- return format("/OC /%s BDC",name)
-end
-
-function codeinjections.stoplayer(name)
- return "EMC"
-end
-
-function nodeinjections.startlayer(name)
- local c = cache[name]
- if not c then
- codeinjections.useviewerlayer(name)
- c = register(pdfliteral(format("/OC /%s BDC",name)))
- cache[name] = c
- end
- return copy_node(c)
-end
-
-local stop = register(pdfliteral("EMC"))
-
-function nodeinjections.stoplayer()
- return copy_node(stop)
-end
-
-local cache = { }
-
-function nodeinjections.switchlayer(name) -- not used, optimization
- local c = cache[name]
- if not c then
- codeinjections.useviewerlayer(name)
- c = register(pdfliteral(format("EMC /OC /%s BDC",name)))
- end
- return copy_node(c)
-end
-
-- management
local pdfln, pdfld = { }, { }
@@ -240,6 +197,72 @@ function executers.hidelayer (arguments) return setlayer(pdf_off, arguments)
function executers.videlayer (arguments) return setlayer(pdf_on, arguments) end
function executers.togglelayer(arguments) return setlayer(pdf_toggle,arguments) end
+-- injection
+
+function codeinjections.startlayer(name) -- used in mp
+ if not name then
+ name = "unknown"
+ end
+ useviewerlayer(name)
+ return format("/OC /%s BDC",name)
+end
+
+function codeinjections.stoplayer(name) -- used in mp
+ return "EMC"
+end
+
+local cache = { }
+
+function nodeinjections.startlayer(name)
+ local c = cache[name]
+ if not c then
+ useviewerlayer(name)
+ c = register(pdfliteral(format("/OC /%s BDC",name)))
+ cache[name] = c
+ end
+ return copy_node(c)
+end
+
+local stop = register(pdfliteral("EMC"))
+
+function nodeinjections.stoplayer()
+ return copy_node(stop)
+end
+
+-- experimental stacker code (slow, can be optimized):
+--
+-- local values = viewerlayers.values
+--
+-- function nodeinjections.startstackedlayer(s,t,first,last)
+-- local r = { }
+-- for i=first,last do
+-- r[#r+1] = startlayer(values[t[i]])
+-- end
+-- r = concat(r," ")
+-- return pdfliteral(r)
+-- end
+--
+-- function nodeinjections.stopstackedlayer(s,t,first,last)
+-- local r = { }
+-- for i=last,first,-1 do
+-- r[#r+1] = stoplayer()
+-- end
+-- r = concat(r," ")
+-- return pdfliteral(r)
+-- end
+--
+-- function nodeinjections.changestackedlayer(s,t1,first1,last1,t2,first2,last2)
+-- local r = { }
+-- for i=last1,first1,-1 do
+-- r[#r+1] = stoplayer()
+-- end
+-- for i=first2,last2 do
+-- r[#r+1] = startlayer(values[t2[i]])
+-- end
+-- r = concat(r," ")
+-- return pdfliteral(r)
+-- end
+
-- transitions
local pagetransitions = {
diff --git a/tex/context/base/luat-cod.lua b/tex/context/base/luat-cod.lua
index 6960f2811..815d7f92c 100644
--- a/tex/context/base/luat-cod.lua
+++ b/tex/context/base/luat-cod.lua
@@ -39,11 +39,10 @@ function lua.registercode(filename,version)
if not bytedone[barename] then
local code = environment.luafilechunk(filename)
if code then
--- assert(code)()
bytedone[barename] = true
if environment.initex then
local n = lua.lastbytecode + 1
- bytedata[n] = { barename, version }
+ bytedata[n] = { barename, version or "0.000" }
bytecode[n] = code
lua.lastbytecode = n
end
diff --git a/tex/context/base/luat-cod.mkiv b/tex/context/base/luat-cod.mkiv
index 930532df9..034ab0613 100644
--- a/tex/context/base/luat-cod.mkiv
+++ b/tex/context/base/luat-cod.mkiv
@@ -15,12 +15,6 @@
\unprotect
-%D We have this one for a rather long time now but nowadays \ETEX\
-%D provides a command with the same name and different meaning. That
-%D one is available as \type {\normalexpanded}.
-
-\long\def\expanded#1{\long\xdef\lastexpanded{\noexpand#1}\lastexpanded}
-
%D We cannot use the following due to the fact that existing usage
%D demanded duplicating hashes.
%D
diff --git a/tex/context/base/lxml-ctx.mkiv b/tex/context/base/lxml-ctx.mkiv
index 530c29aa7..58807339d 100644
--- a/tex/context/base/lxml-ctx.mkiv
+++ b/tex/context/base/lxml-ctx.mkiv
@@ -20,9 +20,6 @@
\unprotect
-% The \let|=letterbar is a messy hack and is needed for the tabulate. We now use
-% \detokenize.
-
\settrue \xmllshowbuffer
\setfalse\xmllshowtitle
\settrue \xmllshowwarning
diff --git a/tex/context/base/lxml-tex.lua b/tex/context/base/lxml-tex.lua
index 7cabe22a8..80dd77874 100644
--- a/tex/context/base/lxml-tex.lua
+++ b/tex/context/base/lxml-tex.lua
@@ -25,9 +25,10 @@ local lowerchars, upperchars, lettered = characters.lower, characters.upper, cha
lxml = lxml or { }
local lxml = lxml
-local ctxcatcodes, notcatcodes = tex.ctxcatcodes, tex.notcatcodes
-
-local contextsprint = context.sprint -- with catcodes (here we use fast variants, but with option for tracing)
+local catcodenumbers = catcodes.numbers
+local ctxcatcodes = catcodenumbers.ctxcatcodes -- todo: use different method
+local notcatcodes = catcodenumbers.notcatcodes -- todo: use different method
+local contextsprint = context.sprint -- with catcodes (here we use fast variants, but with option for tracing)
local xmlelements, xmlcollected, xmlsetproperty = xml.elements, xml.collected, xml.setproperty
local xmlwithelements = xml.withelements
diff --git a/tex/context/base/m-barcodes.mkiv b/tex/context/base/m-barcodes.mkiv
index 0282f706d..e4c43b376 100644
--- a/tex/context/base/m-barcodes.mkiv
+++ b/tex/context/base/m-barcodes.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D You can best use m-zint instead of this one.
+\writestatus{barcodes}{the 'zint' module is a better choice}
% \startTEXpage
% \startPSTRICKS
@@ -106,15 +106,13 @@ end
}
\stopsetups
-\def\barcode[#1]%
+\unexpanded\def\barcode[#1]%
{\bgroup
\setvariables[barcode][type=isbn,#1]%
\directsetup{barcode:\getvariable{barcode}{type}}%
\egroup}
-% \usemodule[barcodes]
-
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{m-barcodes.mkiv}
\starttext
\startTEXpage
diff --git a/tex/context/base/m-chart.mkvi b/tex/context/base/m-chart.mkvi
index e94adeba2..be9890239 100644
--- a/tex/context/base/m-chart.mkvi
+++ b/tex/context/base/m-chart.mkvi
@@ -30,19 +30,33 @@
% todo: figure out a nice way to define the lot: share current and
% support current as name (nb: we need to set parent then)
-\def\??flch{@@flch} % chart
-\def\??flln{@@flln} % line
-\def\??flsh{@@flsh} % shape
-\def\??flfc{@@flfc} % focus
-\def\??flst{@@flst} % sets
-\def\??flsp{@@flsp} % split
-
-\installsimplecommandhandler \??flch {FLOWchart} \??flch
-\installsimplecommandhandler \??flln {FLOWline} \??flln
-\installsimplecommandhandler \??flsh {FLOWshape} \??flsh
-\installsimplecommandhandler \??flfc {FLOWfocus} \??flfc
-\installsimplecommandhandler \??flst {FLOWsets} \??flst
-\installsimplecommandhandler \??flsp {FLOWsplit} \??flsp
+% \def\??flch{@@flch} % chart
+% \def\??flln{@@flln} % line
+% \def\??flsh{@@flsh} % shape
+% \def\??flfc{@@flfc} % focus
+% \def\??flst{@@flst} % sets
+% \def\??flsp{@@flsp} % split
+
+% \installsimplecommandhandler \??flch {FLOWchart} \??flch
+% \installsimplecommandhandler \??flln {FLOWline} \??flln
+% \installsimplecommandhandler \??flsh {FLOWshape} \??flsh
+% \installsimplecommandhandler \??flfc {FLOWfocus} \??flfc
+% \installsimplecommandhandler \??flst {FLOWsets} \??flst
+% \installsimplecommandhandler \??flsp {FLOWsplit} \??flsp
+
+\installcorenamespace {flowchart} % \def\??flch{@@flch} % chart
+\installcorenamespace {flowline} % \def\??flln{@@flln} % line
+\installcorenamespace {flowshape} % \def\??flsh{@@flsh} % shape
+\installcorenamespace {flowfocus} % \def\??flfc{@@flfc} % focus
+\installcorenamespace {flowsets} % \def\??flst{@@flst} % sets
+\installcorenamespace {flowsplit} % \def\??flsp{@@flsp} % split
+
+\installsimplecommandhandler \??flowchart {FLOWchart} \??flowchart % maybe just a setuphandler
+\installsimplecommandhandler \??flowline {FLOWline} \??flowline % maybe just a setuphandler
+\installsimplecommandhandler \??flowshape {FLOWshape} \??flowshape % maybe just a setuphandler
+\installsimplecommandhandler \??flowfocus {FLOWfocus} \??flowfocus % maybe just a setuphandler
+\installsimplecommandhandler \??flowsets {FLOWsets} \??flowsets % maybe just a setuphandler
+\installsimplecommandhandler \??flowsplit {FLOWsplit} \??flowsplit % maybe just a setuphandler
\let\setupFLOWcharts\setupFLOWchart
\let\setupFLOWlines \setupFLOWline
diff --git a/tex/context/base/m-database.mkiv b/tex/context/base/m-database.mkiv
index 91da78879..01f84482a 100644
--- a/tex/context/base/m-database.mkiv
+++ b/tex/context/base/m-database.mkiv
@@ -93,7 +93,7 @@
\protect
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{m-database.mkiv}
\starttext
diff --git a/tex/context/base/m-morse.mkvi b/tex/context/base/m-morse.mkvi
index aba83bb2d..6082d588a 100644
--- a/tex/context/base/m-morse.mkvi
+++ b/tex/context/base/m-morse.mkvi
@@ -228,16 +228,16 @@ end
\def\MorseSpace {\hskip7\dimexpr\MorseWidth\relax}
\def\MorseUnknown #text{[\detokenize{#text}]}
-\def\MorseCode #text{\ctxlua{moduledata.morse.tomorse(\!!bs#text\!!es,true)}}
-\def\MorseString #text{\ctxlua{moduledata.morse.tomorse(\!!bs#text\!!es)}}
-\def\MorseFile #text{\ctxlua{moduledata.morse.filetomorse("#text")}}
-\def\MorseTable {\ctxlua{moduledata.morse.showtable()}}
+\unexpanded\def\MorseCode #text{\ctxlua{moduledata.morse.tomorse(\!!bs#text\!!es,true)}}
+\unexpanded\def\MorseString#text{\ctxlua{moduledata.morse.tomorse(\!!bs#text\!!es)}}
+\unexpanded\def\MorseFile #text{\ctxlua{moduledata.morse.filetomorse("#text")}}
+\unexpanded\def\MorseTable {\ctxlua{moduledata.morse.showtable()}}
-\let\Morse \MorseString
+\let\Morse \MorseString
\protect
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{m-morse.mkiv}
\starttext
diff --git a/tex/context/base/m-spreadsheet.lua b/tex/context/base/m-spreadsheet.lua
index 04b87c879..5ed44646d 100644
--- a/tex/context/base/m-spreadsheet.lua
+++ b/tex/context/base/m-spreadsheet.lua
@@ -206,7 +206,7 @@ end
function spreadsheets.doifelsecell(name,r,c)
if name == "" then name = current if name == "" then name = defaultname end end
local d = data[name]
- commands.testcase(d and d.data[c][r])
+ commands.doifelse(d and d.data[c][r])
end
function spreadsheets.show(name)
diff --git a/tex/context/base/m-timing.mkiv b/tex/context/base/m-timing.mkiv
index e5413ddb1..62d2ad91b 100644
--- a/tex/context/base/m-timing.mkiv
+++ b/tex/context/base/m-timing.mkiv
@@ -54,7 +54,7 @@ end
\ctxlua{luatex.registerstopactions(function() moduledata.progress.save() end)}
\stopnotmode
-\def\ShowNamedUsage#1#2#3%
+\unexpanded\def\ShowNamedUsage#1#2#3%
{\setbox\scratchbox\vbox\bgroup\startMPcode
begingroup ; save p, q, b, h, w ;
path p, q, b ; numeric h, w ;
@@ -92,9 +92,9 @@ end
\stoplinecorrection
\fi}
-\def\LoadUsage #1{\ctxlua{moduledata.progress.convert("#1")}}
-\def\ShowUsage #1{\ctxlua{moduledata.progress.show("#1",nil,nil,"elapsed_time")}}
-\def\ShowMemoryUsage#1{\ctxlua{moduledata.progress.show("#1",nil,{}, "elapsed_time")}}
-\def\ShowNodeUsage #1{\ctxlua{moduledata.progress.show("#1",{},nil, "elapsed_time")}}
+\unexpanded\def\LoadUsage #1{\ctxlua{moduledata.progress.convert("#1")}}
+\unexpanded\def\ShowUsage #1{\ctxlua{moduledata.progress.show("#1",nil,nil,"elapsed_time")}}
+\unexpanded\def\ShowMemoryUsage#1{\ctxlua{moduledata.progress.show("#1",nil,{}, "elapsed_time")}}
+\unexpanded\def\ShowNodeUsage #1{\ctxlua{moduledata.progress.show("#1",{},nil, "elapsed_time")}}
\endinput
diff --git a/tex/context/base/m-translate.mkiv b/tex/context/base/m-translate.mkiv
index ae4f3899d..da5e14d62 100644
--- a/tex/context/base/m-translate.mkiv
+++ b/tex/context/base/m-translate.mkiv
@@ -65,22 +65,29 @@
\unprotect
-\def\translateinput{\dodoubleargument\dotranslateinput}
+\unexpanded\def\translateinput
+ {\dodoubleargument\module_translate_input}
-\def\dotranslateinput[#1][#2]{\ctxlua{moduledata.translators.register(\!!bs#1\!!es,\!!bs#2\!!es)}}
+\def\module_translate_input[#1][#2]%
+ {\ctxlua{moduledata.translators.register(\!!bs#1\!!es,\!!bs#2\!!es)}}
-\def\resetinputtranslation {\ctxlua{moduledata.translators.reset()}}
-\def\enableinputtranslation {\ctxlua{moduledata.translators.enable()}}
-\def\disableinputtranslation{\ctxlua{moduledata.translators.disable()}}
+\unexpanded\def\resetinputtranslation
+ {\ctxlua{moduledata.translators.reset()}}
-\def\readtranslatedfile#1%
+\unexpanded\def\enableinputtranslation
+ {\ctxlua{moduledata.translators.enable()}}
+
+\unexpanded\def\disableinputtranslation
+ {\ctxlua{moduledata.translators.disable()}}
+
+\unexpanded\def\readtranslatedfile#1%
{\enableinputtranslation
\readfile{#1}\donothing\donothing
\disableinputtranslation}
\protect
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{m-translate.mkiv}
\starttext
diff --git a/tex/context/base/math-act.lua b/tex/context/base/math-act.lua
index 278d323c6..9894fa172 100644
--- a/tex/context/base/math-act.lua
+++ b/tex/context/base/math-act.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['math-act'] = {
license = "see context related readme files"
}
+-- Here we tweak some font properties (if needed).
+
local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
local report_math = logs.reporter("mathematics","initializing")
diff --git a/tex/context/base/math-dim.lua b/tex/context/base/math-dim.lua
index a5d7c3963..f4fc7905e 100644
--- a/tex/context/base/math-dim.lua
+++ b/tex/context/base/math-dim.lua
@@ -128,9 +128,9 @@ function mathematics.dimensions(dimens) -- beware, dimens get spoiled
return table.fastcopy(dimens), { }
elseif dimens.AxisHeight or dimens.axis_height then
local t = { }
- local math_x_height = dimens.x_height or 10*65526
- local math_quad = dimens.quad or 10*65526
- local default_rule_thickness = dimens.FractionDenominatorGapMin or dimens.default_rule_thickness or 0.4*65526
+ local math_x_height = dimens.x_height or 10*65536
+ local math_quad = dimens.quad or 10*65536
+ local default_rule_thickness = dimens.FractionDenominatorGapMin or dimens.default_rule_thickness or 0.4*65536
dimens["0"] = 0
dimens["60"] = 60
dimens["0.25*default_rule_thickness"] = default_rule_thickness / 4
diff --git a/tex/context/base/math-ini.lua b/tex/context/base/math-ini.lua
index f96c4d091..c84a92aee 100644
--- a/tex/context/base/math-ini.lua
+++ b/tex/context/base/math-ini.lua
@@ -110,33 +110,43 @@ classes.number = classes.alphabetic
local function delcode(target,family,slot)
return format('\\Udelcode%s="%X "%X ',target,family,slot)
end
+
local function mathchar(class,family,slot)
return format('\\Umathchar "%X "%X "%X ',class,family,slot)
end
+
local function mathaccent(class,family,slot)
return format('\\Umathaccent "%X "%X "%X ',0,family,slot) -- no class
end
+
local function delimiter(class,family,slot)
return format('\\Udelimiter "%X "%X "%X ',class,family,slot)
end
+
local function radical(family,slot)
return format('\\Uradical "%X "%X ',family,slot)
end
+
local function mathchardef(name,class,family,slot)
return format('\\Umathchardef\\%s "%X "%X "%X ',name,class,family,slot)
end
+
local function mathcode(target,class,family,slot)
return format('\\Umathcode%s="%X "%X "%X ',target,class,family,slot)
end
+
local function mathtopaccent(class,family,slot)
return format('\\Umathaccent "%X "%X "%X ',0,family,slot) -- no class
end
+
local function mathbotaccent(class,family,slot)
return format('\\Umathaccent bottom "%X "%X "%X ',0,family,slot) -- no class
end
+
local function mathtopdelimiter(class,family,slot)
return format('\\Udelimiterover "%X "%X ',family,slot) -- no class
end
+
local function mathbotdelimiter(class,family,slot)
return format('\\Udelimiterunder "%X "%X ',family,slot) -- no class
end
@@ -167,72 +177,75 @@ if setmathcode then
setmathsymbol = function(name,class,family,slot) -- hex is nicer for tracing
if class == classes.accent then
- contextsprint(format([[\unexpanded\gdef\%s{\Umathaccent 0 "%X "%X }]],name,family,slot))
+ contextsprint(format([[\ugdef\%s{\Umathaccent 0 "%X "%X }]],name,family,slot))
elseif class == classes.topaccent then
- contextsprint(format([[\unexpanded\gdef\%s{\Umathaccent 0 "%X "%X }]],name,family,slot))
+ contextsprint(format([[\ugdef\%s{\Umathaccent 0 "%X "%X }]],name,family,slot))
elseif class == classes.botaccent then
- contextsprint(format([[\unexpanded\gdef\%s{\Umathbotaccent 0 "%X "%X }]],name,family,slot))
+ contextsprint(format([[\ugdef\%s{\Umathbotaccent 0 "%X "%X }]],name,family,slot))
elseif class == classes.over then
- contextsprint(format([[\unexpanded\gdef\%s{\Udelimiterover "%X "%X }]],name,family,slot))
+ contextsprint(format([[\ugdef\%s{\Udelimiterover "%X "%X }]],name,family,slot))
elseif class == classes.under then
- contextsprint(format([[\unexpanded\gdef\%s{\Udelimiterunder "%X "%X }]],name,family,slot))
+ contextsprint(format([[\ugdef\%s{\Udelimiterunder "%X "%X }]],name,family,slot))
elseif class == classes.open or class == classes.close then
setdelcode(slot,{family,slot,0,0})
- contextsprint(format([[\unexpanded\gdef\%s{\Udelimiter "%X "%X "%X }]],name,class,family,slot))
+ contextsprint(format([[\ugdef\%s{\Udelimiter "%X "%X "%X }]],name,class,family,slot))
elseif class == classes.delimiter then
setdelcode(slot,{family,slot,0,0})
- contextsprint(format([[\unexpanded\gdef\%s{\Udelimiter 0 "%X "%X }]],name,family,slot))
+ contextsprint(format([[\ugdef\%s{\Udelimiter 0 "%X "%X }]],name,family,slot))
elseif class == classes.radical then
- contextsprint(format([[\unexpanded\gdef\%s{\Uradical "%X "%X }]],name,family,slot))
+ contextsprint(format([[\ugdef\%s{\Uradical "%X "%X }]],name,family,slot))
else
-- beware, open/close and other specials should not end up here
--- contextsprint(format([[\unexpanded\gdef\%s{\Umathchar "%X "%X "%X }]],name,class,family,slot))
+ -- contextsprint(format([[\ugdef\%s{\Umathchar "%X "%X "%X }]],name,class,family,slot))
contextsprint(format([[\Umathchardef\%s "%X "%X "%X ]],name,class,family,slot))
end
end
-
else
- setmathcharacter = function(class,family,slot,unicode)
- if class <= 7 then
- contextsprint(mathcode(slot,class,family,unicode or slot))
- end
- end
-
- setmathsynonym = function(class,family,slot,unicode,setcode)
- if setcode and class <= 7 then
- contextsprint(mathcode(slot,class,family,unicode))
- end
- if class == classes.open or class == classes.close then
- contextsprint(delcode(slot,family,unicode))
- end
- end
-
- setmathsymbol = function(name,class,family,slot)
- if class == classes.accent then
- contextsprint(format([[\unexpanded\xdef\%s{%s}]],name,mathaccent(class,family,slot)))
- elseif class == classes.topaccent then
- contextsprint(format([[\unexpanded\xdef\%s{%s}]],name,mathtopaccent(class,family,slot)))
- elseif class == classes.botaccent then
- contextsprint(format([[\unexpanded\xdef\%s{%s}]],name,mathbotaccent(class,family,slot)))
- elseif class == classes.over then
- contextsprint(format([[\unexpanded\xdef\%s{%s}]],name,mathtopdelimiter(class,family,slot)))
- elseif class == classes.under then
- contextsprint(format([[\unexpanded\xdef\%s{%s}]],name,mathbotdelimiter(class,family,slot)))
- elseif class == classes.open or class == classes.close then
- contextsprint(delcode(slot,family,slot))
- contextsprint(format([[\unexpanded\xdef\%s{%s}]],name,delimiter(class,family,slot)))
- elseif class == classes.delimiter then
- contextsprint(delcode(slot,family,slot))
- contextsprint(format([[\unexpanded\xdef\%s{%s}]],name,delimiter(0,family,slot)))
- elseif class == classes.radical then
- contextsprint(format([[\unexpanded\xdef\%s{%s}]],name,radical(family,slot)))
- else
- -- beware, open/close and other specials should not end up here
- contextsprint(format([[\unexpanded\xdef\%s{%s}]],name,mathchar(class,family,slot)))
- end
- end
+ report_math("your version of luatex is to old")
+
+ os.exit()
+
+ -- setmathcharacter = function(class,family,slot,unicode)
+ -- if class <= 7 then
+ -- contextsprint(mathcode(slot,class,family,unicode or slot))
+ -- end
+ -- end
+ --
+ -- setmathsynonym = function(class,family,slot,unicode,setcode)
+ -- if setcode and class <= 7 then
+ -- contextsprint(mathcode(slot,class,family,unicode))
+ -- end
+ -- if class == classes.open or class == classes.close then
+ -- contextsprint(delcode(slot,family,unicode))
+ -- end
+ -- end
+ --
+ -- setmathsymbol = function(name,class,family,slot)
+ -- if class == classes.accent then
+ -- contextsprint(format([[\uxdef\%s{%s}]],name,mathaccent(class,family,slot)))
+ -- elseif class == classes.topaccent then
+ -- contextsprint(format([[\uxdef\%s{%s}]],name,mathtopaccent(class,family,slot)))
+ -- elseif class == classes.botaccent then
+ -- contextsprint(format([[\uxdef\%s{%s}]],name,mathbotaccent(class,family,slot)))
+ -- elseif class == classes.over then
+ -- contextsprint(format([[\uxdef\%s{%s}]],name,mathtopdelimiter(class,family,slot)))
+ -- elseif class == classes.under then
+ -- contextsprint(format([[\uxdef\%s{%s}]],name,mathbotdelimiter(class,family,slot)))
+ -- elseif class == classes.open or class == classes.close then
+ -- contextsprint(delcode(slot,family,slot))
+ -- contextsprint(format([[\uxdef\%s{%s}]],name,delimiter(class,family,slot)))
+ -- elseif class == classes.delimiter then
+ -- contextsprint(delcode(slot,family,slot))
+ -- contextsprint(format([[\uxdef\%s{%s}]],name,delimiter(0,family,slot)))
+ -- elseif class == classes.radical then
+ -- contextsprint(format([[\uxdef\%s{%s}]],name,radical(family,slot)))
+ -- else
+ -- -- beware, open/close and other specials should not end up here
+ -- contextsprint(format([[\uxdef\%s{%s}]],name,mathchar(class,family,slot)))
+ -- end
+ -- end
end
diff --git a/tex/context/base/meta-ini.lua b/tex/context/base/meta-ini.lua
index bac1429ae..8b6fd22a2 100644
--- a/tex/context/base/meta-ini.lua
+++ b/tex/context/base/meta-ini.lua
@@ -9,6 +9,8 @@ if not modules then modules = { } end modules ['meta-ini'] = {
local tonumber = tonumber
local format, gmatch, match, gsub = string.format, string.gmatch, string.match, string.gsub
+local context = context
+
metapost = metapost or { }
-- for the moment downward compatible
diff --git a/tex/context/base/meta-pdf.lua b/tex/context/base/meta-pdf.lua
index 13d39e445..c68350a96 100644
--- a/tex/context/base/meta-pdf.lua
+++ b/tex/context/base/meta-pdf.lua
@@ -9,6 +9,9 @@ if not modules then modules = { } end modules ['meta-pdf'] = {
-- Finally we used an optimized version. The test code can be found in
-- meta-pdh.lua but since we no longer want to overload functione we use
-- more locals now. This module keeps changing as it is also a testbed.
+--
+-- We can make it even more efficient if needed, but as we don't use this
+-- code often in \MKIV\ it makes no sense.
local concat, format, gsub, find, byte, gmatch, match = table.concat, string.format, string.gsub, string.find, string.byte, string.gmatch, string.match
local lpegmatch = lpeg.match
@@ -50,8 +53,8 @@ end
resetall()
--- -- this does not work as expected (displacement of text)
--- -- beware, needs another comment hack
+-- -- this does not work as expected (displacement of text) beware, needs another
+-- -- comment hack
--
-- local function pdfcode(str)
-- context(pdfliteral(str))
diff --git a/tex/context/base/meta-tex.lua b/tex/context/base/meta-tex.lua
index 872e8154c..c29498ad1 100644
--- a/tex/context/base/meta-tex.lua
+++ b/tex/context/base/meta-tex.lua
@@ -31,7 +31,7 @@ if not modules then modules = { } end modules ['meta-tex'] = {
local P, Cs, lpegmatch = lpeg.P, lpeg.Cs, lpeg.match
-local pattern = Cs((P([[\"]]) + P([["]])/"\\quotedbl{}" + P(1))^0)
+local pattern = Cs((P([[\"]]) + P([["]])/"\\quotedbl{}" + P(1))^0) -- or \char
function metapost.escaped(str)
context(lpegmatch(pattern,str))
diff --git a/tex/context/base/mlib-ctx.lua b/tex/context/base/mlib-ctx.lua
index 493a45248..a8ef84b80 100644
--- a/tex/context/base/mlib-ctx.lua
+++ b/tex/context/base/mlib-ctx.lua
@@ -97,9 +97,11 @@ local environments = { }
function metapost.tex.set(str)
environments[#environments+1] = str
end
+
function metapost.tex.reset()
environments = { }
end
+
function metapost.tex.get()
return concat(environments,"\n")
end
diff --git a/tex/context/base/mlib-pdf.lua b/tex/context/base/mlib-pdf.lua
index 7a23ba947..88f26e755 100644
--- a/tex/context/base/mlib-pdf.lua
+++ b/tex/context/base/mlib-pdf.lua
@@ -11,26 +11,41 @@ local abs, sqrt, round = math.abs, math.sqrt, math.round
local setmetatable = setmetatable
local Cf, C, Cg, Ct, P, S, lpegmatch = lpeg.Cf, lpeg.C, lpeg.Cg, lpeg.Ct, lpeg.P, lpeg.S, lpeg.match
-local allocate = utilities.storage.allocate
-
local report_metapost = logs.reporter("metapost")
local mplib, context = mplib, context
-local copy_node = node.copy
-local write_node = node.write
+local allocate = utilities.storage.allocate
+
+local copy_node = node.copy
+local write_node = node.write
+
+metapost = metapost or { }
+local metapost = metapost
+
+metapost.flushers = metapost.flushers or { }
+local pdfflusher = { }
+metapost.flushers.pdf = pdfflusher
-metapost = metapost or { }
-local metapost = metapost
+metapost.multipass = false
+metapost.n = 0
+metapost.optimize = true -- false
-metapost.multipass = false
-metapost.n = 0
-metapost.optimize = true -- false
+local experiment = true -- uses context(node) that already does delayed nodes
+
+local savedliterals = nil -- needs checking
+local mpsliteral = nodes.pool.register(node.new("whatsit",nodes.whatsitcodes.pdfliteral)) -- pdfliteral.mode = 1
+
+local pdfliteral = function(s)
+ local literal = copy_node(mpsliteral)
+ literal.data = s
+ return literal
+end
---~ Because in MKiV we always have two passes, we save the objects. When an extra
---~ mp run is done (due to for instance texts identifier in the parse pass), we
---~ get a new result table and the stored objects are forgotten. Otherwise they
---~ are reused.
+-- Because in MKiV we always have two passes, we save the objects. When an extra
+-- mp run is done (due to for instance texts identifier in the parse pass), we
+-- get a new result table and the stored objects are forgotten. Otherwise they
+-- are reused.
local function getobjects(result,figure,f)
if metapost.optimize then
@@ -64,23 +79,6 @@ function metapost.convert(result, trialrun, flusher, multipass, askedfig)
return true -- done
end
-metapost.flushers = { }
-metapost.flushers.pdf = { }
-
--- \def\MPLIBtoPDF#1{\ctxlua{metapost.flushliteral(#1)}}
-
-local savedliterals = nil -- needs checking
-
-local mpsliteral = nodes.pool.register(node.new("whatsit",8)) -- pdfliteral
-
-local pdfliteral = function(s)
- local literal = copy_node(mpsliteral)
- literal.data = s
- return literal
-end
-
-local experiment = true -- uses context(node) that already does delayed nodes
-
function metapost.flushliteral(d)
if savedliterals then
local literal = copy_node(mpsliteral)
@@ -95,7 +93,7 @@ function metapost.flushreset() -- will become obsolete and internal
savedliterals = nil
end
-function metapost.flushers.pdf.comment(message)
+function pdfflusher.comment(message)
if message then
message = format("%% mps graphic %s: %s", metapost.n, message)
if experiment then
@@ -113,20 +111,20 @@ function metapost.flushers.pdf.comment(message)
end
end
-function metapost.flushers.pdf.startfigure(n,llx,lly,urx,ury,message)
+function pdfflusher.startfigure(n,llx,lly,urx,ury,message)
savedliterals = nil
metapost.n = metapost.n + 1
context.startMPLIBtoPDF(llx,lly,urx,ury)
- if message then metapost.flushers.pdf.comment(message) end
+ if message then pdfflusher.comment(message) end
end
-function metapost.flushers.pdf.stopfigure(message)
- if message then metapost.flushers.pdf.comment(message) end
+function pdfflusher.stopfigure(message)
+ if message then pdfflusher.comment(message) end
context.stopMPLIBtoPDF()
context.MPLIBflushreset() -- maybe just at the beginning
end
-function metapost.flushers.pdf.flushfigure(pdfliterals) -- table
+function pdfflusher.flushfigure(pdfliterals) -- table
if #pdfliterals > 0 then
pdfliterals = concat(pdfliterals,"\n")
if experiment then
@@ -144,7 +142,7 @@ function metapost.flushers.pdf.flushfigure(pdfliterals) -- table
end
end
-function metapost.flushers.pdf.textfigure(font,size,text,width,height,depth) -- we could save the factor
+function pdfflusher.textfigure(font,size,text,width,height,depth) -- we could save the factor
text = gsub(text,".","\\hbox{%1}") -- kerning happens in metapost (i have to check if this is true for mplib)
context.MPtextext(font,size,text,0,-number.dimenfactors.bp*depth)
end
@@ -273,7 +271,7 @@ function metapost.flush(result,flusher,askedfig)
if result then
local figures = result.fig
if figures then
- flusher = flusher or metapost.flushers.pdf
+ flusher = flusher or pdfflusher
local resetplugins = metapost.resetplugins or ignore -- before figure
local processplugins = metapost.processplugins or ignore -- each object
local synchronizeplugins = metapost.synchronizeplugins or ignore
@@ -290,7 +288,7 @@ function metapost.flush(result,flusher,askedfig)
local t = { }
local miterlimit, linecap, linejoin, dashed = -1, -1, -1, false
local bbox = figure:boundingbox()
- local llx, lly, urx, ury = bbox[1], bbox[2], bbox[3], bbox[4] -- faster than unpack
+ local llx, lly, urx, ury = bbox[1], bbox[2], bbox[3], bbox[4]
metapost.llx = llx
metapost.lly = lly
metapost.urx = urx
@@ -451,24 +449,17 @@ function metapost.parse(result,askedfig)
local figures = result.fig
if figures then
local analyzeplugins = metapost.analyzeplugins -- each object
- for f=1, #figures do
+ for f=1,#figures do
local figure = figures[f]
local fignum = figure:charcode() or 0
if askedfig == "direct" or askedfig == "all" or askedfig == fignum then
local bbox = figure:boundingbox()
- local llx, lly, urx, ury = bbox[1], bbox[2], bbox[3], bbox[4] -- faster than unpack
- metapost.llx = llx
- metapost.lly = lly
- metapost.urx = urx
- metapost.ury = ury
+ metapost.llx = bbox[1]
+ metapost.lly = bbox[2]
+ metapost.urx = bbox[3]
+ metapost.ury = bbox[4]
local objects = getobjects(result,figure,f)
if objects then
- -- for o=1,#objects do
- -- local object = objects[o]
- -- local prescript = object.prescript
- -- if prescript then
- -- analyzeplugins(object)
- -- end
for o=1,#objects do
analyzeplugins(objects[o])
end
diff --git a/tex/context/base/mlib-run.lua b/tex/context/base/mlib-run.lua
index 59dc88b90..813b35399 100644
--- a/tex/context/base/mlib-run.lua
+++ b/tex/context/base/mlib-run.lua
@@ -145,99 +145,103 @@ end
if mplibone then
- local preamble = [[
- boolean mplib ; mplib := true ;
- string mp_parent_version ; mp_parent_version := "%s" ;
- input "%s" ; dump ;
- ]]
-
- metapost.parameters = {
- hash_size = 100000,
- main_memory = 4000000,
- max_in_open = 50,
- param_size = 100000,
- }
-
- function metapost.make(name, target, version)
- starttiming(mplib)
- target = file.replacesuffix(target or name, "mem") -- redundant
- local mpx = mplib.new ( table.merged (
- metapost.parameters,
- {
- ini_version = true,
- find_file = finder,
- job_name = file.removesuffix(target),
- }
- ) )
- if mpx then
- starttiming(metapost.exectime)
- local result = mpx:execute(format(preamble,version or "unknown",name))
- stoptiming(metapost.exectime)
- mpx:finish()
- end
- stoptiming(mplib)
- end
-
- function metapost.load(name)
- starttiming(mplib)
- local mpx = mplib.new ( table.merged (
- metapost.parameters,
- {
- ini_version = false,
- mem_name = file.replacesuffix(name,"mem"),
- find_file = finder,
- -- job_name = "mplib",
- }
- ) )
- local result
- if not mpx then
- result = { status = 99, error = "out of memory"}
- end
- stoptiming(mplib)
- return mpx, result
- end
-
- function metapost.checkformat(mpsinput)
- local mpsversion = environment.version or "unset version"
- local mpsinput = file.addsuffix(mpsinput or "metafun", "mp")
- local mpsformat = file.removesuffix(file.basename(texconfig.formatname or (tex and tex.formatname) or mpsinput))
- local mpsbase = file.removesuffix(file.basename(mpsinput))
- if mpsbase ~= mpsformat then
- mpsformat = mpsformat .. "-" .. mpsbase
- end
- mpsformat = file.addsuffix(mpsformat, "mem")
- local mpsformatfullname = caches.getfirstreadablefile(mpsformat,"formats") or ""
- if mpsformatfullname ~= "" then
- report_metapost("loading '%s' from '%s'", mpsinput, mpsformatfullname)
- local mpx, result = metapost.load(mpsformatfullname)
- if mpx then
- local result = mpx:execute("show mp_parent_version ;")
- if not result.log then
- metapost.reporterror(result)
- else
- local version = match(result.log,">> *(.-)[\n\r]") or "unknown"
- version = gsub(version,"[\'\"]","")
- if version ~= mpsversion then
- report_metapost("version mismatch: %s <> %s", version or "unknown", mpsversion)
- else
- return mpx
- end
- end
- else
- report_metapost("error in loading '%s' from '%s'", mpsinput, mpsformatfullname)
- metapost.reporterror(result)
- end
- end
- local mpsformatfullname = caches.setfirstwritablefile(mpsformat,"formats")
- report_metapost("making '%s' into '%s'", mpsinput, mpsformatfullname)
- metapost.make(mpsinput,mpsformatfullname,mpsversion) -- somehow return ... fails here
- if lfs.isfile(mpsformatfullname) then
- report_metapost("loading '%s' from '%s'", mpsinput, mpsformatfullname)
- return metapost.load(mpsformatfullname)
- else
- report_metapost("problems with '%s' from '%s'", mpsinput, mpsformatfullname)
- end
- end
+ report_metapost("fatal error: mplib is too old")
+
+ os.exit()
+
+ -- local preamble = [[
+ -- boolean mplib ; mplib := true ;
+ -- string mp_parent_version ; mp_parent_version := "%s" ;
+ -- input "%s" ; dump ;
+ -- ]]
+ --
+ -- metapost.parameters = {
+ -- hash_size = 100000,
+ -- main_memory = 4000000,
+ -- max_in_open = 50,
+ -- param_size = 100000,
+ -- }
+ --
+ -- function metapost.make(name, target, version)
+ -- starttiming(mplib)
+ -- target = file.replacesuffix(target or name, "mem") -- redundant
+ -- local mpx = mplib.new ( table.merged (
+ -- metapost.parameters,
+ -- {
+ -- ini_version = true,
+ -- find_file = finder,
+ -- job_name = file.removesuffix(target),
+ -- }
+ -- ) )
+ -- if mpx then
+ -- starttiming(metapost.exectime)
+ -- local result = mpx:execute(format(preamble,version or "unknown",name))
+ -- stoptiming(metapost.exectime)
+ -- mpx:finish()
+ -- end
+ -- stoptiming(mplib)
+ -- end
+ --
+ -- function metapost.load(name)
+ -- starttiming(mplib)
+ -- local mpx = mplib.new ( table.merged (
+ -- metapost.parameters,
+ -- {
+ -- ini_version = false,
+ -- mem_name = file.replacesuffix(name,"mem"),
+ -- find_file = finder,
+ -- -- job_name = "mplib",
+ -- }
+ -- ) )
+ -- local result
+ -- if not mpx then
+ -- result = { status = 99, error = "out of memory"}
+ -- end
+ -- stoptiming(mplib)
+ -- return mpx, result
+ -- end
+ --
+ -- function metapost.checkformat(mpsinput)
+ -- local mpsversion = environment.version or "unset version"
+ -- local mpsinput = file.addsuffix(mpsinput or "metafun", "mp")
+ -- local mpsformat = file.removesuffix(file.basename(texconfig.formatname or (tex and tex.formatname) or mpsinput))
+ -- local mpsbase = file.removesuffix(file.basename(mpsinput))
+ -- if mpsbase ~= mpsformat then
+ -- mpsformat = mpsformat .. "-" .. mpsbase
+ -- end
+ -- mpsformat = file.addsuffix(mpsformat, "mem")
+ -- local mpsformatfullname = caches.getfirstreadablefile(mpsformat,"formats") or ""
+ -- if mpsformatfullname ~= "" then
+ -- report_metapost("loading '%s' from '%s'", mpsinput, mpsformatfullname)
+ -- local mpx, result = metapost.load(mpsformatfullname)
+ -- if mpx then
+ -- local result = mpx:execute("show mp_parent_version ;")
+ -- if not result.log then
+ -- metapost.reporterror(result)
+ -- else
+ -- local version = match(result.log,">> *(.-)[\n\r]") or "unknown"
+ -- version = gsub(version,"[\'\"]","")
+ -- if version ~= mpsversion then
+ -- report_metapost("version mismatch: %s <> %s", version or "unknown", mpsversion)
+ -- else
+ -- return mpx
+ -- end
+ -- end
+ -- else
+ -- report_metapost("error in loading '%s' from '%s'", mpsinput, mpsformatfullname)
+ -- metapost.reporterror(result)
+ -- end
+ -- end
+ -- local mpsformatfullname = caches.setfirstwritablefile(mpsformat,"formats")
+ -- report_metapost("making '%s' into '%s'", mpsinput, mpsformatfullname)
+ -- metapost.make(mpsinput,mpsformatfullname,mpsversion) -- somehow return ... fails here
+ -- if lfs.isfile(mpsformatfullname) then
+ -- report_metapost("loading '%s' from '%s'", mpsinput, mpsformatfullname)
+ -- return metapost.load(mpsformatfullname)
+ -- else
+ -- report_metapost("problems with '%s' from '%s'", mpsinput, mpsformatfullname)
+ -- end
+ -- end
else
@@ -350,8 +354,9 @@ function metapost.process(mpx, data, trialrun, flusher, multipass, isextrapass,
if trace_graphics then
if not mp_inp[mpx] then
mp_tag = mp_tag + 1
- mp_inp[mpx] = io.open(format("%s-mplib-run-%03i.mp", tex.jobname,mp_tag),"w")
- mp_log[mpx] = io.open(format("%s-mplib-run-%03i.log",tex.jobname,mp_tag),"w")
+ local jobname = tex.jobname
+ mp_inp[mpx] = io.open(format("%s-mplib-run-%03i.mp", jobname,mp_tag),"w")
+ mp_log[mpx] = io.open(format("%s-mplib-run-%03i.log",jobname,mp_tag),"w")
end
local banner = format("%% begin graphic: n=%s, trialrun=%s, multipass=%s, isextrapass=%s\n\n", metapost.n, tostring(trialrun), tostring(multipass), tostring(isextrapass))
mp_inp[mpx]:write(banner)
diff --git a/tex/context/base/mult-aux.mkiv b/tex/context/base/mult-aux.mkiv
index a2ebf6e2c..dc6aca920 100644
--- a/tex/context/base/mult-aux.mkiv
+++ b/tex/context/base/mult-aux.mkiv
@@ -2,7 +2,7 @@
%D [ file=mult-aux,
%D version=2010.08.2,
%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=helpers,
+%D subtitle=Helpers,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
diff --git a/tex/context/base/mult-chk.lua b/tex/context/base/mult-chk.lua
index 43e7c5121..e3908ad40 100644
--- a/tex/context/base/mult-chk.lua
+++ b/tex/context/base/mult-chk.lua
@@ -9,9 +9,10 @@ if not modules then modules = { } end modules ['mult-chk'] = {
local format = string.format
local lpegmatch = lpeg.match
local type = type
-local make_settings_to_hash_pattern, settings_to_set = utilities.parsers.make_settings_to_hash_pattern, utilities.parsers.settings_to_set
-local allocate = utilities.storage.allocate
+local make_settings_to_hash_pattern = utilities.parsers.make_settings_to_hash_pattern
+local settings_to_set = utilities.parsers.settings_to_set
+local allocate = utilities.storage.allocate
local report_interface = logs.reporter("interface","checking")
diff --git a/tex/context/base/mult-fun.lua b/tex/context/base/mult-fun.lua
new file mode 100644
index 000000000..48c148dad
--- /dev/null
+++ b/tex/context/base/mult-fun.lua
@@ -0,0 +1,95 @@
+return {
+ internals = {
+ --
+ "nocolormodel", "greycolormodel", "graycolormodel", "rgbcolormodel", "cmykcolormodel",
+ "shadefactor",
+ "textextoffset",
+ "normaltransparent", "multiplytransparent", "screentransparent", "overlaytransparent", "softlighttransparent",
+ "hardlighttransparent", "colordodgetransparent", "colorburntransparent", "darkentransparent", "lightentransparent",
+ "differencetransparent", "exclusiontransparent", "huetransparent", "saturationtransparent", "colortransparent", "luminositytransparent",
+-- "originlength", "tickstep ", "ticklength",
+-- "autoarrows", "ahfactor",
+-- "angleoffset", anglelength", anglemethod",
+ },
+ commands = {
+ --
+ "sqr", "log", "ln", "exp", "inv", "pow", "pi", "radian",
+ "tand", "cotd", "sin", "cos", "tan", "cot", "atan", "asin", "acos",
+ "invsin", "invcos", "acosh", "asinh", "sinh", "cosh",
+ "paired", "tripled",
+ "unitcircle", "fulldiamond", "unitdiamond", "fullsquare",
+ -- "halfcircle", "quartercircle",
+ "llcircle", "lrcircle", "urcircle", "ulcircle",
+ "tcircle", "bcircle", "lcircle", "rcircle",
+ "lltriangle", "lrtriangle", "urtriangle", "ultriangle",
+ "smoothed", "cornered", "superellipsed", "randomized", "squeezed", "enlonged", "shortened",
+ "punked", "curved", "unspiked", "simplified", "blownup", "stretched",
+ "enlarged", "leftenlarged", "topenlarged", "rightenlarged", "bottomenlarged",
+ "crossed", "laddered", "randomshifted", "interpolated", "paralleled", "cutends", "peepholed",
+ "llenlarged", "lrenlarged", "urenlarged", "ulenlarged",
+ "llmoved", "lrmoved", "urmoved", "ulmoved",
+ "rightarrow", "leftarrow", "centerarrow",
+ "boundingbox", "innerboundingbox", "outerboundingbox", "pushboundingbox", "popboundingbox",
+ "bottomboundary", "leftboundary", "topboundary", "rightboundary",
+ "xsized", "ysized", "xysized", "sized", "xyscaled",
+ "intersection_point", "intersection_found", "penpoint",
+ "bbwidth", "bbheight",
+ "withshade", "withlinearshading", "withcircularshading", "withfromshadecolor", "withtoshadecolor", "withshading", "shadedinto",
+ "withcircularshade", "withlinearshade",
+ "cmyk", "spotcolor", "multitonecolor", "namedcolor",
+ "drawfill", "undrawfill",
+ "inverted", "uncolored", "softened", "grayed", "greyed",
+ "onlayer",
+ "along",
+ "graphictext", "loadfigure", "externalfigure", "withmask", "figure", "register", "bitmapimage",
+ "colordecimals", "ddecimal", "dddecimal", "ddddecimal",
+ "textext", "thetextext", "rawtextext", "textextoffset", "verbatim", "thelabel", "label",
+ "transparent", "withtransparency",
+ "asgroup",
+ "infont", -- redefined usign textext
+ -- "property", "withproperties", "properties", -- not yet
+ "set_linear_vector", "linear_shade", "define_linear_shade", "define_circular_linear_shade", "define_sampled_linear_shade",
+ "set_circular_vector", "circular_shade", "define_circular_shade", "define_circular_linear_shade", "define_sampled_circular_shade",
+ "space", "CRLF",
+ "grayscale", "greyscale", "withgray", "withgrey", "colorpart",
+ "readfile",
+ "clearxy", "unitvector", "center", -- redefined
+ "epsed", "anchored",
+ "originpath", "infinite",
+ "break",
+ "xstretched", "ystretched", "snapped",
+ --
+ "pathconnectors", "function", "constructedpath", "constructedpairs",
+ "punkedfunction", "curvedfunction", "tightfunction",
+ "punkedpath", "curvedpath", "tightpath",
+ "punkedpairs", "curvedpairs", "tightpairs",
+ --
+ "evenly", "oddly",
+ --
+ "condition",
+ --
+ "pushcurrentpicture", "popcurrentpicture",
+ --
+ "arrowpath",
+-- "colorlike", "dowithpath", "rangepath", "straightpath", "addbackground",
+-- "cleanstring", "asciistring", "setunstringed", "getunstringed", "unstringed",
+-- "showgrid",
+-- "phantom",
+-- "xshifted", "yshifted",
+-- "drawarrowpath", "midarrowhead", "arrowheadonpath",
+-- "drawxticks", "drawyticks", "drawticks",
+-- "pointarrow",
+-- "thefreelabel", "freelabel", "freedotlabel",
+-- "anglebetween", "colorcircle",
+-- "remapcolors", "normalcolors", "resetcolormap", "remapcolor", "remappedcolor",
+-- "recolor", "refill", "redraw", "retext", "untext", "restroke", "reprocess", "repathed",
+ "tensecircle", "roundedsquare",
+ "colortype", "whitecolor", "blackcolor",
+ --
+-- "swappointlabels",
+ "normalfill", "normaldraw", "visualizepaths", "naturalizepaths",
+ "drawboundary", "drawwholepath", "visualizeddraw", "visualizedfill", "draworigin", "drawboundingbox",
+ "drawpath", "drawpoint", "drawpoints", "drawcontrolpoints", "drawcontrollines", "drawpointlabels",
+ "drawlineoptions", "drawpointoptions", "drawcontroloptions", "drawlabeloptions", "draworiginoptions", "drawboundoptions", "drawpathoptions", "resetdrawoptions",
+ },
+}
diff --git a/tex/context/base/mult-ini.lua b/tex/context/base/mult-ini.lua
index 8d0d34ba4..59eed7d83 100644
--- a/tex/context/base/mult-ini.lua
+++ b/tex/context/base/mult-ini.lua
@@ -10,12 +10,13 @@ local format, gmatch, gsub, match = string.format, string.gmatch, string.gsub, s
local lpegmatch = lpeg.match
local serialize = table.serialize
-local allocate = utilities.storage.allocate
-local mark = utilities.storage.mark
-local contextsprint = context.sprint
-local setmetatableindex = table.setmetatableindex
+local allocate = utilities.storage.allocate
+local mark = utilities.storage.mark
+local prtcatcodes = catcodes.numbers.prtcatcodes
+local contextsprint = context.sprint
+local setmetatableindex = table.setmetatableindex
-local report_interface = logs.reporter("interface","initialization")
+local report_interface = logs.reporter("interface","initialization")
interfaces = interfaces or { }
interfaces.constants = mark(interfaces.constants or { })
@@ -25,22 +26,33 @@ interfaces.formats = mark(interfaces.formats or { })
interfaces.translations = mark(interfaces.translations or { })
interfaces.corenamespaces = mark(interfaces.corenamespaces or { })
-storage.register("interfaces/constants", interfaces.constants, "interfaces.constants")
-storage.register("interfaces/variables", interfaces.variables, "interfaces.variables")
-storage.register("interfaces/elements", interfaces.elements, "interfaces.elements")
-storage.register("interfaces/formats", interfaces.formats, "interfaces.formats")
-storage.register("interfaces/translations", interfaces.translations, "interfaces.translations")
-storage.register("interfaces/corenamespaces", interfaces.corenamespaces, "interfaces.corenamespaces")
+local registerstorage = storage.register
+local sharedstorage = storage.shared
+
+local constants = interfaces.constants
+local variables = interfaces.variables
+local elements = interfaces.elements
+local formats = interfaces.formats
+local translations = interfaces.translations
+local corenamespaces = interfaces.corenamespaces
+local reporters = { } -- just an optimization
+
+registerstorage("interfaces/constants", constants, "interfaces.constants")
+registerstorage("interfaces/variables", variables, "interfaces.variables")
+registerstorage("interfaces/elements", elements, "interfaces.elements")
+registerstorage("interfaces/formats", formats, "interfaces.formats")
+registerstorage("interfaces/translations", translations, "interfaces.translations")
+registerstorage("interfaces/corenamespaces", corenamespaces, "interfaces.corenamespaces")
interfaces.interfaces = {
"cs", "de", "en", "fr", "it", "nl", "ro", "pe",
}
-storage.shared.currentinterface = storage.shared.currentinterface or "en"
-storage.shared.currentresponse = storage.shared.currentresponse or "en"
+sharedstorage.currentinterface = sharedstorage.currentinterface or "en"
+sharedstorage.currentresponse = sharedstorage.currentresponse or "en"
-local currentinterface = storage.shared.currentinterface
-local currentresponse = storage.shared.currentresponse
+local currentinterface = sharedstorage.currentinterface
+local currentresponse = sharedstorage.currentresponse
local complete = allocate()
interfaces.complete = complete
@@ -56,14 +68,6 @@ end
setmetatableindex(complete, resolve)
-local constants = interfaces.constants
-local variables = interfaces.variables
-local elements = interfaces.elements
-local formats = interfaces.formats
-local translations = interfaces.translations
-local corenamespaces = interfaces.corenamespaces
-local reporters = { } -- just an optimization
-
local function valueiskey(t,k) -- will be helper
t[k] = k
return k
@@ -75,7 +79,7 @@ setmetatableindex(elements, valueiskey)
setmetatableindex(formats, valueiskey)
setmetatableindex(translations, valueiskey)
-function commands.registernamespace(n,namespace)
+function interfaces.registernamespace(n,namespace)
corenamespaces[n] = namespace
end
@@ -85,19 +89,7 @@ local function resolve(t,k)
return v
end
-function commands.showassignerror(namespace,key,value,line)
- local ns, instance = match(namespace,"^(%d+)[^%a]+(%a+)")
- if ns then
- namespace = corenamespaces[tonumber(ns)] or ns
- end
- if instance then
- context.writestatus("setup",format("error in line %s, namespace %q, instance %q, key %q",line,namespace,instance,key))
- else
- context.writestatus("setup",format("error in line %s, namespace %q, key %q",line,namespace,key))
- end
-end
-
-setmetatableindex(reporters, resolve)
+setmetatableindex(reporters,resolve)
for category, _ in next, translations do
-- We pre-create reporters for already defined messages
@@ -158,7 +150,7 @@ function interfaces.getmessage(category,tag,default)
end
function interfaces.doifelsemessage(category,tag)
- return commands.testcase(formats[fulltag(category,tag)])
+ return formats[fulltag(category,tag)]
end
local splitter = lpeg.splitat(",")
@@ -196,45 +188,38 @@ end
logs.setmessenger(context.verbatim.ctxreport)
--- status
-
-function commands.writestatus(category,message,...)
- local r = reporters[category]
- r(message,...)
-end
-
-- initialization
function interfaces.setuserinterface(interface,response)
- storage.shared.currentinterface, currentinterface = interface, interface
- storage.shared.currentresponse, currentresponse = response, response
+ sharedstorage.currentinterface, currentinterface = interface, interface
+ sharedstorage.currentresponse, currentresponse = response, response
if environment.initex then
local nofconstants = 0
for given, constant in next, complete.constants do
constant = constant[interface] or constant.en or given
constants[constant] = given -- breedte -> width
- contextsprint("\\do@sicon{",given,"}{",constant,"}")
+ contextsprint(prtcatcodes,"\\ui_c{",given,"}{",constant,"}") -- user interface constant
nofconstants = nofconstants + 1
end
local nofvariables = 0
for given, variable in next, complete.variables do
variable = variable[interface] or variable.en or given
variables[given] = variable -- ja -> yes
- contextsprint("\\do@sivar{",given,"}{",variable,"}")
+ contextsprint(prtcatcodes,"\\ui_v{",given,"}{",variable,"}") -- user interface variable
nofvariables = nofvariables + 1
end
local nofelements = 0
for given, element in next, complete.elements do
element = element[interface] or element.en or given
elements[element] = given
- contextsprint("\\do@siele{",given,"}{",element,"}")
+ contextsprint(prtcatcodes,"\\ui_e{",given,"}{",element,"}") -- user interface element
nofelements = nofelements + 1
end
local nofcommands = 0
for given, command in next, complete.commands do
command = command[interface] or command.en or given
if command ~= given then
- contextsprint("\\do@sicom{",given,"}{",command,"}")
+ contextsprint(prtcatcodes,"\\ui_m{",given,"}{",command,"}") -- user interface macro
end
nofcommands = nofcommands + 1
end
@@ -256,12 +241,12 @@ end
interfaces.cachedsetups = interfaces.cachedsetups or { }
interfaces.hashedsetups = interfaces.hashedsetups or { }
-storage.register("interfaces/cachedsetups", interfaces.cachedsetups, "interfaces.cachedsetups")
-storage.register("interfaces/hashedsetups", interfaces.hashedsetups, "interfaces.hashedsetups")
-
local cachedsetups = interfaces.cachedsetups
local hashedsetups = interfaces.hashedsetups
+storage.register("interfaces/cachedsetups", cachedsetups, "interfaces.cachedsetups")
+storage.register("interfaces/hashedsetups", hashedsetups, "interfaces.hashedsetups")
+
function interfaces.cachesetup(t)
local hash = serialize(t)
local done = hashedsetups[hash]
@@ -283,3 +268,40 @@ function interfaces.interfacedcommand(name)
local command = complete.commands[name]
return command and command[currentinterface] or name
end
+
+-- interface
+
+function commands.writestatus(category,message,...)
+ local r = reporters[category]
+ if r then
+ r(message,...)
+ end
+end
+
+commands.registernamespace = interfaces.registernamespace
+commands.setinterfaceconstant = interfaces.setconstant
+commands.setinterfacevariable = interfaces.setvariable
+commands.setinterfaceelement = interfaces.setelement
+commands.setinterfacemessage = interfaces.setmessage
+commands.setinterfacemessages = interfaces.setmessages
+commands.showmessage = interfaces.showmessage
+
+function commands.doifelsemessage(category,tag)
+ commands.doifelse(interfaces.doifelsemessage(category,tag))
+end
+
+function commands.getmessage(category,tag,default)
+ context(interfaces.getmessage(category,tag,default))
+end
+
+function commands.showassignerror(namespace,key,value,line)
+ local ns, instance = match(namespace,"^(%d+)[^%a]+(%a+)")
+ if ns then
+ namespace = corenamespaces[tonumber(ns)] or ns
+ end
+ if instance then
+ context.writestatus("setup",format("error in line %s, namespace %q, instance %q, key %q",line,namespace,instance,key))
+ else
+ context.writestatus("setup",format("error in line %s, namespace %q, key %q",line,namespace,key))
+ end
+end
diff --git a/tex/context/base/mult-ini.mkiv b/tex/context/base/mult-ini.mkiv
index 29fa8390e..d01000f2a 100644
--- a/tex/context/base/mult-ini.mkiv
+++ b/tex/context/base/mult-ini.mkiv
@@ -364,7 +364,7 @@
\doifinsetelse{#1}{\currentresponses,all}\mult_messages_start_yes\mult_messages_start_nop{#2}}
\def\mult_messages_start_yes#1#2\stopmessages
- {\ctxlua{interfaces.setmessages("#1",\!!bs#2\!!es)}%
+ {\ctxcommand{setinterfacemessages("#1",\!!bs#2\!!es)}%
\egroup}
\def\mult_messages_start_nop#1#2\stopmessages
@@ -374,12 +374,12 @@
\unexpanded\def\setinterfacemessage#1#2#3%
{\ifcsname\m!prefix!#1\endcsname\else\setgvalue{\m!prefix!#1}{#1}\fi
- \ctxlua{interfaces.setmessage("#1","#2",\!!bs#3\!!es)}}
+ \ctxcommand{setinterfacemessage("#1","#2",\!!bs#3\!!es)}}
-\unexpanded\def\setmessagetext #1#2{\edef\currentmessagetext{\cldcontext{interfaces.getmessage("#1","#2")}}}
-\unexpanded\def\getmessage #1#2{\cldcontext{interfaces.getmessage("#1","#2")}}
-\unexpanded\def\doifelsemessage #1#2{\ctxlua{interfaces.doifelsemessage("#1","#2")}}
-\unexpanded\def\showmessage #1#2#3{\ctxlua{interfaces.showmessage("#1","#2",\!!bs#3\!!es)}}
+\unexpanded\def\setmessagetext #1#2{\edef\currentmessagetext{\ctxcommand{getmessage("#1","#2")}}}
+\unexpanded\def\getmessage #1#2{\ctxcommand{getmessage("#1","#2")}}
+\unexpanded\def\doifelsemessage #1#2{\ctxcommand{doifelsemessage("#1","#2")}}
+\unexpanded\def\showmessage #1#2#3{\ctxcommand{showmessage("#1","#2",\!!bs#3\!!es)}}
\unexpanded\def\writestatus #1#2{\ctxcommand{writestatus("#1",\!!bs#2\!!es)}}
%D \macros
@@ -726,11 +726,11 @@
% temporary mkiv hack (we can best just store the whole table in memory)
\unexpanded\def\setinterfaceconstant#1#2%
- {\ctxlua{interfaces.setconstant("#1","#2")}%
+ {\ctxcommand{setinterfaceconstant("#1","#2")}%
\expandafter\def\csname\c!prefix!#1\endcsname{#1}}
\unexpanded\def\setinterfacevariable#1#2%
- {\ctxlua{interfaces.setvariable("#1","#2")}%
+ {\ctxcommand{setinterfacevariable("#1","#2")}%
\expandafter\def\csname\v!prefix!#1\endcsname{#2}}
%D \macros
@@ -759,7 +759,7 @@
%D part is needed, we use a \type{-}:
\unexpanded\def\setinterfaceelement#1#2%
- {\ctxlua{interfaces.setelement("#1","#2")}%
+ {\ctxcommand{setinterfaceelement("#1","#2")}%
\ifcsname\e!prefix!#1\endcsname
\doifnotvalue{\e!prefix!#1}{#2}{\setvalue{\e!prefix!#1}{#2}}%
\else
@@ -779,15 +779,27 @@
%D For at the \LUA\ end (experiment):
-\def\do@sicon#1#2{\expandafter\gdef\csname\c!prefix!#1\endcsname{#1}%
- \expandafter\gdef\csname\k!prefix!#2\endcsname{#1}} % backmapping from non english
-\def\do@sivar#1#2{\expandafter\gdef\csname\v!prefix!#1\endcsname{#2}}
-\def\do@siele#1#2{\expandafter\gdef\csname\e!prefix!#1\endcsname{#2}}
-\def\do@sicom#1#2{\expandafter\gdef\csname#2\expandafter\endcsname\expandafter{\csname#1\endcsname}}
+% \def\do@sicon#1#2{\expandafter\gdef\csname\c!prefix!#1\endcsname{#1}%
+% \expandafter\gdef\csname\k!prefix!#2\endcsname{#1}} % backmapping from non english
+% \def\do@sivar#1#2{\expandafter\gdef\csname\v!prefix!#1\endcsname{#2}}
+% \def\do@siele#1#2{\expandafter\gdef\csname\e!prefix!#1\endcsname{#2}}
+% \def\do@sicom#1#2{\expandafter\gdef\csname#2\expandafter\endcsname\expandafter{\csname#1\endcsname}}
+%
+% \startinterface english
+%
+% \def\do@sicon#1#2{\expandafter\gdef\csname\c!prefix!#1\endcsname{#1}}
+%
+% \stopinterface
+
+\def\ui_c#1#2{\expandafter\gdef\csname\c!prefix!#1\endcsname{#1}%
+ \expandafter\gdef\csname\k!prefix!#2\endcsname{#1}} % backmapping from non english
+\def\ui_v#1#2{\expandafter\gdef\csname\v!prefix!#1\endcsname{#2}}
+\def\ui_e#1#2{\expandafter\gdef\csname\e!prefix!#1\endcsname{#2}}
+\def\ui_m#1#2{\expandafter\gdef\csname#2\expandafter\endcsname\expandafter{\csname#1\endcsname}}
\startinterface english
- \def\do@sicon#1#2{\expandafter\gdef\csname\c!prefix!#1\endcsname{#1}}
+ \def\ui_c#1#2{\expandafter\gdef\csname\c!prefix!#1\endcsname{#1}}
\stopinterface
diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua
index 4246eca2c..6376e7d89 100644
--- a/tex/context/base/mult-low.lua
+++ b/tex/context/base/mult-low.lua
@@ -228,7 +228,9 @@ return {
"getvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue",
"resetvalue", "undefinevalue", "ignorevalue",
"setuvalue", "setuevalue", "setugvalue", "setuxvalue",
- "globallet", "glet",
+ --
+ "globallet", "glet", "udef", "ugdef", "uedef", "uxdef",
+ --
"getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters",
--
"getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter",
diff --git a/tex/context/base/mult-prm.mkiv b/tex/context/base/mult-prm.mkiv
index 7e5bc1edd..8c9179a16 100644
--- a/tex/context/base/mult-prm.mkiv
+++ b/tex/context/base/mult-prm.mkiv
@@ -1,3 +1,18 @@
+%D \module
+%D [ file=mult-prm,
+%D version=2011.09.18, % actually older
+%D title=\CONTEXT\ Multilingual Macros,
+%D subtitle=Primitives,
+%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 therefore
+%C copyrighted by \PRAGMA. See mreadme.pdf for details.
+
+%D This file is only a helper for generating files that can be used in an
+%D editor for syntax highlighting.
+
\startluacode
context.starttext()
diff --git a/tex/context/base/norm-ctx.mkiv b/tex/context/base/norm-ctx.mkiv
index ff1676743..4b0027332 100644
--- a/tex/context/base/norm-ctx.mkiv
+++ b/tex/context/base/norm-ctx.mkiv
@@ -1,8 +1,8 @@
%D \module
%D [ file=norm-ctx,
%D version=2009.03.19,
-%D title=\CONTEXT\ Norm Macros,
-%D subtitle=\ALEPH\ and \OMEGA,
+%D title=\CONTEXT\ Normal Macros,
+%D subtitle=\CONTEXT,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
@@ -11,8 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\unprotect
+
%D A few more might end up here (like the weird ones in syst-ini).
\let\normalreqno\normaleqno
-\endinput
+\protect \endinput
diff --git a/tex/context/base/pack-obj.lua b/tex/context/base/pack-obj.lua
index a54a48d22..1e4e0f59e 100644
--- a/tex/context/base/pack-obj.lua
+++ b/tex/context/base/pack-obj.lua
@@ -11,6 +11,8 @@ if not modules then modules = { } end modules ['pack-obj'] = {
reusable components.</p>
--ldx]]--
+local commands, context = commands, context
+
local texcount = tex.count
local allocate = utilities.storage.allocate
@@ -70,6 +72,6 @@ function commands.objectpage(tag,default)
end
function commands.doifobjectreferencefoundelse(tag)
- commands.testcase(collected[tag] or tobesaved[tag])
+ commands.doifelse(collected[tag] or tobesaved[tag])
end
diff --git a/tex/context/base/regi-ini.lua b/tex/context/base/regi-ini.lua
index 3440dd52d..7076c3e7a 100644
--- a/tex/context/base/regi-ini.lua
+++ b/tex/context/base/regi-ini.lua
@@ -12,12 +12,13 @@ if not modules then modules = { } end modules ['regi-ini'] = {
runtime.</p>
--ldx]]--
+local commands, context = commands, context
+
local utfchar, utfgsub = utf.char, utf.gsub
local char, gsub, format = string.char, string.gsub, string.format
local next = next
local insert, remove = table.insert, table.remove
-
local allocate = utilities.storage.allocate
local sequencers = utilities.sequencers
local textlineactions = resolvers.openers.helpers.textlineactions
@@ -186,14 +187,14 @@ function regimes.process(str,filename,currentline,noflines,coding)
return str
end
-function regimes.push()
+local function push()
level = level + 1
if trace_translating then
report_translating("pushing level: %s",level)
end
end
-function regimes.pop()
+local function pop()
if level > 0 then
if trace_translating then
report_translating("popping level: %s",level)
@@ -202,6 +203,9 @@ function regimes.pop()
end
end
+regimes.push = push
+regimes.pop = pop
+
sequencers.prependaction(textlineactions,"system","regimes.process")
sequencers.disableaction(textlineactions,"regimes.process")
@@ -210,6 +214,9 @@ sequencers.disableaction(textlineactions,"regimes.process")
commands.enableregime = enable
commands.disableregime = disable
+commands.pushregime = push
+commands.popregime = pop
+
function commands.currentregime()
context(currentregime)
end
@@ -234,9 +241,6 @@ function commands.stopregime()
end
end
-commands.pushregime = regimes.push
-commands.popregime = regimes.pop
-
-- obsolete:
--
-- function regimes.setsynonym(synonym,target)
diff --git a/tex/context/base/s-fnt-10.mkiv b/tex/context/base/s-fnt-10.mkiv
index 0d4a608a4..0edb19120 100644
--- a/tex/context/base/s-fnt-10.mkiv
+++ b/tex/context/base/s-fnt-10.mkiv
@@ -135,7 +135,7 @@ end
\page
\egroup}
-\doifnotmode{demo} {\endinput}
+\continueifinputfile{s-fnt-10.mkiv}
\starttext
diff --git a/tex/context/base/s-fnt-28.mkiv b/tex/context/base/s-fnt-28.mkiv
index 039cc6ca8..778a4c390 100644
--- a/tex/context/base/s-fnt-28.mkiv
+++ b/tex/context/base/s-fnt-28.mkiv
@@ -35,7 +35,7 @@
end
\stopluacode
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{s-fnt-28.mkiv}
\starttext
diff --git a/tex/context/base/s-fnt-29.mkiv b/tex/context/base/s-fnt-29.mkiv
index 0378550e8..f9e0a1658 100644
--- a/tex/context/base/s-fnt-29.mkiv
+++ b/tex/context/base/s-fnt-29.mkiv
@@ -48,7 +48,7 @@
\stopluacode
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{s-fnt-29.mkiv}
\setupbodyfont[dejavu,tt,9pt]
diff --git a/tex/context/base/s-fnt-32.mkiv b/tex/context/base/s-fnt-32.mkiv
index 5ffbb2ac5..20a939a97 100644
--- a/tex/context/base/s-fnt-32.mkiv
+++ b/tex/context/base/s-fnt-32.mkiv
@@ -30,7 +30,7 @@
end
\stopluacode
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{s-fnt-32.mkiv}
\setupbodyfont[dejavu,10pt]
diff --git a/tex/context/base/s-inf-01.mkvi b/tex/context/base/s-inf-01.mkvi
index 51d3cbac8..b3f44e908 100644
--- a/tex/context/base/s-inf-01.mkvi
+++ b/tex/context/base/s-inf-01.mkvi
@@ -226,7 +226,7 @@
\stopTEXpage
\stoptexdefinition
-% \doifnotmode{demo}{\endinput}
+% \continueifinputfile{s-inf-01.mkvi}
\starttext
\Show
diff --git a/tex/context/base/s-lan-04.mkiv b/tex/context/base/s-lan-04.mkiv
index 80283bfd4..c04be9466 100644
--- a/tex/context/base/s-lan-04.mkiv
+++ b/tex/context/base/s-lan-04.mkiv
@@ -138,7 +138,7 @@
\definecolor[hyphenation:de] [g=.8]
\definecolor[hyphenation:nl] [b=.8]
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{s-lan-04.mkiv}
\starttext
diff --git a/tex/context/base/s-pre-69.mkiv b/tex/context/base/s-pre-69.mkiv
index c87bcd537..cc6af9ad3 100644
--- a/tex/context/base/s-pre-69.mkiv
+++ b/tex/context/base/s-pre-69.mkiv
@@ -311,7 +311,7 @@
\setelementexporttag[paragraphs][nature][display]
\setelementexporttag[paragraph] [nature][mixed]
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{s-pre-69.mkiv}
% finetuning: \StartText{\TEX\ and Reality\vskip2exClashing Mindsets?\vskip1ex}{Bacho\TEX, May 1, 2010}
diff --git a/tex/context/base/scrn-fld.lua b/tex/context/base/scrn-fld.lua
index 275fb4a9b..9836cbebe 100644
--- a/tex/context/base/scrn-fld.lua
+++ b/tex/context/base/scrn-fld.lua
@@ -73,13 +73,13 @@ function commands.setformsmethod(method)
end
function commands.doiffieldcategoryelse(name)
- commands.testcase(codeinjections.validfieldcategory(name))
+ commands.doifelse(codeinjections.validfieldcategory(name))
end
function commands.doiffieldsetelse(tag)
- commands.testcase(codeinjections.validfieldset(name))
+ commands.doifelse(codeinjections.validfieldset(name))
end
function commands.doiffieldelse(name)
- commands.testcase(codeinjections.validfield(name))
+ commands.doifelse(codeinjections.validfield(name))
end
diff --git a/tex/context/base/scrp-cjk.lua b/tex/context/base/scrp-cjk.lua
index 3463a8eb5..ab09ce9c8 100644
--- a/tex/context/base/scrp-cjk.lua
+++ b/tex/context/base/scrp-cjk.lua
@@ -6,6 +6,9 @@ if not modules then modules = { } end modules ['scrp-cjk'] = {
license = "see context related readme files"
}
+-- We can speed this up by preallocating nodes and copying them but the
+-- gain is not that large.
+
local utfchar = utf.char
local has_attribute = node.has_attribute
diff --git a/tex/context/base/scrp-ini.lua b/tex/context/base/scrp-ini.lua
index e55dc0780..9b0e9fc21 100644
--- a/tex/context/base/scrp-ini.lua
+++ b/tex/context/base/scrp-ini.lua
@@ -47,142 +47,152 @@ local hash = scripts.hash
local handlers = allocate()
scripts.handlers = handlers
-storage.register("scripts/hash", hash, "scripts.hash")
-
-if not next(hash) then -- this might move to char-def
-
- hash = { -- no local
- --
- -- half width opening parenthesis
- [0x0028] = "half_width_open",
- [0x005B] = "half_width_open",
- [0x007B] = "half_width_open",
- [0x2018] = "half_width_open", -- ‘
- [0x201C] = "half_width_open", -- “
- --
- -- full width opening parenthesis
- --
- [0x3008] = "full_width_open", -- 〈 Left book quote
- [0x300A] = "full_width_open", -- 《 Left double book quote
- [0x300C] = "full_width_open", -- 「 left quote
- [0x300E] = "full_width_open", -- 『 left double quote
- [0x3010] = "full_width_open", -- 【 left double book quote
- [0x3014] = "full_width_open", -- 〔 left book quote
- [0x3016] = "full_width_open", --〖 left double book quote
- [0x3018] = "full_width_open", -- left tortoise bracket
- [0x301A] = "full_width_open", -- left square bracket
- [0x301D] = "full_width_open", -- reverse double prime qm
- [0xFF08] = "full_width_open", -- ( left parenthesis
- [0xFF3B] = "full_width_open", -- [ left square brackets
- [0xFF5B] = "full_width_open", -- { left curve bracket
- --
- -- half width closing parenthesis
- [0x0029] = "half_width_close",
- [0x005D] = "half_width_close",
- [0x007D] = "half_width_close",
- [0x2019] = "half_width_close", -- ’ right quote, right
- [0x201D] = "half_width_close", -- ” right double quote
- --
- -- full width closing parenthesis
- --
- [0x3009] = "full_width_close", -- 〉 book quote
- [0x300B] = "full_width_close", -- 》 double book quote
- [0x300D] = "full_width_close", -- 」 right quote, right
- [0x300F] = "full_width_close", -- 』 right double quote
- [0x3011] = "full_width_close", -- 】 right double book quote
- [0x3015] = "full_width_close", -- 〕 right book quote
- [0x3017] = "full_width_close", -- 〗 right double book quote
- [0x3019] = "full_width_close", -- right tortoise bracket
- [0x301B] = "full_width_close", -- right square bracket
- [0x301E] = "full_width_close", -- double prime qm
- [0x301F] = "full_width_close", -- low double prime qm
- [0xFF09] = "full_width_close", -- ) right parenthesis
- [0xFF3D] = "full_width_close", -- ] right square brackets
- [0xFF5D] = "full_width_close", -- } right curve brackets
-
- [0xFF62] = "half_width_open", -- left corner bracket
- [0xFF63] = "half_width_close", -- right corner bracket
- --
- -- vertical opening vertical
- --
- -- 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47,
- --
- -- vertical closing
- --
- -- 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48,
- --
- -- half width opening punctuation
- --
- -- <empty>
- --
- -- full width opening punctuation
- --
- -- 0x2236, -- ∶
- -- 0xFF0C, -- ,
- --
- -- half width closing punctuation_hw
- --
- [0x0021] = "half_width_close", -- !
- [0x002C] = "half_width_close", -- ,
- [0x002E] = "half_width_close", -- .
- [0x003A] = "half_width_close", -- :
- [0x003B] = "half_width_close", -- ;
- [0x003F] = "half_width_close", -- ?
- [0xFF61] = "half_width_close", -- hw full stop
- --
- -- full width closing punctuation
- [0x3001] = "full_width_close", -- 、
- [0x3002] = "full_width_close", -- 。
- [0xFF0C] = "full_width_close", -- ,
- [0xFF0E] = "full_width_close", -- .
- -- depends on font
- [0xFF01] = "full_width_close", -- !
- [0xFF1F] = "full_width_close", -- ?
- --
- [0xFF1A] = "full_width_punct", -- :
- [0xFF1B] = "full_width_punct", -- ;
- -- non starter
- --
- [0x3005] = "non_starter", [0x3041] = "non_starter", [0x3043] = "non_starter", [0x3045] = "non_starter", [0x3047] = "non_starter",
- [0x3049] = "non_starter", [0x3063] = "non_starter", [0x3083] = "non_starter", [0x3085] = "non_starter", [0x3087] = "non_starter",
- [0x308E] = "non_starter", [0x3095] = "non_starter", [0x3096] = "non_starter", [0x309B] = "non_starter", [0x309C] = "non_starter",
- [0x309D] = "non_starter", [0x309E] = "non_starter", [0x30A0] = "non_starter", [0x30A1] = "non_starter", [0x30A3] = "non_starter",
- [0x30A5] = "non_starter", [0x30A7] = "non_starter", [0x30A9] = "non_starter", [0x30C3] = "non_starter", [0x30E3] = "non_starter",
- [0x30E5] = "non_starter", [0x30E7] = "non_starter", [0x30EE] = "non_starter", [0x30F5] = "non_starter", [0x30F6] = "non_starter",
- [0x30FC] = "non_starter", [0x30FD] = "non_starter", [0x30FE] = "non_starter", [0x31F0] = "non_starter", [0x31F1] = "non_starter",
- [0x30F2] = "non_starter", [0x30F3] = "non_starter", [0x30F4] = "non_starter", [0x31F5] = "non_starter", [0x31F6] = "non_starter",
- [0x30F7] = "non_starter", [0x30F8] = "non_starter", [0x30F9] = "non_starter", [0x31FA] = "non_starter", [0x31FB] = "non_starter",
- [0x30FC] = "non_starter", [0x30FD] = "non_starter", [0x30FE] = "non_starter", [0x31FF] = "non_starter",
- --
- -- hyphenation
- --
- [0x2026] = "hyphen", -- … ellipsis
- [0x2014] = "hyphen", -- — hyphen
- }
-
- for i=0x03040,0x030FF do if not hash[i] then hash[i] = "katakana" end end -- had tag 'chinese'
- for i=0x031F0,0x031FF do if not hash[i] then hash[i] = "katakana" end end -- had tag 'chinese'
- for i=0x032D0,0x032FE do if not hash[i] then hash[i] = "katakana" end end -- had tag 'chinese'
- for i=0x03400,0x04DFF do if not hash[i] then hash[i] = "chinese" end end
- for i=0x04E00,0x09FFF do if not hash[i] then hash[i] = "chinese" end end
- for i=0x0F900,0x0FAFF do if not hash[i] then hash[i] = "chinese" end end
- for i=0x0FF00,0x0FFEF do if not hash[i] then hash[i] = "katakana" end end -- had tag 'chinese'
- for i=0x20000,0x2A6DF do if not hash[i] then hash[i] = "chinese" end end
- for i=0x2F800,0x2FA1F do if not hash[i] then hash[i] = "chinese" end end
- for i=0x0AC00,0x0D7A3 do if not hash[i] then hash[i] = "korean" end end
- for i=0x01100,0x0115F do if not hash[i] then hash[i] = "jamo_initial" end end
- for i=0x01160,0x011A7 do if not hash[i] then hash[i] = "jamo_medial" end end
- for i=0x011A8,0x011FF do if not hash[i] then hash[i] = "jamo_final" end end
-
- for i=0x01200,0x0139F do hash[i] = "ethiopic_syllable" end
-
- hash[0x01361] = "ethiopic_word"
- hash[0x01362] = "ethiopic_sentence"
-
- scripts.hash = hash
+local hash = { -- we could put these presets in char-def.lua
+ --
+ -- half width opening parenthesis
+ --
+ [0x0028] = "half_width_open",
+ [0x005B] = "half_width_open",
+ [0x007B] = "half_width_open",
+ [0x2018] = "half_width_open", -- ‘
+ [0x201C] = "half_width_open", -- “
+ --
+ -- full width opening parenthesis
+ --
+ [0x3008] = "full_width_open", -- 〈 Left book quote
+ [0x300A] = "full_width_open", -- 《 Left double book quote
+ [0x300C] = "full_width_open", -- 「 left quote
+ [0x300E] = "full_width_open", -- 『 left double quote
+ [0x3010] = "full_width_open", -- 【 left double book quote
+ [0x3014] = "full_width_open", -- 〔 left book quote
+ [0x3016] = "full_width_open", --〖 left double book quote
+ [0x3018] = "full_width_open", -- left tortoise bracket
+ [0x301A] = "full_width_open", -- left square bracket
+ [0x301D] = "full_width_open", -- reverse double prime qm
+ [0xFF08] = "full_width_open", -- ( left parenthesis
+ [0xFF3B] = "full_width_open", -- [ left square brackets
+ [0xFF5B] = "full_width_open", -- { left curve bracket
+ --
+ -- half width closing parenthesis
+ --
+ [0x0029] = "half_width_close",
+ [0x005D] = "half_width_close",
+ [0x007D] = "half_width_close",
+ [0x2019] = "half_width_close", -- ’ right quote, right
+ [0x201D] = "half_width_close", -- ” right double quote
+ --
+ -- full width closing parenthesis
+ --
+ [0x3009] = "full_width_close", -- 〉 book quote
+ [0x300B] = "full_width_close", -- 》 double book quote
+ [0x300D] = "full_width_close", -- 」 right quote, right
+ [0x300F] = "full_width_close", -- 』 right double quote
+ [0x3011] = "full_width_close", -- 】 right double book quote
+ [0x3015] = "full_width_close", -- 〕 right book quote
+ [0x3017] = "full_width_close", -- 〗 right double book quote
+ [0x3019] = "full_width_close", -- right tortoise bracket
+ [0x301B] = "full_width_close", -- right square bracket
+ [0x301E] = "full_width_close", -- double prime qm
+ [0x301F] = "full_width_close", -- low double prime qm
+ [0xFF09] = "full_width_close", -- ) right parenthesis
+ [0xFF3D] = "full_width_close", -- ] right square brackets
+ [0xFF5D] = "full_width_close", -- } right curve brackets
+ --
+ [0xFF62] = "half_width_open", -- left corner bracket
+ [0xFF63] = "half_width_close", -- right corner bracket
+ --
+ -- vertical opening vertical
+ --
+ -- 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47,
+ --
+ -- vertical closing
+ --
+ -- 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48,
+ --
+ -- half width opening punctuation
+ --
+ -- <empty>
+ --
+ -- full width opening punctuation
+ --
+ -- 0x2236, -- ∶
+ -- 0xFF0C, -- ,
+ --
+ -- half width closing punctuation_hw
+ --
+ [0x0021] = "half_width_close", -- !
+ [0x002C] = "half_width_close", -- ,
+ [0x002E] = "half_width_close", -- .
+ [0x003A] = "half_width_close", -- :
+ [0x003B] = "half_width_close", -- ;
+ [0x003F] = "half_width_close", -- ?
+ [0xFF61] = "half_width_close", -- hw full stop
+ --
+ -- full width closing punctuation
+ --
+ [0x3001] = "full_width_close", -- 、
+ [0x3002] = "full_width_close", -- 。
+ [0xFF0C] = "full_width_close", -- ,
+ [0xFF0E] = "full_width_close", --
+ --
+ -- depends on font
+ --
+ [0xFF01] = "full_width_close", -- !
+ [0xFF1F] = "full_width_close", -- ?
+ --
+ [0xFF1A] = "full_width_punct", -- :
+ [0xFF1B] = "full_width_punct", -- ;
+ --
+ -- non starter
+ --
+ [0x3005] = "non_starter", [0x3041] = "non_starter", [0x3043] = "non_starter", [0x3045] = "non_starter", [0x3047] = "non_starter",
+ [0x3049] = "non_starter", [0x3063] = "non_starter", [0x3083] = "non_starter", [0x3085] = "non_starter", [0x3087] = "non_starter",
+ [0x308E] = "non_starter", [0x3095] = "non_starter", [0x3096] = "non_starter", [0x309B] = "non_starter", [0x309C] = "non_starter",
+ [0x309D] = "non_starter", [0x309E] = "non_starter", [0x30A0] = "non_starter", [0x30A1] = "non_starter", [0x30A3] = "non_starter",
+ [0x30A5] = "non_starter", [0x30A7] = "non_starter", [0x30A9] = "non_starter", [0x30C3] = "non_starter", [0x30E3] = "non_starter",
+ [0x30E5] = "non_starter", [0x30E7] = "non_starter", [0x30EE] = "non_starter", [0x30F5] = "non_starter", [0x30F6] = "non_starter",
+ [0x30FC] = "non_starter", [0x30FD] = "non_starter", [0x30FE] = "non_starter", [0x31F0] = "non_starter", [0x31F1] = "non_starter",
+ [0x30F2] = "non_starter", [0x30F3] = "non_starter", [0x30F4] = "non_starter", [0x31F5] = "non_starter", [0x31F6] = "non_starter",
+ [0x30F7] = "non_starter", [0x30F8] = "non_starter", [0x30F9] = "non_starter", [0x31FA] = "non_starter", [0x31FB] = "non_starter",
+ [0x30FC] = "non_starter", [0x30FD] = "non_starter", [0x30FE] = "non_starter", [0x31FF] = "non_starter",
+ --
+ -- hyphenation
+ --
+ [0x2026] = "hyphen", -- … ellipsis
+ [0x2014] = "hyphen", -- — hyphen
+ --
+ [0x1361] = "ethiopic_word",
+ [0x1362] = "ethiopic_sentence",
+ --
+}
+local function provide(t,k)
+ local v
+ if not tonumber(k) then v = false
+ elseif (k >= 0x03040 and k <= 0x030FF)
+ or (k >= 0x031F0 and k <= 0x031FF)
+ or (k >= 0x032D0 and k <= 0x032FE)
+ or (k >= 0x0FF00 and k <= 0x0FFEF) then v = "katakana"
+ elseif (k >= 0x03400 and k <= 0x04DFF)
+ or (k >= 0x04E00 and k <= 0x09FFF)
+ or (k >= 0x0F900 and k <= 0x0FAFF)
+ or (k >= 0x20000 and k <= 0x2A6DF)
+ or (k >= 0x2F800 and k <= 0x2FA1F) then v = "chinese"
+ elseif (k >= 0x0AC00 and k <= 0x0D7A3) then v = "korean"
+ elseif (k >= 0x01100 and k <= 0x0115F) then v = "jamo_initial"
+ elseif (k >= 0x01160 and k <= 0x011A7) then v = "jamo_medial"
+ elseif (k >= 0x011A8 and k <= 0x011FF) then v = "jamo_final"
+ elseif (k >= 0x01200 and k <= 0x0139F) then v = "ethiopic_syllable"
+ else v = false
+ end
+ t[k] = v
+ return v
end
+table.setmetatableindex(hash,provide)
+
+scripts.hash = hash
+
local numbertodataset = allocate()
local numbertohandler = allocate()
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 248a43a00..851eb356f 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 9074b1d3f..83167d9d2 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/status-mkiv.lua b/tex/context/base/status-mkiv.lua
index b2663d298..cdea874a6 100644
--- a/tex/context/base/status-mkiv.lua
+++ b/tex/context/base/status-mkiv.lua
@@ -1,5111 +1,5791 @@
return {
- ["core"]={
+ main = {
{
- ["category"]="mkiv",
- ["filename"]="context",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "context",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="syst-ini",
- ["status"]="okay",
+ category = "lus",
+ comment = "stub file for context",
+ filename = "context",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="norm-ctx",
- ["status"]="okay",
+ category = "tex",
+ filename = "metatex",
+ loading = "parent",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="syst-pln",
- ["status"]="okay",
+ category = "lus",
+ comment = "stub file for metatex",
+ filename = "metatex",
+ loading = "parent",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="syst-mes",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-cs",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="luat-cod",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-de",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe combine (3)",
- ["filename"]="luat-bas",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-en",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe combine (3)",
- ["filename"]="luat-lib",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-fr",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="catc-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-gb",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="forward dependency",
- ["filename"]="catc-act",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-it",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="catc-def",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-nl",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="catc-ctx",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-pe",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="catc-sym",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-ro",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe combine (1)",
- ["filename"]="cldf-ini",
- ["status"]="okay",
+ category = "mpiv",
+ comment = "maybe more delayed loading",
+ filename = "metafun",
+ loading = "parent",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="syst-aux",
- ["status"]="okay",
- },
- {
- ["category"]="mkiv",
- ["comment"]="maybe combine (1)",
- ["filename"]="syst-lua",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "we keep this around for historic reasons",
+ filename = "ppchtex",
+ loading = "never",
+ status = "okay",
},
+ },
+ core = {
{
- ["category"]="mkiv",
- ["comment"]="maybe combine (1)",
- ["filename"]="syst-con",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "syst-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe combine (1)",
- ["filename"]="syst-fnt",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "norm-ctx",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe combine (1)",
- ["filename"]="syst-rtp",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "syst-pln",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="maybe combine (2)",
- ["filename"]="file-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "syst-mes",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="maybe combine (2)",
- ["filename"]="file-res",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "luat-cod",
+ loading = "luat-cod",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="file-lib",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe combine (3)",
+ filename = "luat-bas",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="supp-dir",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe combine (3)",
+ filename = "luat-lib",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="char-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "catc-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="char-utf",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "forward dependency",
+ filename = "catc-act",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="forward dependency",
- ["filename"]="char-act",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "catc-def",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="mult-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "catc-ctx",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="mult-sys",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "catc-sym",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="mult-aux",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "catc-xml",
+ loading = "module",
+ status = "okay",
+ comment = "only needed for mkii xml parser",
},
{
- ["category"]="mkiv",
- ["filename"]="mult-def",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe combine (1)",
+ filename = "cldf-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="mult-chk",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "syst-aux",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="mult-dim",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe combine (1)",
+ filename = "syst-lua",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="cldf-int",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe combine (1)",
+ filename = "syst-con",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="luat-ini",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe combine (1)",
+ filename = "syst-fnt",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe this becomes a runtime module",
- ["filename"]="toks-ini",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe combine (1)",
+ filename = "syst-rtp",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="attr-ini",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "maybe combine (2)",
+ filename = "file-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="code might move from here",
- ["filename"]="core-ini",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "maybe combine (2)",
+ filename = "file-res",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="might need more redoing",
- ["filename"]="core-env",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "file-lib",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="in due time more might move to here",
- ["filename"]="layo-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "supp-dir",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe this becomes a runtime module",
- ["filename"]="node-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "char-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="cldf-bas",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "char-utf",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="might need more redoing",
- ["filename"]="node-fin",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "forward dependency",
+ filename = "char-act",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="needs integration and configuration",
- ["filename"]="node-mig",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "mult-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-bld",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "mult-sys",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="back-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "mult-aux",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="attr-col",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "mult-def",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="attr-lay",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "mult-chk",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="attr-neg",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "mult-dim",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="attr-eff",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cldf-int",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="needs more usage",
- ["filename"]="trac-tex",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "luat-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="trac-deb",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe this becomes a runtime module",
+ filename = "toks-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="trac-ctx",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "attr-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="supp-box",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "code might move from here",
+ filename = "core-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="supp-ran",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "might need more redoing",
+ filename = "core-env",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will be moved to the math-* modules",
- ["filename"]="supp-mat",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "in due time more might move to here",
+ filename = "layo-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will grow",
- ["filename"]="typo-ini",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe this becomes a runtime module",
+ filename = "node-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="file-syn",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe use context.generics/context.sprint here",
+ filename = "cldf-bas",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="file-mod",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "might need more redoing",
+ filename = "node-fin",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="core-con",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "needs integration and configuration",
+ filename = "node-mig",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-fil",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "typo-bld",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-nop",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "node-pag",
+ loading = "never",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-yes",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "back-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="regi-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "attr-col",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="enco-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "attr-lay",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="hand-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "attr-neg",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="lang-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "attr-eff",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="namespace should be languages",
- ["filename"]="lang-lab",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "needs more usage",
+ filename = "trac-tex",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="unic-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "trac-deb",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="core-uti",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "trac-ctx",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe rename to core-two",
- ["filename"]="core-two",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "supp-box",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="core-dat",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "supp-ran",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="colo-ini",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will be moved to the math-* modules",
+ filename = "supp-mat",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="colo-ext",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will grow",
+ filename = "typo-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="colo-grp",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "file-syn",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="node-bck",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "file-mod",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="pack-cut",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "core-con",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="lang-mis",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-fil",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="lang-url",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-nop",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="lang-def",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "cont-yes",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="lang-wrd",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "regi-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="might need more redoing",
- ["filename"]="file-job",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "enco-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="symb-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "hand-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="sort-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "lang-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="pack-mis",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "namespace should be languages",
+ filename = "lang-lab",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="pack-rul",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "unic-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="endpar experimental code",
- ["filename"]="pack-mrl",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "core-uti",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="pack-bck",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe rename to core-two",
+ filename = "core-two",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="pack-fen",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "core-dat",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="lxml-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "colo-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="lxml-sor",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "colo-ext",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="typo-prc",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "colo-grp",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="strc-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "node-bck",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-tag",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "pack-cut",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="this module migh tgo away when code has been moved",
- ["filename"]="strc-doc",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "lang-mis",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="still some rough edges",
- ["filename"]="strc-num",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "lang-url",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-mar",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "lang-def",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-sbe",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "lang-wrd",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-lst",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "might need more redoing",
+ filename = "file-job",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="some of the local current and synchronization macros will be renamed",
- ["filename"]="strc-sec",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "symb-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-pag",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "sort-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="(support for) setups might get improved",
- ["filename"]="strc-ren",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "pack-mis",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="this module might go away",
- ["filename"]="strc-xml",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "pack-rul",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-def",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "endpar experimental code",
+ filename = "pack-mrl",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="some more low level names might change",
- ["filename"]="strc-ref",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "pack-bck",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="use setups for rendering",
- ["filename"]="strc-reg",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "pack-fen",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="strc-lev",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "lxml-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe some tuning is needed / will happen",
- ["filename"]="spac-ali",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "lxml-sor",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="probably needs some more work",
- ["filename"]="spac-hor",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "typo-prc",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe some changes will happen",
- ["filename"]="spac-ver",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "strc-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="could be improved if needed",
- ["filename"]="spac-lin",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "strc-tag",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="this needs to be checked occasionally",
- ["filename"]="spac-pag",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "this module migh tgo away when code has been moved",
+ filename = "strc-doc",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="spac-par",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "still some rough edges",
+ filename = "strc-num",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="spac-def",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "strc-mar",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="needs thinking and redoing",
- ["filename"]="spac-grd",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "strc-sbe",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="in transition",
- ["filename"]="anch-pos",
- ["status"]="okay",
+ category = "mkvI",
+ filename = "strc-lst",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="maybe change locationattribute names",
- ["filename"]="scrn-ini",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "some of the local current and synchronization macros will be renamed",
+ filename = "strc-sec",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="namespace needs checking",
- ["filename"]="scrn-ref",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "strc-pag",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will change when we have objects at lua end",
- ["filename"]="pack-obj",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "(support for) setups might get improved",
+ filename = "strc-ren",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="strc-itm",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "this module might go away",
+ filename = "strc-xml",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe more common counter code here and setups need to be improved",
- ["filename"]="strc-con",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "strc-def",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-des",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "some more low level names might change",
+ filename = "strc-ref",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="(interactive) coupling is not yet working",
- ["filename"]="strc-enu",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "use setups for rendering",
+ filename = "strc-reg",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-ind",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "strc-lev",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="needs to be adapted when strc-con/des/enu changes",
- ["filename"]="strc-lab",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe some tuning is needed / will happen",
+ filename = "spac-ali",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="a funny mix",
- ["filename"]="core-sys",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "probably needs some more work",
+ filename = "spac-hor",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-var",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe some changes will happen",
+ filename = "spac-ver",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="page-otr",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "could be improved if needed",
+ filename = "spac-lin",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="code might end up elsewhere",
- ["filename"]="page-ini",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "this needs to be checked occasionally",
+ filename = "spac-pag",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="dealing with insertions might change",
- ["filename"]="page-ins",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "spac-par",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-fac",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "spac-def",
+ loading = "always",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["comment"]="otr commands will be redone",
- ["filename"]="page-brk",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "needs thinking and redoing",
+ filename = "spac-grd",
+ loading = "always",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["comment"]="helpers for columns",
- ["filename"]="page-col",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "in transition",
+ filename = "anch-pos",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="room for improvement and extension",
- ["filename"]="page-inf",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "maybe change locationattribute names",
+ filename = "scrn-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-grd",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "namespace needs checking",
+ filename = "scrn-ref",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will be extended when columns are redone",
- ["filename"]="page-flt",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will change when we have objects at lua end",
+ filename = "pack-obj",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-bck",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "strc-itm",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-not",
- ["status"]="todo",
+ category = "mkvi",
+ comment = "maybe more common counter code here and setups need to be improved",
+ filename = "strc-con",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="can probably be improved",
- ["filename"]="page-one",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "strc-des",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-lay",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "(interactive) coupling is not yet working",
+ filename = "strc-enu",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="page-box",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "strc-ind",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="a few things left",
- ["filename"]="page-txt",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "needs to be adapted when strc-con/des/enu changes",
+ filename = "strc-lab",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-sid",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "strc-syn",
+ loading = "always",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["comment"]="in due time we need a further cleanup",
- ["filename"]="strc-flt",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "a funny mix",
+ filename = "core-sys",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-pst",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-var",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="might be extended",
- ["filename"]="page-mbk",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "page-otr",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will be reimplemented",
- ["filename"]="page-mul",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "code might end up elsewhere",
+ filename = "page-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="work in progress",
- ["filename"]="page-mix",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "dealing with insertions might change",
+ filename = "page-ins",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will be reimplemented",
- ["filename"]="page-set",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "page-fac",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="pack-lyr",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "otr commands will be redone",
+ filename = "page-brk",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="pack-pos",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "helpers for columns",
+ filename = "page-col",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="page-mak",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "room for improvement and extension",
+ filename = "page-inf",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will probably be overhauled some day",
- ["filename"]="page-lin",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-grd",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="might get extended",
- ["filename"]="page-par",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will be extended when columns are redone",
+ filename = "page-flt",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-pag",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-bck",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-mar",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-not",
+ loading = "always",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-itm",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "can probably be improved",
+ filename = "page-one",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="check other modules for buffer usage",
- ["filename"]="buff-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-lay",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="check obsolete processbuffer",
- ["filename"]="buff-ver",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "page-box",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="experimental code",
- ["filename"]="buff-par",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "a few things left",
+ filename = "page-txt",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="buff-imp-tex",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-sid",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="buff-imp-mp",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "in due time we need a further cleanup",
+ filename = "strc-flt",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="buff-imp-lua",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-pst",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="buff-imp-xml",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "might be extended",
+ filename = "page-mbk",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="buff-imp-parsed-xml",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will be reimplemented",
+ filename = "page-mul",
+ loading = "always",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-blk",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "work in progress",
+ filename = "page-mix",
+ loading = "always",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="page-imp",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will be reimplemented",
+ filename = "page-set",
+ loading = "always",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["comment"]="maybe some extensions and maybe delayed loading, needs checking",
- ["filename"]="page-sel",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "pack-lyr",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-com",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "pack-pos",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="namespace needs checking",
- ["filename"]="scrn-pag",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "page-mak",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="functionality needs checking",
- ["filename"]="scrn-wid",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will probably be overhauled some day",
+ filename = "page-lin",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="namespace needs checking",
- ["filename"]="scrn-but",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "might get extended",
+ filename = "page-par",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="namespace needs checking",
- ["filename"]="scrn-bar",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "typo-pag",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-bkm",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "typo-mar",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="somewhat weird",
- ["filename"]="tabl-com",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "typo-itm",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="unchecked",
- ["filename"]="tabl-pln",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "check other modules for buffer usage",
+ filename = "buff-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="tabl-tab",
- ["status"]="delayed",
+ category = "mkiv",
+ comment = "check obsolete processbuffer",
+ filename = "buff-ver",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="can probably be improved (names and such)",
- ["filename"]="tabl-tbl",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "experimental code",
+ filename = "buff-par",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="frozen functionaly so no drastic cleanup",
- ["filename"]="tabl-ntb",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "buff-imp-tex",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="tabl-mis",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "buff-imp-mp",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="tabl-nte",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "buff-imp-lua",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will be redone when needed",
- ["filename"]="tabl-ltb",
- ["status"]="delayed",
+ category = "mkiv",
+ filename = "buff-imp-xml",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will be adapted when needed (and rest is done)",
- ["filename"]="tabl-tsp",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "buff-imp-parsed-xml",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="namespace needs checking",
- ["filename"]="tabl-xtb",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "buff-imp-default",
+ loading = "indirect",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="java-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "buff-imp-escaped",
+ loading = "indirect",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="namespace needs checking",
- ["filename"]="scrn-fld",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "buff-imp-nested",
+ loading = "indirect",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="namespace needs checking",
- ["filename"]="scrn-hlp",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "strc-blk",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="char-enc",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-imp",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-lib",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "maybe some extensions and maybe delayed loading, needs checking",
+ filename = "page-sel",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-fil",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-com",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-fea",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "namespace needs checking",
+ filename = "scrn-pag",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-mat",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "functionality needs checking",
+ filename = "scrn-wid",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="needs occasional checking and upgrading",
- ["filename"]="font-ini",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "namespace needs checking",
+ filename = "scrn-but",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-sym",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "namespace needs checking",
+ filename = "scrn-bar",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-sty",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "strc-bkm",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-set",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "somewhat weird",
+ filename = "tabl-com",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-emp",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "unchecked",
+ filename = "tabl-pln",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-col",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "tabl-tab",
+ loading = "always",
+ status = "pending",
},
{
- ["category"]="mkiv",
- ["filename"]="font-pre",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "can probably be improved (names and such)",
+ filename = "tabl-tbl",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="font-unk",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "frozen functionaly so no drastic cleanup",
+ filename = "tabl-ntb",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="likely this will become a module",
- ["filename"]="font-tra",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "tabl-mis",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="this one might be merged",
- ["filename"]="font-uni",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "tabl-nte",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-col",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will be redone when needed",
+ filename = "tabl-ltb",
+ loading = "always",
+ status = "pending",
},
{
- ["category"]="mkvi",
- ["filename"]="font-gds",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will be adapted when needed (and rest is done)",
+ filename = "tabl-tsp",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="font-aux",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "namespace needs checking",
+ filename = "tabl-xtb",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="this is work in progress",
- ["filename"]="lxml-css",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "tabl-xnt",
+ loading = "module",
+ status = "okay",
+ loading = "always",
+ comment = "only when natural tables need a replacement",
},
{
- ["category"]="mkiv",
- ["filename"]="spac-chr",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "java-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="spac-cha",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "namespace needs checking",
+ filename = "scrn-fld",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="work in progress",
- ["filename"]="blob-ini",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "namespace needs checking",
+ filename = "scrn-hlp",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="trac-vis",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "char-enc",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-cln",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-lib",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-spa",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-fil",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="do we keep the style and color or not",
- ["filename"]="typo-krn",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-var",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="typo-itc",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-fea",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe singular setup",
- ["filename"]="typo-dir",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-mat",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-brk",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "needs occasional checking and upgrading",
+ filename = "font-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-cap",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-sym",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-dig",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-sty",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-rep",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-set",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="maybe there will be a nicer interface",
- ["filename"]="typo-txt",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-emp",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="might get extended",
- ["filename"]="typo-par",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-col",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="type-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "font-pre",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-set",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "font-unk",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="scrp-ini",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "likely this will become a module",
+ filename = "font-tra",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="this module is obsolete",
- ["filename"]="prop-ini",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "this could become a module",
+ filename = "font-chk",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="mlib-ctx",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "this one might be merged",
+ filename = "font-uni",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="metapost code is always evolving",
- ["filename"]="meta-ini",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-col",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-tex",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-gds",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe this one will be merged",
- ["filename"]="meta-fun",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "font-aux",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="might get updated when mp code gets cleaned up",
- ["filename"]="meta-pag",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "this is work in progress",
+ filename = "lxml-css",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-grd",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "spac-chr",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-mrk",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "spac-cha",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-flw",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "work in progress",
+ filename = "blob-ini",
+ loading = "always",
+ status = "pending",
},
{
- ["category"]="mkiv",
- ["filename"]="page-spr",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "trac-vis",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will be made better",
- ["filename"]="page-plg",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "trac-vis",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="needs more work (and thinking)",
- ["filename"]="page-str",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "typo-cln",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="in transition",
- ["filename"]="anch-pgr",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "typo-spa",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["comment"]="in transition",
- ["filename"]="anch-bck",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "do we keep the style and color or not",
+ filename = "typo-krn",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will stay experimental for a while",
- ["filename"]="anch-tab",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "typo-itc",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="anch-bar",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "maybe singular setup",
+ filename = "typo-dir",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="interesting old mechanism to keep around (module?)",
- ["filename"]="anch-snc",
- ["status"]="delayed",
+ category = "mkiv",
+ filename = "typo-brk",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="math-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "typo-cap",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="this file might merge into others",
- ["filename"]="math-pln",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "typo-dig",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="math-for",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "typo-rep",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="eventually this will be split and spread",
- ["filename"]="math-def",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "maybe there will be a nicer interface",
+ filename = "typo-txt",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["commend"]="will be checked and improved",
- ["filename"]="math-ali",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "might get extended",
+ filename = "typo-par",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="needs testing",
- ["filename"]="math-arr",
- ["status"]="okay",
+ category = "mkvi",
+ filename = "type-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="at least for the moment",
- ["filename"]="math-frc",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "type-set",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="math-scr",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "type-def",
+ loading = "type-set",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="math-int",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "type-fbk",
+ loading = "type-set",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="code get replaced (by autodelimiters)",
- ["filename"]="math-del",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "type-lua",
+ loading = "type-set",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="code might move to here",
- ["filename"]="math-inl",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "type-one",
+ loading = "type-set",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="code might move to here",
- ["filename"]="math-dis",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "type-otf",
+ loading = "type-set",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="phys-dim",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "type-siz",
+ loading = "type-set",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="some more functionality will end up here",
- ["filename"]="strc-mat",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "type-tmf",
+ loading = "never",
+ status = "okay",
+ comment = "placeholder to prevent other loading",
},
{
- ["category"]="mkiv",
- ["filename"]="chem-ini",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "scrp-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="chem-str",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "this module is obsolete",
+ filename = "prop-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-scr",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "mlib-ctx",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="maybe some cleanup is needed",
- ["filename"]="node-rul",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "metapost code is always evolving",
+ filename = "meta-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="needs testing",
- ["filename"]="font-sol",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "meta-tex",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="strc-not",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "maybe this one will be merged",
+ filename = "meta-fun",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will be extended as part of crited",
- ["filename"]="strc-lnt",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "might get updated when mp code gets cleaned up",
+ filename = "meta-pag",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="pack-com",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "meta-grd",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="typo-del",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-mrk",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="grph-trf",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-flw",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="grph-inc",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "page-spr",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="grph-fig",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will be made better",
+ filename = "page-plg",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="grph-raw",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "needs more work (and thinking)",
+ filename = "page-str",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="pack-box",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "in transition",
+ filename = "anch-pgr",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="pack-bar",
- ["status"]="okay",
+ category = "mkvi",
+ comment = "in transition",
+ filename = "anch-bck",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="page-app",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will stay experimental for a while",
+ filename = "anch-tab",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-fig",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "anch-bar",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="more or less obsolete",
- ["filename"]="lang-spa",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "interesting old mechanism to keep around (module?)",
+ filename = "anch-snc",
+ loading = "always",
+ status = "pending",
},
{
- ["category"]="mkiv",
- ["filename"]="bibl-bib",
- ["status"]="delayed",
+ category = "mkiv",
+ filename = "math-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="bibl-tra",
- ["status"]="delayed",
+ category = "mkiv",
+ comment = "this file might merge into others",
+ filename = "math-pln",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="not needed",
- ["filename"]="meta-xml",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "math-for",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-log",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "eventually this will be split and spread",
+ filename = "math-def",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="task-ini",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "will be checked and improved",
+ filename = "math-ali",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="cldf-ver",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "needs testing",
+ filename = "math-arr",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="cldf-com",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "at least for the moment",
+ filename = "math-frc",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="core-ctx",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "math-scr",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="will always be messy",
- ["filename"]="core-def",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "math-int",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="object related code might move or change",
- ["filename"]="back-pdf",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "code get replaced (by autodelimiters)",
+ filename = "math-del",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="mlib-pdf",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "code might move to here",
+ filename = "math-inl",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="mlib-pps",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "code might move to here",
+ filename = "math-dis",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-pdf",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "phys-dim",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="might need more work",
- ["filename"]="grph-epd",
- ["status"]="okay",
+ category = "mkiv",
+ comment = "some more functionality will end up here",
+ filename = "strc-mat",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["comment"]="some parameters might move from export to backend",
- ["filename"]="back-exp",
- ["status"]="okay",
+ category = "mkiv",
+ filename = "chem-ini",
+ loading = "always",
+ status = "okay",
},
- },
- ["extras"]={
{
- ["category"]="tex",
- ["filename"]="mtx-context-arrange",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "chem-str",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="mtx-context-combine",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "typo-scr",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="mtx-context-common",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "maybe some cleanup is needed",
+ filename = "node-rul",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="mtx-context-ideas",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "needs testing",
+ filename = "font-sol",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="mtx-context-listing",
- ["status"]="todo",
+ category = "mkvI",
+ filename = "strc-not",
+ loading = "always",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="mtx-context-markdown",
- ["status"]="todo",
+ category = "mkvi",
+ comment = "will be extended as part of crited",
+ filename = "strc-lnt",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="mtx-context-select",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "pack-com",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="mtx-context-timing",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "typo-del",
+ loading = "always",
+ status = "okay",
},
- },
- ["implementations"]={
{
- ["category"]="mkiv",
- ["filename"]="buff-imp-default",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "grph-trf",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="buff-imp-escaped",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "grph-inc",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="buff-imp-nested",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "grph-fig",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="colo-imp-dem",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "grph-raw",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="colo-imp-ema",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "pack-box",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="colo-imp-rgb",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "pack-bar",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="colo-imp-x11",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "page-app",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="colo-imp-xwi",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-fig",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="java-imp-exa",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "more or less obsolete",
+ filename = "lang-spa",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="java-imp-fil",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "bibl-bib",
+ loading = "always",
+ status = "pending",
},
{
- ["category"]="mkiv",
- ["filename"]="java-imp-fld",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "bibl-tra",
+ loading = "always",
+ status = "pending",
},
{
- ["category"]="mkiv",
- ["filename"]="java-imp-rhh",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "not needed",
+ filename = "meta-xml",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="java-imp-stp",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "cont-log",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-imp-clp",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "task-ini",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-imp-dum",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "cldf-ver",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-imp-fen",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "cldf-com",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-imp-mis",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "core-ctx",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-imp-nav",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "will always be messy",
+ filename = "core-def",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-imp-pre",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "object related code might move or change",
+ filename = "back-pdf",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-imp-txt",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "back-swf",
+ loading = "never",
+ status = "okay",
+ comment = "no code, just an example of usage",
},
{
- ["category"]="mkiv",
- ["filename"]="symb-imp-cow",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "back-u3d",
+ loading = "never",
+ status = "okay",
+ comment = "no code, just an example of usage",
},
{
- ["category"]="mkiv",
- ["filename"]="symb-imp-eur",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "mlib-pdf",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="symb-imp-jmn",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "mlib-pps",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="symb-imp-mis",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-pdf",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="symb-imp-mvs",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "might need more work",
+ filename = "grph-epd",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="symb-imp-nav",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "some parameters might move from export to backend",
+ filename = "back-exp",
+ loading = "always",
+ status = "okay",
},
+ },
+ extras = {
{
- ["category"]="mkiv",
- ["filename"]="type-imp-antykwa",
- ["status"]="todo",
+ category = "tex",
+ comment = "add-on for mtx-context",
+ filename = "mtx-context-arrange",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-antykwapoltawskiego",
- ["status"]="todo",
+ category = "tex",
+ comment = "add-on for mtx-context",
+ filename = "mtx-context-combine",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-asana",
- ["status"]="todo",
+ category = "tex",
+ comment = "add-on for mtx-context",
+ filename = "mtx-context-common",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-averia",
- ["status"]="todo",
+ category = "tex",
+ comment = "add-on for mtx-context",
+ filename = "mtx-context-ideas",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-buy",
- ["status"]="todo",
+ category = "tex",
+ comment = "add-on for mtx-context",
+ filename = "mtx-context-listing",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-cambria",
- ["status"]="todo",
+ category = "tex",
+ comment = "add-on for mtx-context",
+ filename = "mtx-context-markdown",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-charter",
- ["status"]="todo",
+ category = "tex",
+ comment = "add-on for mtx-context",
+ filename = "mtx-context-select",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-cleartype",
- ["status"]="todo",
+ category = "tex",
+ comment = "add-on for mtx-context",
+ filename = "mtx-context-timing",
+ loading = "on demand",
+ status = "okay",
},
+ },
+ implementations = {
{
- ["category"]="mkiv",
- ["filename"]="type-imp-computer-modern-unicode",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "colo-imp-dem",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-cow",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "colo-imp-ema",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-dejavu",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "colo-imp-rgb",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-euler",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "colo-imp-x11",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-ghz",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "colo-imp-xwi",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-hgz",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "java-imp-exa",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-husayni",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "java-imp-fil",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-hvmath",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "java-imp-fld",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-inconsolata",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "java-imp-rhh",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-informal",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "java-imp-stp",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-iwona",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-imp-clp",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-kurier",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-imp-dum",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-latinmodern",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-imp-fen",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-liberation",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-imp-mis",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-libertine",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-imp-nav",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-lmnames",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-imp-pre",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-lucida-opentype",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-imp-txt",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-lucida-typeone",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "symb-imp-cow",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-mathdesign",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "symb-imp-eur",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-mathtimes",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "symb-imp-jmn",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-mscore",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "symb-imp-mis",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-osx",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "symb-imp-mvs",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-postscript",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "symb-imp-nav",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-punknova",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-antykwa",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-texgyre",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-antykwapoltawskiego",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-unfonts",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-asana",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-xits",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-averia",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-imp-xitsbidi",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-buy",
+ loading = "on demand",
+ status = "okay",
},
- },
- ["lua"]={
{
- ["category"]="lua",
- ["filename"]="anch-pgr",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-cambria",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="anch-pos",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-charter",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="attr-col",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-cleartype",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="attr-eff",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-computer-modern-unicode",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="attr-ini",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-cow",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="attr-lay",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-dejavu",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="attr-neg",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-euler",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="back-exp",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-ghz",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="back-ini",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-hgz",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="back-pdf",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-husayni",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="bibl-bib",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-hvmath",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="bibl-tra",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-inconsolata",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="bibl-tst",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-informal",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="blob-ini",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-iwona",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-imp-default",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-kurier",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-imp-escaped",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-latinmodern",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-imp-lua",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-liberation",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-imp-mp",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-libertine",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-imp-nested",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-lmnames",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-imp-parsed-xml",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-lucida-opentype",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-imp-tex",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-lucida-typeone",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-imp-xml",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-mathdesign",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-ini",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-mathtimes",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-par",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-mscore",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="buff-ver",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-osx",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="catc-ini",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-postscript",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="char-cjk",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-punknova",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="char-def",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-texgyre",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="char-enc",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-unfonts",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="char-ent",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-xits",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="char-ini",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-imp-xitsbidi",
+ loading = "on demand",
+ status = "okay",
},
+ },
+ lua = {
{
- ["category"]="lua",
- ["filename"]="char-map",
- ["status"]="todo",
+ category = "lua",
+ filename = "anch-pgr",
+ loading = "anch-pgr",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="char-tex",
- ["status"]="todo",
+ category = "lua",
+ filename = "anch-pos",
+ loading = "anch-pos",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="char-utf",
- ["status"]="todo",
+ category = "lua",
+ filename = "attr-col",
+ loading = "attr-col",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="chem-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "attr-eff",
+ loading = "attr-eff",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="chem-str",
- ["status"]="todo",
+ category = "lua",
+ filename = "attr-ini",
+ loading = "attr-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="cldf-bas",
- ["status"]="todo",
+ category = "lua",
+ filename = "attr-lay",
+ loading = "attr-lay",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="cldf-com",
- ["status"]="todo",
+ category = "lua",
+ filename = "attr-neg",
+ loading = "attr-neg",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="cldf-ini",
- ["status"]="todo",
+ category = "lua",
+ comment = "experimental code, maybe some will move elsewhere",
+ filename = "back-exp",
+ loading = "back-exp",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="cldf-int",
- ["status"]="todo",
+ category = "lua",
+ filename = "back-ini",
+ loading = "back-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="cldf-ver",
- ["status"]="todo",
+ category = "lua",
+ filename = "back-pdf",
+ loading = "back-pdf",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="colo-icc",
- ["status"]="todo",
+ category = "lua",
+ filename = "bibl-bib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="colo-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "bibl-tra",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="colo-run",
- ["status"]="todo",
+ category = "lua",
+ filename = "bibl-tst",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="core-con",
- ["status"]="todo",
+ category = "lua",
+ filename = "blob-ini",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="core-ctx",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-imp-default",
+ loading = "buff-imp-default",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="core-dat",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-imp-escaped",
+ loading = "buff-imp-escaped",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="core-env",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-imp-lua",
+ loading = "buff-imp-lua",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="core-sys",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-imp-mp",
+ loading = "buff-imp-mp",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="core-two",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-imp-nested",
+ loading = "buff-imp-nested",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="core-uti",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-imp-parsed-xml",
+ loading = "buff-imp-parsed-xml",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-aux",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-imp-tex",
+ loading = "buff-imp-tex",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-bin",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-imp-xml",
+ loading = "buff-imp-xml",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-con",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-ini",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="data-crl",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-par",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="data-ctx",
- ["status"]="todo",
+ category = "lua",
+ filename = "buff-ver",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="data-env",
- ["status"]="todo",
+ category = "lua",
+ filename = "catc-ini",
+ loading = "catc-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-exp",
- ["status"]="todo",
+ category = "lua",
+ filename = "char-cjk",
+ loading = "char-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-fil",
- ["status"]="todo",
+ category = "lua",
+ filename = "char-def",
+ loading = "char-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-gen",
- ["status"]="todo",
+ category = "lua",
+ comment = "maybe dataonly",
+ filename = "char-enc",
+ loading = "char-enc",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "char-ent",
+ loading = "char-ent",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-inp",
- ["status"]="todo",
+ category = "lua",
+ comment = "maybe move blocks table to separate (dataonly) file",
+ filename = "char-ini",
+ loading = "char-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-lst",
- ["status"]="todo",
+ category = "lua",
+ filename = "char-map",
+ loading = "char-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-lua",
- ["status"]="todo",
+ category = "lua",
+ filename = "char-tex",
+ loading = "char-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-met",
- ["status"]="todo",
+ category = "lua",
+ filename = "char-utf",
+ loading = "char-utf",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-out",
- ["status"]="todo",
+ category = "lua",
+ filename = "chem-ini",
+ loading = "chem-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-pre",
- ["status"]="todo",
+ category = "lua",
+ filename = "chem-str",
+ loading = "chem-str",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-res",
- ["status"]="todo",
+ category = "lua",
+ comment = "will be extended and can be optimized if needed",
+ filename = "cldf-bas",
+ loading = "cldf-bas",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-sch",
- ["status"]="todo",
+ category = "lua",
+ comment = "might change or even go away",
+ filename = "cldf-com",
+ loading = "cldf-com",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-tex",
- ["status"]="todo",
+ category = "lua",
+ filename = "cldf-ini",
+ loading = "cldf-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-tmf",
- ["status"]="todo",
+ category = "lua",
+ filename = "cldf-int",
+ loading = "cldf-int",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="data-tmp",
- ["status"]="todo",
+ category = "lua",
+ comment = "maybe this code can be redone more efficiently/robust",
+ filename = "cldf-ver",
+ loading = "cldf-ver",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="data-tre",
- ["status"]="todo",
+ category = "lua",
+ comment = "also used in mtx-*",
+ filename = "colo-icc",
+ loading = "colo-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-use",
- ["status"]="todo",
+ category = "lua",
+ filename = "colo-ini",
+ loading = "colo-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-vir",
- ["status"]="todo",
+ category = "lua",
+ comment = "this code might move to a module",
+ filename = "colo-run",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="data-zip",
- ["status"]="todo",
+ category = "lua",
+ filename = "core-con",
+ loading = "core-con",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="file-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "core-ctx",
+ loading = "core-ctx",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="file-job",
- ["status"]="todo",
+ category = "lua",
+ filename = "core-dat",
+ loading = "core-dat",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="file-lib",
- ["status"]="todo",
+ category = "lua",
+ comment = "maybe abusing the tex namespace is wrong",
+ filename = "core-env",
+ loading = "core-env",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="file-mod",
- ["status"]="todo",
+ category = "lua",
+ filename = "core-sys",
+ loading = "core-sys",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="file-res",
- ["status"]="todo",
+ category = "lua",
+ commands = "this is in fact replaced by core-dat",
+ filename = "core-two",
+ loading = "core-two",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="file-syn",
- ["status"]="todo",
+ category = "lua",
+ comment = "some code will move to better places",
+ filename = "core-uti",
+ loading = "core-uti",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="font-afm",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-aux",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-age",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-bin",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-agl",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-con",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-aux",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-crl",
+ loading = "never",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-chk",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-ctx",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-cid",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-env",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-col",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-exp",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-con",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-fil",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-ctx",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-gen",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-def",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-ini",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-enc",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-inp",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-enh",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-lst",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-ext",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-lua",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-fbk",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-met",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-gds",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-out",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-pre",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-ldr",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-res",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-log",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-sch",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-lua",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-tex",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-map",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-tmf",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-mis",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-tmp",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-ota",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-tre",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-otb",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-use",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-otc",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-vir",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-otd",
- ["status"]="todo",
+ category = "lua",
+ filename = "data-zip",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="font-otf",
- ["status"]="todo",
+ category = "lua",
+ filename = "file-ini",
+ loading = "file-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-oth",
- ["status"]="todo",
+ category = "lua",
+ filename = "file-job",
+ loading = "file-job",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-oti",
- ["status"]="todo",
+ category = "lua",
+ filename = "file-lib",
+ loading = "file-lib",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-otn",
- ["status"]="todo",
+ category = "lua",
+ filename = "file-mod",
+ loading = "file-mod",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-otp",
- ["status"]="todo",
+ category = "lua",
+ filename = "file-res",
+ loading = "file-res",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-ott",
- ["status"]="todo",
+ category = "lua",
+ filename = "file-syn",
+ loading = "file-syn",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-pat",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-afm",
+ loading = "font-lib",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-sol",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-afk",
+ loading = "font-lib",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-syn",
- ["status"]="todo",
+ category = "lua",
+ comment = "only used in luatex-fonts",
+ filename = "font-age",
+ loading = "never",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-tfm",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-agl",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="font-vf",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-aux",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="grph-epd",
- ["status"]="todo",
+ category = "lua",
+ comment = "move more to the commands namespace",
+ filename = "font-chk",
+ loading = "font-chk",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="grph-fil",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-cid",
+ loading = "font-lib",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="grph-inc",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-col",
+ loading = "font-col",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="grph-raw",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-con",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="grph-swf",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-ctx",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="grph-u3d",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-def",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="grph-wnd",
- ["status"]="todo",
+ category = "lua",
+ comment = "part of this code is obsolete",
+ filename = "font-enc",
+ loading = "font-lib",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="java-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-enh",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-boolean",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-ext",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-dir",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-fbk",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-file",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-gds",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-io",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-ini",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-lpeg",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-ldr",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="l-math",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-log",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-md5",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-lua",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-number",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-map",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-os",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-mis",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="l-pdfview",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-ota",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-set",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-otb",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-string",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-otc",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-table",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-otd",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-unicode",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-otf",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-url",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-oth",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="l-xml",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-oti",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lang-def",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-otn",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lang-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-otp",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lang-lab",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-ott",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lang-txt",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-pat",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lang-url",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-sol",
+ loading = "font-sol",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="lang-wrd",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-syn",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="layo-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-tfm",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-ano",
- ["status"]="todo",
+ category = "lua",
+ filename = "font-vf",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-col",
- ["status"]="todo",
+ category = "lua",
+ filename = "grph-epd",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-enc",
- ["status"]="todo",
+ category = "lua",
+ filename = "grph-fil",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-epa",
- ["status"]="todo",
+ category = "lua",
+ filename = "grph-inc",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-epd",
- ["status"]="todo",
+ category = "lua",
+ filename = "grph-raw",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-fld",
- ["status"]="todo",
+ category = "lua",
+ filename = "grph-swf",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-fmt",
- ["status"]="todo",
+ category = "lua",
+ filename = "grph-u3d",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-grp",
- ["status"]="todo",
+ category = "lua",
+ filename = "grph-wnd",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "java-ini",
+ loading = "java-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-mis",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-boolean",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-mov",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-dir",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-nod",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-file",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-ren",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-io",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-swf",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-lpeg",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-tag",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-math",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-u3d",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-md5",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-wid",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-number",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lpdf-xmp",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-os",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="luat-bwc",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-pdfview",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="luat-cbk",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-set",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="luat-cnf",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-string",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="luat-cod",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-table",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="luat-env",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-unicode",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="luat-exe",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-url",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="luat-fio",
- ["status"]="todo",
+ category = "lua",
+ filename = "l-xml",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="luat-fmt",
- ["status"]="todo",
+ category = "lua",
+ filename = "lang-def",
+ loading = "lang-def",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="luat-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "lang-ini",
+ loading = "lang-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="luat-iop",
- ["status"]="todo",
+ category = "lua",
+ filename = "lang-lab",
+ loading = "lang-lab",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="luat-lua",
- ["status"]="todo",
+ category = "lua",
+ filename = "lang-txt",
+ loading = "lang-lab",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="luat-mac",
- ["status"]="todo",
+ category = "lua",
+ comment = "maybe another approach is nicer",
+ filename = "lang-url",
+ loading = "lang-url",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="luat-run",
- ["status"]="todo",
+ category = "lua",
+ filename = "lang-wrd",
+ loading = "lang-wrd",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="luat-soc",
- ["status"]="todo",
+ category = "lua",
+ comment = "more will end up here",
+ filename = "layo-ini",
+ loading = "layo-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="luat-sta",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-ano",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="luat-sto",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-col",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-aux",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-enc",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-css",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-epa",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-ctx",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-epd",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-dir",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-fld",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-ent",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-fmt",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-inf",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-grp",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-lpt",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-ini",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-mis",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-mis",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-sor",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-mov",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-tab",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-nod",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-tex",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-ren",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="lxml-xml",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-swf",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="m-chart",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-tag",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="m-database",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-u3d",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="m-markdown",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-wid",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="m-pstricks",
- ["status"]="todo",
+ category = "lua",
+ filename = "lpdf-xmp",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="m-spreadsheet",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-bwc",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="m-steps",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-cbk",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-act",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-cnf",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-dim",
- ["status"]="todo",
+ category = "lua",
+ comment = "maybe some code should move",
+ filename = "luat-cod",
+ loading = "luat-cod",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-ext",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-env",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-fbk",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-exe",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-fio",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-map",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-fmt",
+ loading = "on demand",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-noa",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-ini",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-ren",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-iop",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-tag",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-lua",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-ttv",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-mac",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="math-vfu",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-run",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="meta-fun",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-soc",
+ loading = "on demand",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="meta-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-sta",
+ loading = "on demand",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="meta-pdf",
- ["status"]="todo",
+ category = "lua",
+ filename = "luat-sto",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="meta-pdh",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-aux",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="meta-tex",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-css",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mlib-ctx",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-ctx",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mlib-pdf",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-dir",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mlib-pps",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-ent",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mlib-run",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-inf",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mult-aux",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-lpt",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mult-chk",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-mis",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mult-def",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-sor",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mult-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-tab",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mult-low",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-tex",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mult-mes",
- ["status"]="todo",
+ category = "lua",
+ filename = "lxml-xml",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mult-mps",
- ["status"]="todo",
+ category = "lua",
+ filename = "m-chart",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="mult-prm",
- ["status"]="todo",
+ category = "lua",
+ filename = "m-database",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="node-acc",
- ["status"]="todo",
+ category = "lua",
+ filename = "m-markdown",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="node-aux",
- ["status"]="todo",
+ category = "lua",
+ filename = "m-pstricks",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="node-bck",
- ["status"]="todo",
+ category = "lua",
+ filename = "m-spreadsheet",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="node-dir",
- ["status"]="todo",
+ category = "lua",
+ filename = "m-steps",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="node-ext",
- ["status"]="todo",
+ category = "lua",
+ filename = "math-act",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-fin",
- ["status"]="todo",
+ category = "lua",
+ comment = "could be made look nicer, but who cares",
+ filename = "math-dim",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-fnt",
- ["status"]="todo",
+ category = "lua",
+ comment = "the code is related to math-vfu",
+ filename = "math-ext",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "math-fbk",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-inj",
- ["status"]="todo",
+ category = "lua",
+ comment = "okay, but we might have a few more low level definers some day",
+ filename = "math-ini",
+ loading = "math-ini",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="node-mig",
- ["status"]="todo",
+ category = "lua",
+ filename = "math-map",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-pag",
- ["status"]="todo",
+ category = "lua",
+ filename = "math-noa",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-pro",
- ["status"]="todo",
+ category = "lua",
+ filename = "math-ren",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-ref",
- ["status"]="todo",
+ category = "lua",
+ filename = "math-tag",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-res",
- ["status"]="todo",
+ category = "lua",
+ filename = "math-ttv",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-rul",
- ["status"]="todo",
+ category = "lua",
+ filename = "math-vfu",
+ loading = "math-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-ser",
- ["status"]="todo",
+ category = "lua",
+ comment = "this is just a first version",
+ filename = "meta-fun",
+ loading = "meta-fun",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-shp",
- ["status"]="todo",
+ category = "lua",
+ filename = "meta-ini",
+ loading = "meta-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-tex",
- ["status"]="todo",
+ category = "lua",
+ comment = "could be done nicer nowadays but who needs it",
+ filename = "meta-pdf",
+ loading = "meta-pdf",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-tra",
- ["status"]="todo",
+ category = "lua",
+ filename = "meta-pdh",
+ loading = "meta-pdh",
+ status = "okay",
+ loading = "never",
+ comment = "this is historic code that we keep around",
},
{
- ["category"]="lua",
- ["filename"]="node-tsk",
- ["status"]="todo",
+ category = "lua",
+ filename = "meta-tex",
+ loading = "meta-tex",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-tst",
- ["status"]="todo",
+ category = "lua",
+ filename = "mlib-ctx",
+ loading = "mlib-ctx",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="node-typ",
- ["status"]="todo",
+ category = "lua",
+ filename = "mlib-pdf",
+ loading = "mlib-pdf",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="pack-obj",
- ["status"]="todo",
+ category = "lua",
+ filename = "mlib-pps",
+ loading = "mlib-pdf",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="pack-rul",
- ["status"]="todo",
+ category = "lua",
+ filename = "mlib-run",
+ loading = "mlib-ctx",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="page-flt",
- ["status"]="todo",
+ category = "lua",
+ comment = "this is an experiment, namespaces need to be dealt with properly",
+ filename = "mult-aux",
+ loading = "mult-aux",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="page-ins",
- ["status"]="todo",
+ category = "lua",
+ comment = "this is an experiment",
+ filename = "mult-chk",
+ loading = "mult-chk",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="page-lin",
- ["status"]="todo",
+ category = "lua",
+ filename = "mult-def",
+ loading = "mult-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="page-mix",
- ["status"]="todo",
+ category = "lua",
+ comment = "used for generating editor lexing files",
+ filename = "mult-fun",
+ loading = "never",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="page-pst",
- ["status"]="todo",
+ category = "lua",
+ filename = "mult-ini",
+ loading = "mult-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="page-str",
- ["status"]="todo",
+ category = "lua",
+ comment = "used for generating editor lexing files",
+ filename = "mult-low",
+ loading = "never",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="phys-dim",
- ["status"]="todo",
+ category = "lua",
+ comment = "all messages need to be checked",
+ filename = "mult-mes",
+ loading = "mult-ini",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-1",
- ["status"]="todo",
+ category = "lua",
+ comment = "used for generating editor lexing files",
+ filename = "mult-mps",
+ loading = "never",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-10",
- ["status"]="todo",
+ category = "lua",
+ comment = "used for generating editor lexing files",
+ filename = "mult-prm",
+ loading = "never",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-11",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-acc",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-13",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-aux",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-14",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-bck",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-15",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-dir",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-16",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-ext",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-2",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-fin",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-3",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-fnt",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-4",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-ini",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-5",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-inj",
+ loading = "font-lib",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-6",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-mig",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-7",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-pag",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-8",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-pro",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-8859-9",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-ref",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-cp1250",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-res",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-cp1251",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-rul",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-cp1252",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-ser",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-cp1253",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-shp",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-cp1254",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-tex",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-cp1255",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-tra",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-cp1256",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-tsk",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-cp1257",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-tst",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-cp1258",
- ["status"]="todo",
+ category = "lua",
+ filename = "node-typ",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="regi-demo",
- ["status"]="todo",
+ category = "lua",
+ comment = "will be extended when we have opened up pdf objects",
+ filename = "pack-obj",
+ loading = "pack-obj",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="regi-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "pack-rul",
+ loading = "pack-rul",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="s-fonts-tables",
- ["status"]="todo",
+ category = "lua",
+ filename = "page-flt",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="s-pre-71",
- ["status"]="todo",
+ category = "lua",
+ filename = "page-ins",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="scrn-but",
- ["status"]="todo",
+ category = "lua",
+ filename = "page-lin",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="scrn-fld",
- ["status"]="todo",
+ category = "lua",
+ filename = "page-mix",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="scrn-hlp",
- ["status"]="todo",
+ category = "lua",
+ filename = "page-pst",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="scrn-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "page-str",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="scrn-pag",
- ["status"]="todo",
+ category = "lua",
+ filename = "phys-dim",
+ loading = "phys-dim",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="scrn-ref",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-1",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="scrn-wid",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-10",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="scrp-cjk",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-11",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="scrp-eth",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-13",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="scrp-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-14",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="sort-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-15",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="sort-lan",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-16",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="spac-adj",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-2",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="spac-ali",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-3",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="spac-chr",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-4",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="spac-hor",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-5",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="spac-ver",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-6",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="status-mkiv",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-7",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-bkm",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-8",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-blk",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-8859-9",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-con",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-cp1250",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-doc",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-cp1251",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-flt",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-cp1252",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-cp1253",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-itm",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-cp1254",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-lev",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-cp1255",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-lst",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-cp1256",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-mar",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-cp1257",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-mat",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-cp1258",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-not",
- ["status"]="todo",
+ category = "lua",
+ comment = "just a demo file",
+ filename = "regi-demo",
+ loading = "never",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-num",
- ["status"]="todo",
+ category = "lua",
+ filename = "regi-ini",
+ loading = "regi-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="strc-pag",
- ["status"]="todo",
+ category = "lua",
+ filename = "s-fonts-tables",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="strc-ref",
- ["status"]="todo",
+ category = "lua",
+ filename = "s-pre-71",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="strc-reg",
- ["status"]="todo",
+ category = "lua",
+ filename = "scrn-but",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="strc-rsc",
- ["status"]="todo",
+ category = "lua",
+ filename = "scrn-fld",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="strc-syn",
- ["status"]="todo",
+ category = "lua",
+ filename = "scrn-hlp",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="strc-tag",
- ["status"]="todo",
+ category = "lua",
+ filename = "scrn-ini",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="supp-box",
- ["status"]="todo",
+ category = "lua",
+ filename = "scrn-pag",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="supp-ran",
- ["status"]="todo",
+ category = "lua",
+ filename = "scrn-ref",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="symb-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "scrn-wid",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="syst-aux",
- ["status"]="todo",
+ category = "lua",
+ comment = "we can speed this up",
+ filename = "scrp-cjk",
+ loading = "scrp-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="syst-con",
- ["status"]="todo",
+ category = "lua",
+ comment = "we can speed this up",
+ filename = "scrp-eth",
+ loading = "scrp-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="syst-lua",
- ["status"]="todo",
+ category = "lua",
+ filename = "scrp-ini",
+ loading = "scrp-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="tabl-tbl",
- ["status"]="todo",
+ category = "lua",
+ filename = "sort-ini",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="tabl-xtb",
- ["status"]="todo",
+ category = "lua",
+ filename = "sort-lan",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="task-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "spac-adj",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="toks-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "spac-ali",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-ctx",
- ["status"]="todo",
+ category = "lua",
+ filename = "spac-chr",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-deb",
- ["status"]="todo",
+ category = "lua",
+ filename = "spac-hor",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-fil",
- ["status"]="todo",
+ category = "lua",
+ filename = "spac-ver",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-inf",
- ["status"]="todo",
+ category = "lua",
+ filename = "status-mkiv",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-lmx",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-bkm",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-log",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-blk",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-pro",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-con",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-set",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-doc",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-tex",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-flt",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-tim",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-ini",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="trac-vis",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-itm",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="type-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-lev",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-bld",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-lst",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-brk",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-mar",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-cap",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-mat",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-cln",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-not",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-dig",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-num",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-dir",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-pag",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-ini",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-ref",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-itc",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-reg",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-krn",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-rsc",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-mar",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-syn",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-pag",
- ["status"]="todo",
+ category = "lua",
+ filename = "strc-tag",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="typo-par",
- ["status"]="todo",
+ category = "lua",
+ filename = "supp-box",
+ loading = "supp-box",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="typo-prc",
- ["status"]="todo",
+ category = "lua",
+ filename = "supp-ran",
+ loading = "supp-ran",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="typo-rep",
- ["status"]="todo",
+ category = "lua",
+ filename = "symb-ini",
+ loading = "symb-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="typo-spa",
- ["status"]="todo",
+ category = "lua",
+ comment = "there will be more in here",
+ filename = "syst-aux",
+ loading = "syst-aux",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="unic-ini",
- ["status"]="todo",
+ category = "lua",
+ comment = "do some tests with speedups (sprint)",
+ filename = "syst-con",
+ loading = "syst-con",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="util-deb",
- ["status"]="todo",
+ category = "lua",
+ comment = "do some tests with speedups (less tokens)",
+ filename = "syst-lua",
+ loading = "syst-lua",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="util-dim",
- ["status"]="todo",
+ category = "lua",
+ filename = "tabl-tbl",
+ loading = "tabl-tbl",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="util-fmt",
- ["status"]="todo",
+ category = "lua",
+ comment = "work in progress",
+ filename = "tabl-xtb",
+ loading = "tabl-xtb",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="util-lua",
- ["status"]="todo",
+ category = "lua",
+ comment = "we need a well defined defintion moment",
+ filename = "task-ini",
+ loading = "task-ini",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="util-mrg",
- ["status"]="todo",
+ category = "lua",
+ filename = "toks-ini",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="util-pck",
- ["status"]="todo",
+ category = "lua",
+ comment = "must be applied in more places",
+ filename = "trac-ctx",
+ loading = "trac-ctx",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="util-prs",
- ["status"]="todo",
+ category = "lua",
+ filename = "trac-deb",
+ loading = "trac-deb",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="util-seq",
- ["status"]="todo",
+ category = "lua",
+ comment = "for the moment somewhat private",
+ filename = "trac-fil",
+ loading = "never",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="util-sta",
- ["status"]="todo",
+ category = "lua",
+ filename = "trac-inf",
+ loading = "luat-lib",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="util-sto",
- ["status"]="todo",
+ category = "lua",
+ comment = "will be redone and extended",
+ filename = "trac-lmx",
+ loading = "trac-lmx",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="util-str",
- ["status"]="todo",
+ category = "lua",
+ filename = "trac-log",
+ loading = "luat-lib",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="util-tab",
- ["status"]="todo",
+ category = "lua",
+ comment = "experimental code, will be redone when lua 5.2",
+ filename = "trac-pro",
+ loading = "luat-lib",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="x-asciimath",
- ["status"]="todo",
+ category = "lua",
+ comment = "some code can better be in util-set",
+ filename = "trac-set",
+ loading = "luat-lib",
+ status = "pending",
},
{
- ["category"]="lua",
- ["filename"]="x-calcmath",
- ["status"]="todo",
+ category = "lua",
+ filename = "trac-tex",
+ loading = "trac-tex",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="x-cals",
- ["status"]="todo",
+ category = "lua",
+ filename = "trac-tim",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="x-chemml",
- ["status"]="todo",
+ category = "lua",
+ filename = "trac-vis",
+ loading = "trac-vis",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="x-ct",
- ["status"]="todo",
+ category = "lua",
+ filename = "type-ini",
+ loading = "type-ini",
+ status = "okay",
},
{
- ["category"]="lua",
- ["filename"]="x-ldx",
- ["status"]="todo",
+ category = "lua",
+ filename = "typo-bld",
+ status = "todo",
},
{
- ["category"]="lua",
- ["filename"]="x-mathml",
- ["status"]="todo",
+ category = "lua",
+ filename = "typo-brk",
+ status = "todo",
},
- },
- ["metafun"]={
{
- ["category"]="mpiv",
- ["comment"]="maybe more delayed loading",
- ["filename"]="metafun",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-cap",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-base",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-cln",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-tool",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-dig",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-mlib",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-dir",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["comment"]="sort of obsolete",
- ["filename"]="mp-core",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-ini",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["comment"]="maybe some nicer synonyms",
- ["filename"]="mp-page",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-itc",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-butt",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-krn",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-shap",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-mar",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-grph",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-pag",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-grid",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-par",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["comment"]="a hack anyway",
- ["filename"]="mp-form",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-prc",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-figs",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-rep",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-func",
- ["loading"]="always",
- ["status"]="okay",
+ category = "lua",
+ filename = "typo-spa",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-text",
- ["loading"]="demand",
- ["status"]="todo",
+ category = "lua",
+ filename = "unic-ini",
+ loading = "unic-ini",
+ status = "okay",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-crop",
- ["loading"]="demand",
- ["status"]="okay",
+ category = "lua",
+ filename = "util-deb",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["comment"]="follows m-chart",
- ["filename"]="mp-char",
- ["loading"]="demand",
- ["status"]="okay",
+ category = "lua",
+ filename = "util-dim",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["comment"]="follows m-steps",
- ["filename"]="mp-step",
- ["loading"]="demand",
- ["status"]="okay",
+ category = "lua",
+ filename = "util-fmt",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["filename"]="mp-chem",
- ["loading"]="demand",
- ["status"]="okay",
+ category = "lua",
+ filename = "util-lua",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["comment"]="maybe some namespace changes",
- ["filename"]="mp-abck",
- ["loading"]="demand",
- ["status"]="okay",
+ category = "lua",
+ filename = "util-mrg",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["comment"]="maybe some namespace changes",
- ["filename"]="mp-apos",
- ["loading"]="demand",
- ["status"]="okay",
+ category = "lua",
+ filename = "util-pck",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="mpiv",
- ["comment"]="will be done when needed",
- ["filename"]="mp-asnc",
- ["loading"]="demand",
- ["status"]="todo",
+ category = "lua",
+ filename = "util-prs",
+ loading = "luat-lib",
+ status = "todo",
},
- },
- ["modules"]={
{
- ["category"]="mkiv",
- ["filename"]="m-barcodes",
- ["status"]="todo",
+ category = "lua",
+ filename = "util-seq",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["filename"]="m-chart",
- ["status"]="todo",
+ category = "lua",
+ filename = "util-sta",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="m-chemic",
- ["status"]="todo",
+ category = "lua",
+ filename = "util-sto",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="m-cweb",
- ["status"]="todo",
+ category = "lua",
+ filename = "util-str",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="m-database",
- ["status"]="todo",
+ category = "lua",
+ filename = "util-tab",
+ loading = "luat-lib",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="m-datastrc",
- ["status"]="todo",
+ category = "lua",
+ filename = "x-asciimath",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="m-directives",
- ["status"]="todo",
+ category = "lua",
+ filename = "x-calcmath",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="m-educat",
- ["status"]="todo",
+ category = "lua",
+ filename = "x-cals",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="m-fields",
- ["status"]="todo",
+ category = "lua",
+ filename = "x-chemml",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="m-format",
- ["status"]="todo",
+ category = "lua",
+ filename = "x-ct",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="m-graph",
- ["status"]="todo",
+ category = "lua",
+ filename = "x-ldx",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="m-ipsum",
- ["status"]="todo",
+ category = "lua",
+ filename = "x-mathml",
+ status = "todo",
},
+ },
+ metafun = {
{
- ["category"]="tex",
- ["filename"]="m-layout",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-base",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-logcategories",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-tool",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-markdown",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-mlib",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-mathcrap",
- ["status"]="todo",
+ category = "mpiv",
+ comment = "sort of obsolete",
+ filename = "mp-core",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-mkii",
- ["status"]="todo",
+ category = "mpiv",
+ comment = "maybe some nicer synonyms",
+ filename = "mp-page",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-mkivhacks",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-butt",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="m-morse",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-shap",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="m-narrowtt",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-grph",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="m-newmat",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-grid",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-ntb-to-xtb",
- ["status"]="todo",
+ category = "mpiv",
+ comment = "a hack anyway",
+ filename = "mp-form",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-obsolete",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-figs",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-oldfun",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-func",
+ loading = "always",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-oldnum",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-text",
+ loading = "on demand",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="m-pictex",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-crop",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-pstricks",
- ["status"]="todo",
+ category = "mpiv",
+ comment = "follows m-chart",
+ filename = "mp-char",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-punk",
- ["status"]="todo",
+ category = "mpiv",
+ comment = "follows m-steps",
+ filename = "mp-step",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="m-r",
- ["status"]="todo",
+ category = "mpiv",
+ filename = "mp-chem",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-spreadsheet",
- ["status"]="todo",
+ category = "mpiv",
+ comment = "maybe some namespace changes",
+ filename = "mp-abck",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="m-steps",
- ["status"]="todo",
+ category = "mpiv",
+ comment = "maybe some namespace changes",
+ filename = "mp-apos",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="m-streams",
- ["status"]="todo",
+ category = "mpiv",
+ comment = "will be done when needed",
+ filename = "mp-asnc",
+ loading = "on demand",
+ status = "todo",
},
+ },
+ modules = {
{
- ["category"]="tex",
- ["filename"]="m-subsub",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "best use m-zint instead",
+ filename = "m-barcodes",
+ loading = "module",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-timing",
- ["status"]="todo",
+ category = "mkvi",
+ filename = "m-chart",
+ loading = "module",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-trackers",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "this is a placeholder (chemistry is built-in)",
+ filename = "m-chemic",
+ loading = "never",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="m-translate",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-cweb",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="m-units",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-database",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="m-visual",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-datastrc",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="m-zint",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "add-on for mtx-context",
+ filename = "m-directives",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="s-abr-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-educat",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-abr-02",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-fields",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-abr-03",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-format",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-abr-04",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-graph",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-art-01",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-ipsum",
+ loading = "module",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="s-cdr-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-layout",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-def-01",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "add-on for mtx-context",
+ filename = "m-logcategories",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="s-faq-00",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-markdown",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-faq-01",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-mathcrap",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-faq-02",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-mkii",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-faq-03",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-mkivhacks",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-10",
- ["status"]="todo",
+ category = "mkvi",
+ filename = "m-morse",
+ loading = "module",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-11",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-narrowtt",
+ loading = "module",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-20",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-newmat",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-21",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-ntb-to-xtb",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-23",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-obsolete",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-24",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-oldfun",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-26",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-oldnum",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-28",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-pictex",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-29",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-pstricks",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-30",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "keep an eye on changes in lua code",
+ filename = "m-punk",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-31",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-r",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fnt-32",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-spreadsheet",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fonts-missing",
- ["status"]="todo",
+ category = "mkvi",
+ filename = "m-steps",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-fonts-tables",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-streams",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["filename"]="s-inf-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "m-subsub",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-inf-02",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-timing",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="s-inf-03",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "add-on for mtx-context",
+ filename = "m-trackers",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="s-inf-04",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-translate",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="s-lan-03",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-units",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-lan-04",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-visual",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-mag-01",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "m-zint",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="s-map-10",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-abr-01",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-mat-10",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-abr-02",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-mat-11",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-abr-03",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-mat-12",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-abr-04",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-mod-00",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-art-01",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-mod-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-cdr-01",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-mod-02",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-def-01",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-phy-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-faq-00",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-00",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-faq-01",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-faq-02",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-02",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-faq-03",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-03",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-10",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-04",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-11",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-05",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-20",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-06",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-21",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-07",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-23",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-08",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-24",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-09",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-26",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-10",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-28",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-11",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-29",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-12",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-30",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-13",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-31",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-14",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fnt-32",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-15",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fonts-missing",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-16",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-fonts-tables",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-17",
- ["status"]="todo",
+ category = "mkvi",
+ filename = "s-inf-01",
+ status = "okay",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-18",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-inf-02",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-19",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-inf-03",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-22",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-inf-04",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-23",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-lan-03",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-26",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-lan-04",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-27",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-mag-01",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-pre-30",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-map-10",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-50",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-mat-10",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-pre-60",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-mat-11",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-61",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-mat-12",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-62",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-mod-00",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-63",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-mod-01",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-64",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-mod-02",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-66",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-phy-01",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-67",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-00",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-68",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-01",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-pre-69",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-02",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-pre-70",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-03",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-pre-71",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-04",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-93",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-05",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-pre-96",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-06",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-ptj-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-07",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-reg-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-08",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="s-set-31",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-09",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="s-syn-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-10",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-asciimath",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-11",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-calcmath",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-12",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-cals",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-13",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-chemml",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-14",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-ct",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-15",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="x-dir-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-16",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-dir-05",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-17",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-entities",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-18",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-foxet",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-19",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-ldx",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-22",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-mathml",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-23",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-newmml",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-26",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-pfs-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-27",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-physml",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-pre-30",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-res-01",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-50",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-res-50",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-pre-60",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-set-11",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-61",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-set-12",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-62",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-udhr",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-63",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="x-xtag",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-64",
+ status = "todo",
},
- },
- ["optional"]={
{
- ["category"]="mkvi",
- ["filename"]="tabl-xnt",
- ["status"]="okay",
+ category = "tex",
+ filename = "s-pre-66",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="back-swf",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-67",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="back-u3d",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-68",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="bxml-apa",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-pre-69",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="catc-xml",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-pre-70",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="colo-run",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-pre-71",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-cs",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-93",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-de",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-pre-96",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-en",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-ptj-01",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-fr",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-reg-01",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-gb",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "s-set-31",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-it",
- ["status"]="todo",
+ category = "tex",
+ filename = "s-syn-01",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-new",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-asciimath",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-nl",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-calcmath",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-pe",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-cals",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="cont-ro",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-chemml",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="font-run",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-ct",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["filename"]="font-sol",
- ["status"]="todo",
+ category = "tex",
+ filename = "x-dir-01",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["filename"]="font-var",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-dir-05",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="lxml-ctx",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-entities",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="meta-pdh",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-foxet",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="mult-prm",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-ldx",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="node-pag",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-mathml",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="page-run",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-newmml",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="ppchtex",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "pfsense xml configuration rendering",
+ filename = "x-pfs-01",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="spac-adj",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-physml",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["filename"]="strc-con",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-res-01",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["filename"]="strc-des",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-res-50",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["filename"]="strc-enu",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-set-11",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["filename"]="strc-lnt",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-set-12",
+ status = "todo",
},
{
- ["category"]="mkvi",
- ["filename"]="strc-lst",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-udhr",
+ status = "okay",
},
{
- ["category"]="mkvi",
- ["filename"]="strc-not",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "x-xtag",
+ status = "todo",
},
+ },
+ optional = {
{
- ["category"]="mkiv",
- ["filename"]="strc-syn",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "bxml-apa",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="supp-vis",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "colo-run",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="symb-run",
- ["status"]="todo",
+ category = "mkiv",
+ comment = "always needs some work",
+ filename = "cont-new",
+ loading = "runtime",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="trac-vis",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "font-run",
+ loading = "on demand",
+ status = "todo",
},
{
- ["category"]="mkiv",
- ["filename"]="type-def",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "lxml-ctx",
+ status = "okay",
+ comment = "this is an experimental module",
},
{
- ["category"]="mkiv",
- ["filename"]="type-fbk",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "meta-pdh",
+ loading = "never",
+ status = "okay",
+ comment = "this is historic code that we keep around",
},
{
- ["category"]="mkiv",
- ["filename"]="type-lua",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "mult-prm",
+ loading = "never",
+ status = "okay",
+ comment = "this is just a helper for generating files",
},
{
- ["category"]="mkiv",
- ["filename"]="type-one",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "page-run",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-otf",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "spac-adj",
+ loading = "never",
+ status = "obsolete",
},
{
- ["category"]="mkiv",
- ["filename"]="type-run",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "supp-vis",
+ loading = "never",
+ status = "obsolete",
+ comment = "replaced by a more modern variant",
},
{
- ["category"]="mkiv",
- ["filename"]="type-siz",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "symb-run",
+ loading = "on demand",
+ status = "okay",
},
{
- ["category"]="mkiv",
- ["filename"]="type-tmf",
- ["status"]="todo",
+ category = "mkiv",
+ filename = "type-run",
+ loading = "on demand",
+ status = "todo",
},
},
- ["resources"]={
- {
- ["category"]="ori",
- ["filename"]="cont-sys",
- ["status"]="todo",
- },
- {
- ["category"]="lmx",
- ["filename"]="context-base",
- ["status"]="todo",
- },
- {
- ["category"]="lmx",
- ["filename"]="context-characters",
- ["status"]="todo",
- },
- {
- ["category"]="lmx",
- ["filename"]="context-debug",
- ["status"]="todo",
- },
- {
- ["category"]="lmx",
- ["filename"]="context-error",
- ["status"]="todo",
- },
- {
- ["category"]="lmx",
- ["filename"]="context-fonttest",
- ["status"]="todo",
- },
- {
- ["category"]="lmx",
- ["filename"]="context-help",
- ["status"]="todo",
- },
+ resources = {
{
- ["category"]="lmx",
- ["filename"]="context-timing",
- ["status"]="todo",
+ category = "ori",
+ comment = "template for a user configuration file (with suffix mkiv)",
+ filename = "cont-sys",
+ loading = "runtime",
+ status = "okay",
},
{
- ["category"]="pdf",
- ["filename"]="context-version",
- ["status"]="todo",
+ category = "lmx",
+ filename = "context-base",
+ status = "todo",
},
{
- ["category"]="png",
- ["filename"]="context-version",
- ["status"]="todo",
+ category = "lmx",
+ filename = "context-characters",
+ status = "todo",
},
{
- ["category"]="css",
- ["filename"]="context",
- ["status"]="todo",
+ category = "lmx",
+ filename = "context-debug",
+ status = "todo",
},
{
- ["category"]="lus",
- ["filename"]="context",
- ["status"]="todo",
+ category = "lmx",
+ filename = "context-error",
+ status = "todo",
},
{
- ["category"]="rme",
- ["filename"]="context",
- ["status"]="todo",
+ category = "lmx",
+ filename = "context-fonttest",
+ status = "todo",
},
{
- ["category"]="todo",
- ["filename"]="context",
- ["status"]="todo",
+ category = "lmx",
+ filename = "context-help",
+ status = "todo",
},
{
- ["category"]="ctx",
- ["filename"]="core-ctx",
- ["status"]="todo",
+ category = "lmx",
+ filename = "context-timing",
+ status = "todo",
},
{
- ["category"]="css",
- ["filename"]="export-example",
- ["status"]="todo",
+ category = "pdf",
+ filename = "context-version",
+ status = "todo",
},
{
- ["category"]="rng",
- ["filename"]="export-example",
- ["status"]="todo",
+ category = "png",
+ filename = "context-version",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="export-example",
- ["status"]="todo",
+ category = "css",
+ comment = "layout specification for debug and error pages and web services",
+ filename = "context",
+ status = "okay",
},
{
- ["category"]="xml",
- ["filename"]="lang-all",
- ["status"]="todo",
+ category = "rme",
+ comment = "readme file",
+ filename = "context",
+ status = "okay",
},
{
- ["category"]="xml",
- ["filename"]="lpdf-pda",
- ["status"]="todo",
+ category = "ctx",
+ comment = "example of a ctx file (for mtx-context)",
+ filename = "core-ctx",
+ status = "okay",
},
{
- ["category"]="xml",
- ["filename"]="lpdf-pdx",
- ["status"]="todo",
+ category = "css",
+ filename = "export-example",
+ status = "todo",
},
{
- ["category"]="lus",
- ["filename"]="metatex",
- ["status"]="todo",
+ category = "rng",
+ filename = "export-example",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="metatex",
- ["status"]="todo",
+ category = "tex",
+ filename = "export-example",
+ status = "todo",
},
{
- ["category"]="rlx",
- ["filename"]="rlxcache",
- ["status"]="todo",
+ category = "xml",
+ comment = "this file is auto-generated by mtx-language",
+ filename = "lang-all",
+ status = "okay",
},
{
- ["category"]="rlx",
- ["filename"]="rlxtools",
- ["status"]="todo",
+ category = "xml",
+ filename = "lpdf-pda",
+ status = "todo",
},
{
- ["category"]="ctx",
- ["filename"]="s-mod",
- ["status"]="todo",
+ category = "xml",
+ filename = "lpdf-pdx",
+ status = "todo",
},
{
- ["category"]="pdf",
- ["filename"]="status-files",
- ["status"]="todo",
+ category = "rlx",
+ filename = "rlxcache",
+ status = "todo",
},
{
- ["category"]="pdf",
- ["filename"]="status-lua",
- ["status"]="todo",
+ category = "rlx",
+ filename = "rlxtools",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="status-mkiv",
- ["status"]="todo",
+ category = "ctx",
+ filename = "s-mod",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="supp-mis",
- ["status"]="todo",
+ category = "pdf",
+ filename = "status-files",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="supp-mpe",
- ["status"]="todo",
+ category = "pdf",
+ filename = "status-lua",
+ status = "todo",
},
{
- ["category"]="tex",
- ["filename"]="supp-pdf",
- ["status"]="todo",
+ category = "tex",
+ filename = "status-mkiv",
+ status = "todo",
},
{
- ["category"]="xsd",
- ["filename"]="x-chemml",
- ["status"]="todo",
+ category = "xsd",
+ filename = "x-chemml",
+ status = "todo",
},
{
- ["category"]="xsd",
- ["filename"]="x-contml",
- ["status"]="todo",
+ category = "xsd",
+ filename = "x-contml",
+ status = "todo",
},
{
- ["category"]="rng",
- ["filename"]="x-corres",
- ["status"]="todo",
+ category = "rng",
+ filename = "x-corres",
+ status = "todo",
},
{
- ["category"]="dtd",
- ["filename"]="x-fig-00",
- ["status"]="todo",
+ category = "dtd",
+ filename = "x-fig-00",
+ status = "todo",
},
{
- ["category"]="xsd",
- ["filename"]="x-fig-00",
- ["status"]="todo",
+ category = "xsd",
+ filename = "x-fig-00",
+ status = "todo",
},
{
- ["category"]="ctx",
- ["filename"]="x-ldx",
- ["status"]="todo",
+ category = "ctx",
+ filename = "x-ldx",
+ status = "todo",
},
{
- ["category"]="xsd",
- ["filename"]="x-mathml",
- ["status"]="todo",
+ category = "xsd",
+ filename = "x-mathml",
+ status = "todo",
},
{
- ["category"]="xsl",
- ["filename"]="x-om2cml",
- ["status"]="todo",
+ category = "xsl",
+ filename = "x-om2cml",
+ status = "todo",
},
{
- ["category"]="xsl",
- ["filename"]="x-openmath",
- ["status"]="todo",
+ category = "xsl",
+ filename = "x-openmath",
+ status = "todo",
},
{
- ["category"]="ctx",
- ["filename"]="x-pfsense",
- ["status"]="todo",
+ category = "ctx",
+ comment = "runner for x-pfs-01",
+ filename = "x-pfsense",
+ status = "okay",
},
{
- ["category"]="xsd",
- ["filename"]="x-physml",
- ["status"]="todo",
+ category = "xsd",
+ filename = "x-physml",
+ status = "todo",
},
{
- ["category"]="xsl",
- ["filename"]="x-sm2om",
- ["status"]="todo",
+ category = "xsl",
+ filename = "x-sm2om",
+ status = "todo",
},
},
}
diff --git a/tex/context/base/status-mkiv.tex b/tex/context/base/status-mkiv.tex
index 6e27a931a..c221b1d55 100644
--- a/tex/context/base/status-mkiv.tex
+++ b/tex/context/base/status-mkiv.tex
@@ -1,3 +1,5 @@
+\usemodule[abr-02]
+
\setupbodyfont
[dejavu,9pt]
@@ -7,8 +9,8 @@
\setuplayout
[width=middle,
height=middle,
- backspace=1cm,
- topspace=1cm,
+ backspace=.5cm,
+ topspace=.5cm,
footer=0pt,
header=1.25cm]
@@ -28,6 +30,8 @@
\starttext
+% logs.report (immediate) versus logs.messenger (in flow)
+
\starttitle[title=Todo]
\startitemize[packed]
@@ -35,8 +39,6 @@
will be done when we're satisfied with one scheme \stopitem
\startitem there will be additional columns in the table, like for namespace
so we need another round of checking then \stopitem
- \startitem the imp modules are not in the list and need checking too \stopitem
- \startitem the s, x, m modules will be checked, redone and reorganized \stopitem
\startitem the lua code will be cleaned up upgraded as some is quite old
and experimental \stopitem
\startitem we need a proper dependency tree and better defined loading order \stopitem
@@ -44,7 +46,6 @@
\startitem we need to check what messages are gone (i.e.\ clean up mult-mes) \stopitem
\startitem some commands can go from mult-def (and the xml file) \stopitem
\startitem check for setuphandler vs simplesetuphandler \stopitem
- \startitem all showcomposition etc can go (we can redo that in lua if needed) \stopitem
\startitem for the moment we will go for \type {xxxx_} namespaces that (mostly) match
the filename but later we can replace these by longer names (via a script) so
module writers should {\bf not} use the core commands with \type{_} in the
@@ -54,14 +55,37 @@
\startitem consider moving setups directly to lua end (e.g. in characterspacing, breakpoint, bitmaps etc.) \stopitem
\startitem more local temporary \type {\temp...} will become \type {\p_...} \stopitem
\startitem check all ctxlua calls for ctxcommand \stopitem
- \startitem rename all those \type {\current<whatever>}s in strc.
+ \startitem rename all those \type {\current<whatever>}s in strc \stopitem
+ \startitem check \type {option} vs \type {options} \stopitem
+ \startitem check \type {type} vs \type {kind} \stopitem
+ \startitem check \type {label} vs \type {name} vs \type {tag} \stopitem
+ \startitem check \type {limop}, different limops should should be classes \stopitem
+ \startitem too many positions in simple files (itemize etc) \stopitem
+ \startitem math domains/dictionaries \stopitem
+ \startitem xtables don't span vertically with multilines (yet) \stopitem
+ \startitem notes in mixed columns \stopitem
+ \startitem floats in mixed columns \stopitem
+ \startitem check return values \type {os.execute} \stopitem
+ \startitem more r, d, k in xml code \stopitem
+ \startitem mathml, more in \LUA \stopitem
+ \startitem style: font-size, font, color handling in \HTML\ (lxml-css) \stopitem
+ \startitem a \type {\name {A.B.C DEF}} auto-nobreakspace \stopitem
+ \startitem redo \CWEB\ module with \LUA \stopitem
+ \startitem maybe move characters.blocks to its own file \stopitem
+ \startitem more local context = context in \LUA\ files \stopitem
+ \startitem check and optimize all storage.register and locals (cosmetics) \stopitem
+ \startitem check all used modules in \LUA\ (and local them) \stopitem
+ \startitem environment and basic lua helpers are now spread over too many files \stopitem
+ \startitem isolate tracers and showers \stopitem
+ \startitem check all possible usage of ctxcommand \stopitem
\stopitemize
\stoptitle
-\definehighlight[notabenered] [color=darkred, style=bold]
-\definehighlight[notabeneblue] [color=darkblue, style=bold]
-\definehighlight[notabeneyellow][color=darkyellow,style=bold]
+\definehighlight[notabenered] [color=darkred, style=bold]
+\definehighlight[notabeneblue] [color=darkblue, style=bold]
+\definehighlight[notabeneyellow] [color=darkyellow, style=bold]
+\definehighlight[notabenemagenta][color=darkmagenta,style=bold]
\startluacode
@@ -73,7 +97,7 @@
"symb", "grph", "anch", "luat", "mult", "back", "node", "meta", "norm", "catc",
"cldf", "file", "char", "core", "layo", "trac", "cont", "regi", "enco", "hand",
"unic", "sort", "blob", "type", "scrp", "prop", "chem", "bibl", "task",
- "module", "mp",
+ "whatever", "mp", "s", "x", "m", "mtx",
}
local specialcategories = {
@@ -81,19 +105,42 @@
}
local what = {
- "core", "lua", "optional", "implementations", "extra", "extras", "metafun", "modules", "resources"
+ "main", "core", "lua", "optional", "implementations", "extra", "extras", "metafun", "modules", "resources"
}
+ local totaltodo = 0
+ local totalpending = 0
+ local totalobsolete = 0
+ local totalloaded = 0
+
+ local function summary(nofloaded,noftodo,nofpending,nofobsolete)
+
+ local nofdone = nofloaded - noftodo - nofpending - nofobsolete
+
+ context.starttabulate { "|B|r|" }
+ context.HL()
+ context.NC() context("done") context.NC() context(nofdone) context.NC() context.NR()
+ context.NC() context("todo") context.NC() context(noftodo) context.NC() context.NR()
+ context.NC() context("pending") context.NC() context(nofpending) context.NC() context.NR()
+ context.NC() context("obsolete") context.NC() context(nofobsolete) context.NC() context.NR()
+ context.HL()
+ context.NC() context("loaded") context.NC() context(nofloaded) context.NC() context.NR()
+ context.HL()
+ context.stoptabulate()
+
+ end
+
if coremodules then
local function tabelize(loaded,what)
if loaded then
- local noftodo = 0
- local nofdelayed = 0
- local nofloaded = #loaded
- local categories = { }
+ local noftodo = 0
+ local nofpending = 0
+ local nofobsolete = 0
+ local nofloaded = #loaded
+ local categories = { }
for k, v in next, valid do
categories[k] = { }
@@ -102,7 +149,7 @@
for i=1,nofloaded do
local l = loaded[i]
l.order = i
- local category = string.match(l.filename,"([^%-]+)%-") or "module"
+ local category = string.match(l.filename,"([^%-]+)%-") or "whatever"
local c = categories[category]
if c then
c[#c+1] = l
@@ -119,10 +166,11 @@
context.starttitle { title = string.format("%s: %s",what,k) }
- context.starttabulate { "|Tr|Tlw(12em)|Tl|Tlw(6em)|l|l|l|p|" }
+ context.starttabulate { "|Tr|Tlw(3em)|Tlw(12em)|Tlw(12em)|Tlw(4em)|Tl|Tl|Tl|Tp|" }
context.NC() context.bold("order")
+ context.NC() context.bold("kind")
context.NC() context.bold("file")
- context.NC() context.bold("mark")
+ context.NC() context.bold("loading")
context.NC() context.bold("status")
context.NC() context.bold("reference")
context.NC() context.bold("manual")
@@ -134,8 +182,9 @@
local module = loaded[i]
local status = module.status
local category = module.category
- context.NC() context(module.order)
- context.NC() context(module.filename)
+ local filename = module.filename
+ context.NC()
+ context(module.order)
context.NC()
if specialcategories[category] then
context.notabeneblue(category)
@@ -143,12 +192,23 @@
context(category)
end
context.NC()
+ if #filename>20 then
+ context(string.sub(filename,1,18) .. "..")
+ else
+ context(filename)
+ end
+ context.NC()
+ context(module.loading)
+ context.NC()
if status == "todo" then
context.notabenered(status)
noftodo = noftodo + 1
- elseif status == "delayed" then
+ elseif status == "pending" then
context.notabeneyellow(status)
- nofdelayed = nofdelayed + 1
+ nofpending = nofpending + 1
+ elseif status == "obsolete" then
+ context.notabenemagenta(status)
+ nofobsolete = nofobsolete + 1
else
context(status)
end
@@ -168,20 +228,15 @@
context.starttitle { title = string.format("summary of %s modules",what) }
- local nofdone = nofloaded - noftodo - nofdelayed
-
- context.starttabulate { "|B|r|" }
- context.HL()
- context.NC() context("done") context.NC() context(nofdone) context.NC() context.NR()
- context.NC() context("todo") context.NC() context(noftodo) context.NC() context.NR()
- context.NC() context("delayed") context.NC() context(nofdelayed) context.NC() context.NR()
- context.HL()
- context.NC() context("loaded") context.NC() context(nofloaded) context.NC() context.NR()
- context.HL()
- context.stoptabulate()
+ summary(nofloaded,noftodo,nofpending,nofobsolete)
context.stoptitle()
+ totaltodo = totaltodo + noftodo
+ totalpending = totalpending + nofpending
+ totalobsolete = totalobsolete + nofobsolete
+ totalloaded = totalloaded + nofloaded
+
end
end
@@ -203,6 +258,12 @@
--
-- context.stoptitle()
+ context.starttitle { title = string.format("summary of all",what) }
+
+ summary(totalloaded,totaltodo,totalpending,totalobsolete)
+
+ context.stoptitle()
+
context.starttitle { title = "messy namespaces" }
local namespaces = dofile("status-namespaces.lua")
diff --git a/tex/context/base/strc-doc.lua b/tex/context/base/strc-doc.lua
index 758c7f0e9..618be1146 100644
--- a/tex/context/base/strc-doc.lua
+++ b/tex/context/base/strc-doc.lua
@@ -22,7 +22,7 @@ local max, min = math.max, math.min
local allocate, mark, accesstable = utilities.storage.allocate, utilities.storage.mark, utilities.tables.accesstable
local catcodenumbers = catcodes.numbers
-local ctxcatcodes = tex.ctxcatcodes
+local ctxcatcodes = catcodenumbers.ctxcatcodes
local variables = interfaces.variables
local v_last = variables.last
diff --git a/tex/context/base/strc-ini.lua b/tex/context/base/strc-ini.lua
index 78efcad81..0973c8db7 100644
--- a/tex/context/base/strc-ini.lua
+++ b/tex/context/base/strc-ini.lua
@@ -27,10 +27,12 @@ local type, next, tonumber = type, next, tonumber
local settings_to_array, settings_to_hash = utilities.parsers.settings_to_array, utilities.parsers.settings_to_hash
local allocate = utilities.storage.allocate
-local ctxcatcodes = tex.ctxcatcodes
-local xmlcatcodes = tex.xmlcatcodes
-local notcatcodes = tex.notcatcodes
-local txtcatcodes = tex.txtcatcodes
+local catcodenumbers = catcodes.numbers -- better use the context(...) way to switch
+
+local ctxcatcodes = catcodenumbers.ctxcatcodes
+local xmlcatcodes = catcodenumbers.xmlcatcodes
+local notcatcodes = catcodenumbers.notcatcodes
+local txtcatcodes = catcodenumbers.txtcatcodes
local trace_processors = false
local report_processors = logs.reporter("processors","structure")
diff --git a/tex/context/base/strc-mar.lua b/tex/context/base/strc-mar.lua
index 89fc66b01..c7ef2d4e1 100644
--- a/tex/context/base/strc-mar.lua
+++ b/tex/context/base/strc-mar.lua
@@ -692,6 +692,6 @@ commands.fetchtwomarks = marks.fetchtwomarks
commands.fetchallmarks = marks.fetchallmarks
function commands.doifelsemarking(str) -- can be shortcut
- commands.testcase(marks.exists(str))
+ commands.doifelse(marks.exists(str))
end
diff --git a/tex/context/base/strc-ref.lua b/tex/context/base/strc-ref.lua
index 16cb91373..626328b6d 100644
--- a/tex/context/base/strc-ref.lua
+++ b/tex/context/base/strc-ref.lua
@@ -416,7 +416,9 @@ function references.urls.define(name,url,file,description)
end
end
-local pushcatcodes, popcatcodes, txtcatcodes = context.pushcatcodes, context.popcatcodes, tex.txtcatcodes
+local pushcatcodes = context.pushcatcodes
+local popcatcodes = context.popcatcodes
+local txtcatcodes = catcodes.numbers.txtcatcodes -- or just use "txtcatcodes"
function references.urls.get(name)
local u = urls[name]
diff --git a/tex/context/base/strc-syn.mkiv b/tex/context/base/strc-syn.mkiv
index 535eab04b..e0087d450 100644
--- a/tex/context/base/strc-syn.mkiv
+++ b/tex/context/base/strc-syn.mkiv
@@ -65,8 +65,8 @@
%\c!headcolor=,
%\c!criterium=,
\c!location=\v!left,
- \c!width=5em,
- \c!distance=0pt,
+ \c!width=5\emwidth,
+ \c!distance=\zeropoint,
%\c!sample=,
%\c!hang=,
%\c!align=,
diff --git a/tex/context/base/supp-box.lua b/tex/context/base/supp-box.lua
index 853de4cbe..c7382834a 100644
--- a/tex/context/base/supp-box.lua
+++ b/tex/context/base/supp-box.lua
@@ -10,6 +10,9 @@ if not modules then modules = { } end modules ['supp-box'] = {
local report_hyphenation = logs.reporter("languages","hyphenation")
+local tex, node = tex, node
+local context, commands, nodes = context, commands, nodes
+
local nodecodes = nodes.nodecodes
local disc_code = nodecodes.disc
@@ -19,6 +22,7 @@ local glue_code = nodecodes.glue
local glyph_code = nodecodes.glyph
local new_penalty = nodes.pool.penalty
+
local free_node = node.free
local copynodelist = node.copy_list
local copynode = node.copy
@@ -65,10 +69,9 @@ local function applytochars(list,what,nested)
while current do
local id = current.id
if nested and (id == hlist_code or id == vlist_code) then
- context.hbox()
- context.bgroup()
+ context.beginhbox()
applytochars(current.list,what,nested)
- context.egroup()
+ context.endhbox()
elseif id ~= glyph_code then
noaction(copynode(current))
else
@@ -92,8 +95,7 @@ local function applytowords(list,what,nested)
end
noaction(copynode(current))
elseif nested and (id == hlist_code or id == vlist_code) then
- context.hbox()
- context.bgroup()
+ context.beginhbox()
applytowords(current.list,what,nested)
context.egroup()
elseif not start then
diff --git a/tex/context/base/supp-ran.lua b/tex/context/base/supp-ran.lua
index 75202f696..7997db8f6 100644
--- a/tex/context/base/supp-ran.lua
+++ b/tex/context/base/supp-ran.lua
@@ -6,32 +6,34 @@ if not modules then modules = { } end modules ['supp-ran'] = {
license = "see context related readme files"
}
--- We cannot ask for the current seed, so we need some messy hack
--- here.
+-- We cannot ask for the current seed, so we need some messy hack here.
local report_system = logs.reporter("system","randomizer")
-commands = commands or { }
-local commands = commands
-
local math = math
+local context, commands = context, commands
+
local random, randomseed, round, seed, last = math.random, math.randomseed, math.round, false, 1
-function math.setrandomseedi(n,comment)
+local maxcount = 2^30-1 -- 1073741823
+
+local function setrandomseedi(n,comment)
if not n then
---~ n = 0.5 -- hack
+ -- n = 0.5 -- hack
end
if n <= 1 then
- n = n*1073741823 -- maxcount
+ n = n * maxcount
end
n = round(n)
if false then
report_system("setting seed to %s (%s)",n,comment or "normal")
end
randomseed(n)
- last = random(0,1073741823) -- we need an initial value
+ last = random(0,maxcount) -- we need an initial value
end
+math.setrandomseedi = setrandomseedi
+
function commands.getrandomcounta(min,max)
last = random(min,max)
context(last)
@@ -44,7 +46,7 @@ end
function commands.setrandomseed(n)
last = n
- math.setrandomseedi(n)
+ setrandomseedi(n)
end
function commands.getrandomseed(n)
@@ -54,10 +56,9 @@ end
-- maybe stack
function commands.freezerandomseed(n)
- -- print("<<<<",seed,last)
if seed == false or seed == nil then
seed = last
- math.setrandomseedi(seed,"freeze",seed)
+ setrandomseedi(seed,"freeze",seed)
end
if n then
randomseed(n)
@@ -65,9 +66,8 @@ function commands.freezerandomseed(n)
end
function commands.defrostrandomseed()
- -- print(">>>>",seed,last)
if seed ~= false then
- math.setrandomseedi(seed,"defrost",seed) -- was last (bug)
+ setrandomseedi(seed,"defrost",seed) -- was last (bug)
seed = false
end
end
diff --git a/tex/context/base/symb-run.mkiv b/tex/context/base/symb-run.mkiv
index 4bd2cecca..e5bac89d9 100644
--- a/tex/context/base/symb-run.mkiv
+++ b/tex/context/base/symb-run.mkiv
@@ -44,10 +44,10 @@
\unprotect
-\gdef\doshowsymbolset[#1]%
- {\ctxcommand{showsymbolset("#1","\symbolset{#1}")}}
-
-\gdef\showsymbolset
+\unexpanded\gdef\symb_show_set
{\dosingleargument\doshowsymbolset}
+\gdef\symb_show_set[#1]%
+ {\ctxcommand{showsymbolset("#1","\symbolset{#1}")}}
+
\protect \endinput
diff --git a/tex/context/base/syst-aux.lua b/tex/context/base/syst-aux.lua
index 7fd25d6ab..b5dd4e7e2 100644
--- a/tex/context/base/syst-aux.lua
+++ b/tex/context/base/syst-aux.lua
@@ -6,19 +6,31 @@ if not modules then modules = { } end modules ['syst-aux'] = {
license = "see context related readme files"
}
+-- slower than lpeg:
+--
+-- utfmatch(str,"(.?)(.*)$")
+-- utf.sub(str,1,1)
+
+local commands = commands
+
local settings_to_array = utilities.parsers.settings_to_array
local concat = table.concat
+local P, C, lpegmatch, utf8char = lpeg.P, lpeg.C, lpeg.match, lpeg.patterns.utf8char
local setvalue = context.setvalue
+local pattern = C(utf8char^-1) * C(P(1)^0)
+
function commands.getfirstcharacter(str)
- local first, rest = utf.match(str,"(.?)(.*)$")
+ local first, rest = lpegmatch(pattern,str)
setvalue("firstcharacter",first)
setvalue("remainingcharacters",rest)
end
+local pattern = C(utf8char^-1)
+
function commands.doiffirstcharelse(chr,str)
- commands.doifelse(utf.sub(str,1,1) == chr)
+ commands.doifelse(lpegmatch(pattern,str) == chr)
end
-- function commands.addtocommalist(list,item)
diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv
index c09608f8d..1c4ab089d 100644
--- a/tex/context/base/syst-aux.mkiv
+++ b/tex/context/base/syst-aux.mkiv
@@ -161,22 +161,21 @@
\let\@NX \noexpand
\def\@EAEA {\expandafter\expandafter} % can often be avoided
-%D Sometimes we pass macros as arguments to commands that
-%D don't expand them before interpretation. Such commands can
-%D be enclosed with \type{\expanded}, like:
+%D Sometimes we pass macros as arguments to commands that don't expand them
+%D before interpretation. Such commands can be enclosed with \type {\expanded},
+%D like:
%D
%D \starttyping
%D \expanded{\setupsomething[\alfa]}
%D \stoptyping
%D
-%D Such situations occur for instance when \type{\alfa} is a
-%D commalist or when data stored in macros is fed to index of
-%D list commands. If needed, one should use \type{\noexpand}
-%D inside the argument. Later on we will meet some more clever
-%D alternatives to this command. Beware, only the simple one
-%D has \type {\noexpand} before its argument.
+%D Such situations occur for instance when \type{\alfa} is a commalist or when data
+%D stored in macros is fed to index of list commands. If needed, one should use
+%D \type{\noexpand} inside the argument. Later on we will meet some more clever
+%D alternatives to this command. Beware, only the simple one has \type {\noexpand}
+%D before its argument.
-\let\m_syst_helpers_expanded\empty % always long and global (less restores)
+\let\m_syst_helpers_expanded\empty
\unexpanded\def\expanded#1%
{\xdef\m_syst_helpers_expanded{\noexpand#1}\m_syst_helpers_expanded}
@@ -186,9 +185,8 @@
\let\stopexpanded\relax
-%D Recent \TEX\ engines have a primitive \type {\expanded} and we will
-%D use that when possible. After all, we can make not expandable macros
-%D now.
+%D Recent \TEX\ engines have a primitive \type {\expanded} and we will use that when
+%D possible. After all, we can make not expandable macros now.
% We cannot use the next variant as first we need to adapt \type {##}'s
% in callers:
@@ -202,8 +200,8 @@
%D \macros
%D {gobbleoneargument,gobble...arguments}
%D
-%D The next set of macros just do nothing, except that they
-%D get rid of a number of arguments.
+%D The next set of macros just do nothing, except that they get rid of a number of
+%D arguments.
\def\gobbleoneargument #1{}
\def\gobbletwoarguments #1#2{}
@@ -462,9 +460,9 @@
%D
%D In \CONTEXT\ of May 2000 using \type {\globallet} instead of the two
%D tokens will save us some $300\times4=1200$ bytes of format file on a 32~bit
-%D system. Not that it matters much today. Anyway:
+%D system. Not that it matters much today. This shortcut is already defined:
-\def\globallet{\global\let} \let\glet\globallet
+\unexpanded\def\glet{\global\let} \let\globallet\glet
%D \macros
%D {doifundefined,doifdefined,
diff --git a/tex/context/base/syst-ini.mkiv b/tex/context/base/syst-ini.mkiv
index 6c71fa0d1..922c93b75 100644
--- a/tex/context/base/syst-ini.mkiv
+++ b/tex/context/base/syst-ini.mkiv
@@ -512,6 +512,14 @@
\ifdefined\htdp \else \def\htdp#1{\dimexpr\ht#1+\dp#1\relax} \fi
+%D A few shortcuts:
+
+\normalprotected\def\glet {\global \let }
+\normalprotected\def\udef {\normalprotected\def }
+\normalprotected\def\ugdef{\normalprotected\gdef}
+\normalprotected\def\uedef{\normalprotected\edef}
+\normalprotected\def\uxdef{\normalprotected\xdef}
+
%D The catcode constants will be redefined in later catcode related modules
%D but they can be used in the same way.
diff --git a/tex/context/base/syst-lua.lua b/tex/context/base/syst-lua.lua
index f735b1962..ef524c339 100644
--- a/tex/context/base/syst-lua.lua
+++ b/tex/context/base/syst-lua.lua
@@ -16,14 +16,17 @@ commands = commands or { }
function commands.writestatus(...) logs.status(...) end -- overloaded later
--- todo: use shorter names i.e. less tokenization, like prtcatcodes + f_o_t_a
-
local firstoftwoarguments = context.firstoftwoarguments -- context.constructcsonly("firstoftwoarguments" )
local secondoftwoarguments = context.secondoftwoarguments -- context.constructcsonly("secondoftwoarguments")
local firstofoneargument = context.firstofoneargument -- context.constructcsonly("firstofoneargument" )
local gobbleoneargument = context.gobbleoneargument -- context.constructcsonly("gobbleoneargument" )
-local function testcase(b)
+-- contextsprint(prtcatcodes,[[\ui_fo]]) -- firstofonearguments
+-- contextsprint(prtcatcodes,[[\ui_go]]) -- gobbleonearguments
+-- contextsprint(prtcatcodes,[[\ui_ft]]) -- firstoftwoarguments
+-- contextsprint(prtcatcodes,[[\ui_st]]) -- secondoftwoarguments
+
+function commands.doifelse(b)
if b then
firstoftwoarguments()
else
@@ -47,33 +50,45 @@ function commands.doifnot(b)
end
end
-commands.testcase = testcase
-commands.doifelse = testcase
+commands.testcase = commands.doifelse -- obsolete
function commands.boolcase(b)
context(b and 1 or 0)
end
function commands.doifelsespaces(str)
- return testcase(find(str,"^ +$"))
+ if find(str,"^ +$") then
+ firstoftwoarguments()
+ else
+ secondoftwoarguments()
+ end
end
local s = lpegtsplitat(",")
local h = { }
-function commands.doifcommonelse(a,b)
+function commands.doifcommonelse(a,b) -- often the same test
local ha = h[a]
local hb = h[b]
- if not ha then ha = lpegmatch(s,a) h[a] = ha end
- if not hb then hb = lpegmatch(s,b) h[b] = hb end
- for i=1,#ha do
- for j=1,#hb do
+ if not ha then
+ ha = lpegmatch(s,a)
+ h[a] = ha
+ end
+ if not hb then
+ hb = lpegmatch(s,b)
+ h[b] = hb
+ end
+ local na = #ha
+ local nb = #hb
+ for i=1,na do
+ for j=1,nb do
if ha[i] == hb[j] then
- return testcase(true)
+ firstoftwoarguments()
+ return
end
end
end
- return testcase(false)
+ secondoftwoarguments()
end
function commands.doifinsetelse(a,b)
@@ -81,16 +96,21 @@ function commands.doifinsetelse(a,b)
if not hb then hb = lpegmatch(s,b) h[b] = hb end
for i=1,#hb do
if a == hb[i] then
- return testcase(true)
+ firstoftwoarguments()
+ return
end
end
- return testcase(false)
+ secondoftwoarguments()
end
local pattern = lpeg.patterns.validdimen
function commands.doifdimenstringelse(str)
- testcase(lpegmatch(pattern,str))
+ if lpegmatch(pattern,str) then
+ firstoftwoarguments()
+ else
+ secondoftwoarguments()
+ end
end
function commands.firstinset(str)
diff --git a/tex/context/base/syst-lua.mkiv b/tex/context/base/syst-lua.mkiv
index 0d72e4a01..004655b74 100644
--- a/tex/context/base/syst-lua.mkiv
+++ b/tex/context/base/syst-lua.mkiv
@@ -40,4 +40,11 @@
%def\luaexpr#1{\ctxlua {context(tostring(#1))}}
\def\luaexpr#1{\directlua\zerocount{context(tostring(#1))}} % wrap in global function ?
+% helpers:
+
+\def\ui_fo #1{#1}
+\def\ui_go #1{}
+\def\ui_ft#1#2{#1}
+\def\ui_st#1#2{#2}
+
\protect \endinput
diff --git a/tex/context/base/tabl-ltb.mkiv b/tex/context/base/tabl-ltb.mkiv
index b126883c6..f7fbc0390 100644
--- a/tex/context/base/tabl-ltb.mkiv
+++ b/tex/context/base/tabl-ltb.mkiv
@@ -723,10 +723,10 @@
\startlinetablerun \readfile{#1}\donothing\donothing\stoplinetablerun
\egroup}
-\protect \endinput
+\protect
+
+\continueifinputfile{tabl-ltb.mkiv}
-\doifnotmode{demo}{\endinput}
-
\setuplinetable[n=6,m={2,2,2},lines=25] % m ?
\setuplinetable[c][1] [width=2cm,background=color,backgroundcolor=red]
diff --git a/tex/context/base/tabl-tbl.lua b/tex/context/base/tabl-tbl.lua
index c48c5100d..7291facd3 100644
--- a/tex/context/base/tabl-tbl.lua
+++ b/tex/context/base/tabl-tbl.lua
@@ -6,8 +6,10 @@ if not modules then modules = { } end modules ['tabl-tbl'] = {
license = "see context related readme files"
}
--- A couple of hacks ... easier to do in Lua than in regular
--- TeX. More will follow.
+-- A couple of hacks ... easier to do in Lua than in regular TeX. More will
+-- follow.
+
+local context, commands = context, commands
local tonumber = tonumber
local gsub, rep, sub, find = string.gsub, string.rep, string.sub, string.find
diff --git a/tex/context/base/tabl-xtb.lua b/tex/context/base/tabl-xtb.lua
index e999cbd74..01b7ef9eb 100644
--- a/tex/context/base/tabl-xtb.lua
+++ b/tex/context/base/tabl-xtb.lua
@@ -25,6 +25,8 @@ this mechamism will be improved so that it can replace its older cousin.
-- todo: use linked list instead of r/c array
+local commands, context, tex, node = commands, context, tex, node
+
local texdimen = tex.dimen
local texcount = tex.count
local texbox = tex.box
diff --git a/tex/context/base/task-ini.lua b/tex/context/base/task-ini.lua
index ffcb82cd9..58f7cbd40 100644
--- a/tex/context/base/task-ini.lua
+++ b/tex/context/base/task-ini.lua
@@ -20,7 +20,7 @@ local freezegroup = tasks.freezegroup
local freezecallbacks = callbacks.freeze
appendaction("processors", "normalizers", "typesetters.characters.handler") -- always on
-appendaction("processors", "normalizers", "fonts.collections.process") -- todo
+appendaction("processors", "normalizers", "fonts.collections.process") -- disabled
appendaction("processors", "normalizers", "fonts.checkers.missing") -- disabled
appendaction("processors", "characters", "typesetters.cleaners.handler") -- disabled
@@ -59,7 +59,7 @@ appendaction("shipouts", "normalizers", "structures.tags.handler")
appendaction("shipouts", "normalizers", "nodes.handlers.accessibility") -- disabled
appendaction("shipouts", "normalizers", "nodes.handlers.backgrounds") -- disabled
---~ appendaction("shipouts", "normalizers", "nodes.handlers.export") -- disabled
+-- appendaction("shipouts", "normalizers", "nodes.handlers.export") -- disabled
appendaction("shipouts", "finishers", "nodes.visualizers.handler") -- disabled
@@ -100,6 +100,7 @@ appendaction("vboxbuilders", "normalizers", "builders.vspacing.vboxhandler")
-- speedup: only kick in when used
+disableaction("processors", "fonts.collections.process")
disableaction("processors", "fonts.checkers.missing")
disableaction("processors", "chars.handle_breakpoints")
disableaction("processors", "typesetters.cleaners.handler")
diff --git a/tex/context/base/trac-ctx.lua b/tex/context/base/trac-ctx.lua
index dd3aa392a..813443816 100644
--- a/tex/context/base/trac-ctx.lua
+++ b/tex/context/base/trac-ctx.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['trac-ctx'] = {
license = "see context related readme files"
}
+local commands, context = commands, context
+
tex.trackers = tex.trackers or { }
local textrackers = tex.trackers
@@ -32,5 +34,3 @@ function commands.installtextracker(tag,enable,disable)
textrackers[tag] = { enable, disable }
register(tag, function(v) doit(tag,v) end) -- todo: v,tag in caller
end
-
--- lua.registerfinalizer(dump,"dump storage")
diff --git a/tex/context/base/trac-fil.lua b/tex/context/base/trac-fil.lua
index bf291ff6b..73d5d1c7d 100644
--- a/tex/context/base/trac-fil.lua
+++ b/tex/context/base/trac-fil.lua
@@ -6,18 +6,19 @@ if not modules then modules = { } end modules ['trac-fil'] = {
license = "see context related readme files"
}
+local rawset, tonumber = rawset, tonumber
local format, concat = string.format, table.concat
local openfile = io.open
local date = os.date
-local rawset, tonumber = rawset, tonumber
+local sortedpairs = table.sortedpairs
-local P, C, Cc, Cg, Cf, Ct, Cs = lpeg.P, lpeg.C, lpeg.Cc, lpeg.Cg, lpeg.Cf, lpeg.Ct, lpeg.Cs
+local P, C, Cc, Cg, Cf, Ct, Cs, lpegmatch = lpeg.P, lpeg.C, lpeg.Cc, lpeg.Cg, lpeg.Cf, lpeg.Ct, lpeg.Cs, lpeg.match
local patterns = lpeg.patterns
local cardinal = patterns.cardinal
local whitespace = patterns.whitespace^0
-patterns.timestamp = Cf(Ct("") * (
+local timestamp = Cf(Ct("") * (
Cg (Cc("year") * (cardinal/tonumber)) * P("-")
* Cg (Cc("month") * (cardinal/tonumber)) * P("-")
* Cg (Cc("day") * (cardinal/tonumber)) * P(" ")
@@ -28,15 +29,18 @@ patterns.timestamp = Cf(Ct("") * (
* Cg (Cc("tminute") * (cardinal/tonumber))
)^0, rawset)
-patterns.keysvalues = Cf(Ct("") * (
+local keysvalues = Cf(Ct("") * (
Cg(C(patterns.letter^0) * whitespace * "=" * whitespace * Cs(patterns.unquoted) * whitespace)
)^0, rawset)
-patterns.statusline = Cf(Ct("") * (
- whitespace * P("[") * Cg(Cc("timestamp") * patterns.timestamp ) * P("]")
- * whitespace * Cg(Cc("status" ) * patterns.keysvalues)
+local statusline = Cf(Ct("") * (
+ whitespace * P("[") * Cg(Cc("timestamp") * timestamp ) * P("]")
+ * whitespace * Cg(Cc("status" ) * keysvalues)
),rawset)
+patterns.keysvalues = keysvalues
+patterns.statusline = statusline
+patterns.timestamp = timestamp
loggers = loggers or { }
@@ -52,9 +56,10 @@ function loggers.message(filename,t)
f = openfile(filename,"a+")
end
if f then
+ -- if needed we can speed this up with a concat
f:write("[",date("!%Y-%m-%d %H:%M:%S"),tz,"]")
- for k, v in table.sortedpairs(t) do
- f:write(" ",k,'="',v,'"')
+ for k, v in sortedpairs(t) do
+ f:write(format(" %s=%q",k,v))
end
f:write("\n")
f:close()
@@ -64,17 +69,9 @@ function loggers.message(filename,t)
end
end
---~ function loggers.collect(filename)
---~ if lfs.isfile(filename) then
---~ return lpeg.match(Ct(patterns.statusline^0),io.loaddata(filename))
---~ else
---~ return { }
---~ end
---~ end
-
function loggers.collect(filename,result)
if lfs.isfile(filename) then
- local r = lpeg.match(Ct(patterns.statusline^0),io.loaddata(filename))
+ local r = lpegmatch(Ct(statusline^0),io.loaddata(filename))
if result then -- append
local nofresult = #result
for i=1,#r do
diff --git a/tex/context/base/trac-set.lua b/tex/context/base/trac-set.lua
index ed7367b4f..bac448f77 100644
--- a/tex/context/base/trac-set.lua
+++ b/tex/context/base/trac-set.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['trac-set'] = { -- might become u
license = "see context related readme files"
}
+-- maybe this should be util-set.lua
+
local type, next, tostring = type, next, tostring
local concat = table.concat
local format, find, lower, gsub, escapedpattern = string.format, string.find, string.lower, string.gsub, string.escapedpattern
diff --git a/tex/context/base/trac-tim.lua b/tex/context/base/trac-tim.lua
index de7ceca46..adc8e01b5 100644
--- a/tex/context/base/trac-tim.lua
+++ b/tex/context/base/trac-tim.lua
@@ -59,7 +59,7 @@ end
local processed = { }
local function convert(name)
- name = ((name ~= "") and name) or progress.defaultfilename
+ name = name ~= "" and name or progress.defaultfilename
if not processed[name] then
local names, top, bot, pages, paths, keys = { }, { }, { }, 0, { }, { }
local data = io.loaddata(name .. ".lut")
diff --git a/tex/context/base/type-ini.lua b/tex/context/base/type-ini.lua
index 4ce953168..758fb5683 100644
--- a/tex/context/base/type-ini.lua
+++ b/tex/context/base/type-ini.lua
@@ -8,6 +8,8 @@ if not modules then modules = { } end modules ['type-ini'] = {
-- more code will move here
+local commands, context = commands, context
+
local gsub = string.gsub
local report_typescripts = logs.reporter("fonts","typescripts")
@@ -15,13 +17,14 @@ local report_typescripts = logs.reporter("fonts","typescripts")
local patterns = { "type-imp-%s.mkiv", "type-imp-%s.tex", "type-%s.mkiv", "type-%s.tex" } -- this will be imp only
local function action(name,foundname)
- context.startreadingfile()
- context.pushendofline()
- context.unprotect()
- context.input(foundname)
- context.protect()
- context.popendofline()
- context.stopreadingfile()
+ -- context.startreadingfile()
+ -- context.pushendofline()
+ -- context.unprotect()
+ -- context.input(foundname)
+ -- context.protect()
+ -- context.popendofline()
+ -- context.stopreadingfile()
+ context.loadfoundtypescriptfile(foundname)
end
local name_one, name_two
diff --git a/tex/context/base/type-ini.mkvi b/tex/context/base/type-ini.mkvi
index f41c392d1..8345a97f9 100644
--- a/tex/context/base/type-ini.mkvi
+++ b/tex/context/base/type-ini.mkvi
@@ -136,15 +136,21 @@
% The next will change .. we can load a file inside a typescript but as the state is
% 1 then, it doesn't get stored without doing that explicitly
-% \unexpanded\def\loadtypescriptfile[#1]%
-% {\ctxcommand{loadtypescriptfile("#1")}}
-
\unexpanded\def\loadtypescriptfile[#1]%
{\pushmacro\typescriptstate
\let\typescriptstate\plustwo % assumes 2 at the outer level
\ctxcommand{loadtypescriptfile("#1")}%
\popmacro\typescriptstate}
+\unexpanded\def\loadfoundtypescriptfile#1%
+ {\startreadingfile
+ \pushendofline
+ \unprotect
+ \input{#1}%
+ \protect
+ \popendofline
+ \stopreadingfile}
+
\unexpanded\def\quittypescriptscanning
{\settrue\c_font_typescripts_quit} % public
diff --git a/tex/context/base/x-asciimath.mkiv b/tex/context/base/x-asciimath.mkiv
index 23caf13aa..ea6d5c3fa 100644
--- a/tex/context/base/x-asciimath.mkiv
+++ b/tex/context/base/x-asciimath.mkiv
@@ -68,7 +68,7 @@
\protect
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{x-asciimath.mkiv}
\enabletrackers[modules.asciimath.mapping]
diff --git a/tex/context/base/x-udhr.mkiv b/tex/context/base/x-udhr.mkiv
index 81075ac70..e081bfd59 100644
--- a/tex/context/base/x-udhr.mkiv
+++ b/tex/context/base/x-udhr.mkiv
@@ -87,7 +87,7 @@
\setuptolerance
[verytolerant]
-\doifnotmode{demo}{\endinput}
+\continueifinputfile{x-udhr.mkiv}
% todo: when argument given then process it
diff --git a/tex/context/fonts/husayni.lfg b/tex/context/fonts/husayni.lfg
index cf9e373fa..d0b3e631c 100644
--- a/tex/context/fonts/husayni.lfg
+++ b/tex/context/fonts/husayni.lfg
@@ -31,6 +31,7 @@ local minimal_stretching = {
local medium_stretching = {
js12=yes, js05=yes,
}
+
local maximal_stretching= {
js13 = yes, js05 = yes, js09 = yes,
}
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 2fd1644e5..47b6be3d1 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 07/24/12 15:58:02
+-- merge date : 07/26/12 19:37:03
do -- begin closure to overcome local limits and interference
@@ -4704,17 +4704,17 @@ local format, match, lower = string.format, string.match, string.lower
local tonumber = tonumber
local P, S, R, C, V, lpegmatch = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.match
-local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+local fonts, logs, trackers = fonts, logs, trackers
-local report_otf = logs.reporter("fonts","otf loading")
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
-local fonts = fonts
+local report_otf = logs.reporter("fonts","otf loading")
-local cid = { }
-fonts.cid = cid
+local cid = { }
+fonts.cid = cid
-local cidmap = { }
-local cidmax = 10
+local cidmap = { }
+local cidmax = 10
-- original string parser: 0.109, lpeg parser: 0.036 seconds for Adobe-CNS1-4.cidmap
--
@@ -4773,8 +4773,7 @@ local function loadcidfile(filename)
end
end
-cid.loadfile = loadcidfile -- we use the frozen variant
-
+cid.loadfile = loadcidfile -- we use the frozen variant
local template = "%s-%s-%s.cidmap"
local function locate(registry,ordering,supplement)