- ltjs.report_stack_level(tex_getcount('ltj@@stack') + box_set)
- is_dir_tate = ltjs.table_current_stack[DIR] == dir_tate
- local jfntattr = is_dir_tate and attr_curtfnt or attr_curjfnt
- for p in Dnode.traverse_id(id_glyph,to_direct(head)) do
- if has_attr(p, attr_curjfnt)==getfont(p) then
- local pfn = has_attr(p, jfntattr) or getfont(p)
- local pc = getchar(p)
- local pf = ltjf_replace_altfont(pfn, pc)
- if is_dir_tate then
- set_attr(p, attr_dir, pc)
- pc = ltjd_get_vert_glyph(pf, pc) or pc
+ ltjs_report_stack_level(tex_getcount('ltj@@stack') + box_set)
+ for _,p in pairs(wtd) do
+ node_free(p)
+ end
+ if ltjs.list_dir == dir_tate then
+ for p in Dnode.traverse_id(id_glyph,to_direct(head)) do
+ if (has_attr(p, attr_icflag) or 0)<=0 and getfield(p, 'lang')==lang_ja then
+ local pfn = has_attr(p, attr_curtfnt) or getfont(p)
+ local pc = ltjs_orig_char_table[p]
+ local pf = ltjf_replace_altfont(pfn, pc)
+ ltjs_orig_char_table[p] = { pc, ltjs_orig_char_table[p] }
+ local xc = ltjf_get_vert_glyph(pf, pc) or pc
+ setfield(p, 'char', xc); setfield(p, 'font', pf);
+ ltjs_orig_char_table[p] = { pc, xc }