diff options
author | Hans Hagen <pragma@wxs.nl> | 2022-07-06 22:05:18 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2022-07-06 22:05:18 +0200 |
commit | 82c674fdcf5bcff4ad0dc0936d638fc729145616 (patch) | |
tree | 6ab4ee4417aa22180cd5b3c50ede6a031f8ce3f9 /tex/context/base/mkxl/pack-obj.lmt | |
parent | 3a55e11c7295abf8f2dfe5e9d1c8b153f4518824 (diff) | |
download | context-82c674fdcf5bcff4ad0dc0936d638fc729145616.tar.gz |
2022-07-06 21:35:00
Diffstat (limited to 'tex/context/base/mkxl/pack-obj.lmt')
-rw-r--r-- | tex/context/base/mkxl/pack-obj.lmt | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/tex/context/base/mkxl/pack-obj.lmt b/tex/context/base/mkxl/pack-obj.lmt index 894d9e8b2..5f784b32a 100644 --- a/tex/context/base/mkxl/pack-obj.lmt +++ b/tex/context/base/mkxl/pack-obj.lmt @@ -99,14 +99,23 @@ objects = { local objects = objects -function objects.register(ns,id,b,referenced,offset,mode) - local n = objects.n + 1 - objects.n = n - nodes.handlers.finalizebox(b) - if mode == 0 then +function objects.register(ns,id,b,referenced,offset,mode,delay) + -- The delay feature is just an experiment: a value of 1 delays the + -- flushing and 2 overloads the content. It might disappear again. + local found = data[ns][id] + if found and delay == 2 then + nodes.handlers.finalizebox(b) + data[ns][id] = { + codeinjections.registerboxresource(b,nil,nil,found[1]), -- hardcoded [1] + offset, + referenced or false, + mode, + } + return + elseif mode == 0 then -- tex data[ns][id] = { - codeinjections.registerboxresource(b), -- a box number + codeinjections.registerboxresource(b,nil,delay), -- a box number offset, referenced or false, mode, @@ -114,7 +123,7 @@ function objects.register(ns,id,b,referenced,offset,mode) else -- box (backend) data[ns][id] = { - codeinjections.registerboxresource(b,offset), -- a box number + codeinjections.registerboxresource(b,offset,delay), -- a box number false, referenced, mode, @@ -183,13 +192,13 @@ end implement { name = "registerreferencedobject", - arguments = { "string", "string", "integer", true, "dimension", "integer" }, + arguments = { "string", "string", "integer", true, "dimension", "integer", "integer" }, actions = objects.register, } implement { name = "registerobject", - arguments = { "string", "string", "integer", false, "dimension", "integer" }, + arguments = { "string", "string", "integer", false, "dimension", "integer", "integer" }, actions = objects.register, } |