From c272ae071309f4f79ff90ad2feefea070cde6a03 Mon Sep 17 00:00:00 2001 From: Hironori Kitagawa Date: Sun, 29 Jul 2012 13:52:00 +0900 Subject: [PATCH] Fix ticket #29140 in kitagawa_test branch. --- src/ltj-jfmglue.lua | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/ltj-jfmglue.lua b/src/ltj-jfmglue.lua index 1887b78..a3dbc25 100644 --- a/src/ltj-jfmglue.lua +++ b/src/ltj-jfmglue.lua @@ -176,13 +176,9 @@ local function check_box(box_ptr, box_end) end while p and p~=box_end do local pid = p.id - if pid==id_kern then - if p.subtype==2 then - p = node_next(node_next(node_next(p))); pid = p.id - elseif IC_PROCESSED == has_attr(p, attr_icflag) then - p = node_next(p); pid = p.id - end - end + if pid==id_kern and p.subtype==2 then + p = node_next(node_next(node_next(p))); pid = p.id -- p must be glyph_node + end if pid==id_glyph then repeat if find_first_char then @@ -191,9 +187,11 @@ local function check_box(box_ptr, box_end) last_char = p; found_visible_node = true; p=node_next(p) if (not p) or p==box_end then return found_visible_node end until p.id~=id_glyph - pid = p.id + pid = p.id -- p must be non-nil end - if pid==id_hlist then + if pid==id_kern and has_attr(p, attr_icflag)==IC_PROCESSED then + p = node_next(p); + elseif pid==id_hlist then if PACKED == has_attr(p, attr_icflag) then if find_first_char then first_char = p.head; find_first_char = false -- 2.11.0