diff options
Diffstat (limited to 'tex/context/base/node-ini.lua')
-rw-r--r-- | tex/context/base/node-ini.lua | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tex/context/base/node-ini.lua b/tex/context/base/node-ini.lua index fa53f1200..474edfc1d 100644 --- a/tex/context/base/node-ini.lua +++ b/tex/context/base/node-ini.lua @@ -60,6 +60,7 @@ local free_node = node.free local remove_node = node.remove local insert_node_before = node.insert_before local insert_node_after = node.insert_after +local node_fields = node.fields local allocate = utilities.storage.allocate @@ -210,6 +211,35 @@ function nodes.showcodes() end end +-- pseudoline and shape crash on node.new + +local whatsit_node = nodecodes.whatsit + +local messyhack = table.tohash { -- temporary solution + nodecodes.attributelist, + nodecodes.attribute, + nodecodes.gluespec, + nodecodes.action, +} + +function nodes.fields(n) + local id = n.id + if id == whatsit_node then + return node_fields(id,n.subtype) + else + local t = node_fields(id) + if messyhack[id] then + for i=1,#t do + if t[i] == "subtype" then + table.remove(t,i) + break + end + end + end + return t + end +end + trackers.register("system.showcodes", nodes.showcodes) local hlist_code = nodecodes.hlist |