summaryrefslogtreecommitdiff
path: root/tex/context/base/node-ini.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/node-ini.lua')
-rw-r--r--tex/context/base/node-ini.lua30
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