diff options
Diffstat (limited to 'tex/context/base/node-met.lua')
-rw-r--r-- | tex/context/base/node-met.lua | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/tex/context/base/node-met.lua b/tex/context/base/node-met.lua index 7d10ce9f8..c85a53c8e 100644 --- a/tex/context/base/node-met.lua +++ b/tex/context/base/node-met.lua @@ -185,18 +185,18 @@ local n_remove_node = node.remove -- not yet nodes.remove -- end local function remove(head,current,free_too) - local t = current - head, current = n_remove_node(head,current) - if t then - if free_too then - n_free_node(t) - t = nil - else - n_setfield(t,"next",nil) - n_setfield(t,"prev",nil) - end - end - return head, current, t + local t = current + head, current = n_remove_node(head,current) + if not t then + -- forget about it + elseif free_too then + n_free_node(t) + t = nil + else + n_setfield(t,"next",nil) + n_setfield(t,"prev",nil) + end + return head, current, t end nodes.remove = remove |