summaryrefslogtreecommitdiff
path: root/tex/context/base/pack-rul.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/pack-rul.lua')
-rw-r--r--tex/context/base/pack-rul.lua17
1 files changed, 13 insertions, 4 deletions
diff --git a/tex/context/base/pack-rul.lua b/tex/context/base/pack-rul.lua
index dc4e48655..a8c5de321 100644
--- a/tex/context/base/pack-rul.lua
+++ b/tex/context/base/pack-rul.lua
@@ -46,6 +46,7 @@ local getbox = nuts.getbox
local hpack = nuts.hpack
local traverse_id = nuts.traverse_id
local node_dimensions = nuts.dimensions
+local free_node = nuts.free
local function doreshapeframedbox(n)
local box = getbox(n)
@@ -107,10 +108,18 @@ local function doreshapeframedbox(n)
if l then
local subtype = getsubtype(h)
if subtype == box_code or subtype == line_code then
- l = hpack(l,maxwidth,'exactly',getfield(h,"dir")) -- multiple return values
--- setfield(l,"attr",getfield(h,"attr"))
- setfield(h,"list",l)
- setfield(h,"shift",0) -- needed for display math, so no width check possible
+ local p = hpack(l,maxwidth,'exactly',getfield(h,"dir")) -- multiple return value
+ if false then
+ setfield(h,"list",p)
+ setfield(h,"shift",0) -- needed for display math, so no width check possible
+ -- setfield(p,"attr",getfield(h,"attr"))
+ else
+ setfield(h,"glue_set",getfield(p,"glue_set"))
+ setfield(h,"glue_order",getfield(p,"glue_order"))
+ setfield(h,"glue_sign",getfield(p,"glue_sign"))
+ setfield(p,"list",nil)
+ free_node(p)
+ end
end
setfield(h,"width",maxwidth)
end