end
local function calc_np_pbox(lp, last)
- local first, lpa, nc = (not Np.first), KINSOKU, nil
+ local first, lpa, nc = (not Np.first), get_attr_icflag(lp), nil
Np.first = Np.first or lp; Np.id = id_pbox
set_attr(lp, attr_icflag, get_attr_icflag(lp));
while lp ~=last and (lpa>=PACKED) and (lpa<BOXBDD) do
local lpi = getid(lp)
- if lpi==id_hlist or lpi==id_vlist then
+ if lpa==PACKED then
+ if lpi==id_rule then lp = node_next(lp) end
+ nc, lp = lp, node_next(lp)
+ elseif lpi==id_hlist or lpi==id_vlist then
head, lp, nc = ltjd_make_dir_whatsit(head, lp, list_dir, 'jfm pbox')
Np.first = first and nc or Np.first
- elseif (lpi==id_rule) and (lpa==PACKED) then
- lp = node_next(lp)
- nc, lp = lp, node_next(lp)
else
nc, lp = lp, node_next(lp)
end
setfield(w, 'value', to_node(wv))
setfield(wv, 'type', 100)
setfield(wv, 'value', floor(#rtlr))
+ setfield(wv, 'user_id', RUBY_PRE) -- dummy
set_attr(wv, attr_ruby, rst.rubyzw)
set_attr(wv, attr_ruby_maxmargin, rst.maxmargin)
set_attr(wv, attr_ruby_maxprep, rst.pre)