end
local prefix, inner_depth
-
+local utfchar = utf.char
local function debug_show_node_X(p,print_fn, limit)
local k = prefix
local s
.. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
if pt == 'glyph' then
s = base .. ' ' ..
- (p.char>=0xF0000 and string.format('(U+%X)', p.char) or utf.char(p.char)) .. ' '
+ (p.char>=0xF0000 and string.format('(U+%X)', p.char) or utfchar(p.char)) .. ' '
.. tostring(p.font) .. ' (' .. print_scaled(p.height) .. '+'
.. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
if p.xoffset~=0 or p.yoffset~=0 then
.. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
.. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
print_fn(s)
+ elseif pt=='disc' then
+ print_fn(s)
+ local bid = inner_depth
+ if inner_depth < limit then
+ prefix, inner_depth = k.. 'p.', inner_depth + 1
+ for q in node.traverse(p.pre) do
+ debug_show_node_X(q, print_fn, limit)
+ end
+ prefix = k.. 'P.'
+ for q in node.traverse(p.post) do
+ debug_show_node_X(q, print_fn, limit)
+ end
+ prefix = k.. 'R.'
+ for q in node.traverse(p.replace) do
+ debug_show_node_X(q, print_fn, limit)
+ end
+ end
+ prefix=k
elseif pt == 'glue' then
s = base .. ' ' .. print_spec(p)
if get_attr_icflag(p)>icflag_table.KINSOKU
end
prefix = k;
elseif pt=='math_char' then
- s = base .. ' fam: ' .. p.fam .. ' , char = ' .. utf.char(p.char)
+ s = base .. ' fam: ' .. p.fam .. ' , char = ' .. utfchar(p.char)
print_fn(s)
elseif pt=='sub_box' or pt=='sub_mlist' then
print_fn(base)