summaryrefslogtreecommitdiff
path: root/tex/context/base/node-mig.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/node-mig.lua')
-rw-r--r--tex/context/base/node-mig.lua23
1 files changed, 11 insertions, 12 deletions
diff --git a/tex/context/base/node-mig.lua b/tex/context/base/node-mig.lua
index 41f95be45..294af86ef 100644
--- a/tex/context/base/node-mig.lua
+++ b/tex/context/base/node-mig.lua
@@ -28,6 +28,9 @@ local getattr = nuts.getattr
local setfield = nuts.setfield
local setattr = nuts.setattr
+local setlink = nuts.setlink
+local setprev = nuts.setprev
+local setnext = nuts.setnext
local remove_node = nuts.remove
@@ -57,12 +60,11 @@ local function locate(head,first,last,ni,nm)
elseif migrate_inserts and id == insert_code then
local insert
head, current, insert = remove_node(head,current)
- setfield(insert,"next",nil)
+ setnext(insert)
if first then
- setfield(insert,"prev",last)
- setfield(last,"next",insert)
+ setlink(last,insert)
else
- setfield(insert,"prev",nil)
+ setprev(insert)
first = insert
end
last = insert
@@ -70,12 +72,11 @@ local function locate(head,first,last,ni,nm)
elseif migrate_marks and id == mark_code then
local mark
head, current, mark = remove_node(head,current)
- setfield(mark,"next",nil)
+ setnext(mark)
if first then
- setfield(mark,"prev",last)
- setfield(last,"next",mark)
+ setlink(last,mark)
else
- setfield(mark,"prev",nil)
+ setprev(mark)
first = mark
end
last = mark
@@ -120,11 +121,9 @@ function nodes.handlers.migrate(head,where)
-- inserts after head, use insert_after
local n = getnext(current)
if n then
- setfield(last,"next",n)
- setfield(n,"prev",last)
+ setlink(last,n)
end
- setfield(current,"next",first)
- setfield(first,"prev",current)
+ setlink(current,first)
done = true
current = last
end