summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/node-res.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2019-02-10 18:26:49 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2019-02-10 18:26:49 +0100
commit416dffef7b9d3f8db26b614588f2e63d7f5db89f (patch)
tree173153295a3a5a4f436283cb0ab8bb895be98ea5 /tex/context/base/mkiv/node-res.lua
parent99dc1cd9bb77ac9fa68b0584f58f57749994fdba (diff)
downloadcontext-416dffef7b9d3f8db26b614588f2e63d7f5db89f.tar.gz
2019-02-10 17:52:00
Diffstat (limited to 'tex/context/base/mkiv/node-res.lua')
-rw-r--r--tex/context/base/mkiv/node-res.lua153
1 files changed, 39 insertions, 114 deletions
diff --git a/tex/context/base/mkiv/node-res.lua b/tex/context/base/mkiv/node-res.lua
index 596d2861f..995bba6e5 100644
--- a/tex/context/base/mkiv/node-res.lua
+++ b/tex/context/base/mkiv/node-res.lua
@@ -14,41 +14,39 @@ local gmatch, format = string.gmatch, string.format
for debugging <l n='luatex'/> node management.</p>
--ldx]]--
-local report_nodes = logs.reporter("nodes","housekeeping")
-
local nodes, node = nodes, node
-nodes.pool = nodes.pool or { }
-local nodepool = nodes.pool
-
-local whatsitcodes = nodes.whatsitcodes
-local gluecodes = nodes.gluecodes
-local kerncodes = nodes.kerncodes
-local rulecodes = nodes.rulecodes
-local nodecodes = nodes.nodecodes
-local leadercodes = nodes.leadercodes
-local boundarycodes = nodes.boundarycodes
-local usercodes = nodes.usercodes
-
+local report_nodes = logs.reporter("nodes","housekeeping")
-local glyph_code = nodecodes.glyph
-local rule_code = nodecodes.rule
-local kern_code = nodecodes.kern
-local glue_code = nodecodes.glue
-local whatsit_code = nodecodes.whatsit
+nodes.pool = nodes.pool or { }
+local nodepool = nodes.pool
-local currentfont = font.current
+local whatsitcodes = nodes.whatsitcodes
+local gluecodes = nodes.gluecodes
+local kerncodes = nodes.kerncodes
+local rulecodes = nodes.rulecodes
+local nodecodes = nodes.nodecodes
+local leadercodes = nodes.leadercodes
+local boundarycodes = nodes.boundarycodes
+local usercodes = nodes.usercodes
-local allocate = utilities.storage.allocate
+local nodeproperties = nodes.properties.data
-local texgetcount = tex.getcount
+local glyph_code = nodecodes.glyph
+local rule_code = nodecodes.rule
+local kern_code = nodecodes.kern
+local glue_code = nodecodes.glue
+local whatsit_code = nodecodes.whatsit
-local reserved, nofreserved = { }, 0
+local currentfont = font.current
+local texgetcount = tex.getcount
--- user nodes
+local allocate = utilities.storage.allocate
-local userids = allocate()
-local lastid = 0
+local reserved = { }
+local nofreserved = 0
+local userids = allocate()
+local lastid = 0
setmetatable(userids, {
__index = function(t,k)
@@ -174,13 +172,6 @@ local savepos = register_nut(new_nut(whatsit_code,whatsitcodes.savepos
local user_node = new_nut(whatsit_code,whatsitcodes.userdefined)
-local user_number = register_nut(copy_nut(user_node)) setfield(user_number, "type",usercodes.number)
-local user_nodes = register_nut(copy_nut(user_node)) setfield(user_nodes, "type",usercodes.node)
-local user_string = register_nut(copy_nut(user_node)) setfield(user_string, "type",usercodes.string)
-local user_tokens = register_nut(copy_nut(user_node)) setfield(user_tokens, "type",usercodes.token)
-local user_lua = register_nut(copy_nut(user_node)) setfield(user_lua, "type",usercodes.lua) -- in > 0.95
-local user_attributes = register_nut(copy_nut(user_node)) setfield(user_attributes,"type",usercodes.attribute)
-
local left_margin_kern = register_nut(new_nut(nodecodes.marginkern,0))
local right_margin_kern = register_nut(new_nut(nodecodes.marginkern,1))
@@ -431,21 +422,19 @@ function nutpool.savepos()
return copy_nut(savepos)
end
-function nutpool.latelua(code)
- local n = copy_nut(latelua)
- setdata(n,code)
- return n
-end
-
if CONTEXTLMTXMODE then
- local properties = nodes.properties.data
+ function nutpool.latelua(code)
+ local n = copy_nut(latelua)
+ nodeproperties[n] = { data = code }
+ return n
+ end
- local justlua = register_nut(new_nut(whatsit_code,whatsitcodes.lua))
+else
- function nutpool.lua(code)
- local n = copy_nut(justlua)
- properties[n] = { data = code }
+ function nutpool.latelua(code)
+ local n = copy_nut(latelua)
+ setdata(n,code)
return n
end
@@ -540,76 +529,12 @@ function nodepool.vlist(list,width,height,depth,shift)
return tonode(new_vlist(list and tonut(list),width,height,depth,shift))
end
--- local num = userids["my id"]
--- local str = userids[num]
-
-function nutpool.usernumber(id,num)
- local n = copy_nut(user_number)
- if num then
- setfield(n,"user_id",id)
- -- setfield(n,"value",num)
- setvalue(n,num)
- elseif id then
- -- setfield(n,"value",id)
- setvalue(n,id)
- end
- return n
-end
-
-function nutpool.userlist(id,list)
- local n = copy_nut(user_nodes)
- if list then
- setfield(n,"user_id",id)
- -- setfield(n,"value",list)
- setvalue(n,list)
- else
- -- setfield(n,"value",id)
- setvalue(n,id)
- end
- return n
-end
-
-function nutpool.userstring(id,str)
- local n = copy_nut(user_string)
- if str then
- setfield(n,"user_id",id)
- setvalue(n,str)
- else
- setvalue(n,id)
- end
- return n
-end
-
-function nutpool.usertokens(id,tokens)
- local n = copy_nut(user_tokens)
- if tokens then
- setfield(n,"user_id",id)
- setvalue(n,tokens)
- else
- setvalue(n,id)
- end
- return n
-end
-
-function nutpool.userlua(id,code)
- local n = copy_nut(user_lua)
- if code then
- setfield(n,"user_id",id)
- setvalue(n,code)
- else
- setvalue(n,id)
- end
- return n
-end
-
-function nutpool.userattributes(id,attr)
- local n = copy_nut(user_attributes)
- if attr then
- setfield(n,"user_id",id)
- setvalue(n,attr)
- else
- setvalue(n,id)
- end
+function nutpool.usernode(id,data)
+ local n = copy_nut(user_node)
+ nodeproperties[n] = {
+ id = id,
+ data = data,
+ }
return n
end