[latex3-commits] [git/LaTeX3-latex3-luaotfload] dev: Further bugfixing (59e5269)

Marcel Fabian Krüger tex at 2krueger.de
Wed Oct 28 07:25:25 CET 2020


Repository : https://github.com/latex3/luaotfload
On branch  : dev
Link       : https://github.com/latex3/luaotfload/commit/59e52699f946846280cd0eed15c66d694c0063de

>---------------------------------------------------------------

commit 59e52699f946846280cd0eed15c66d694c0063de
Author: Marcel Fabian Krüger <tex at 2krueger.de>
Date:   Wed Oct 28 07:25:25 2020 +0100

    Further bugfixing
    
    The situation this and c653f9ca39 are dealing this are not nominal,
    appear in a discretionary and then get \unhbox'ed. These do not get
    skipped by the itemization code because that is treating discretionaries
    as a atomic blackbox. Therefore we can not assume that all glyph nodes
    which are ot skipped have the right font and aren't processed yet.


>---------------------------------------------------------------

59e52699f946846280cd0eed15c66d694c0063de
 src/luaotfload-harf-plug.lua | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/luaotfload-harf-plug.lua b/src/luaotfload-harf-plug.lua
index 2cd26ff..a98fba1 100644
--- a/src/luaotfload-harf-plug.lua
+++ b/src/luaotfload-harf-plug.lua
@@ -668,7 +668,7 @@ local function tonodes(head, node, run, glyphs)
     end
     local gid = glyph.codepoint
     local char = nominals[gid] or gid_offset + gid
-    local id = getid(node)
+    local orig_char, id = is_char(node, fontid)
 
     if glyph.replace then
       -- For discretionary the glyph itself is skipped and a discretionary node
@@ -687,7 +687,7 @@ local function tonodes(head, node, run, glyphs)
       nodeindex = nodeindex + 1
     else
       if lastprops and lastprops.zwnj and nodeindex == glyph.cluster + 1 then
-      elseif id == glyph_t then
+      elseif orig_char then
         local done
         local fontglyph = fontglyphs[gid]
         local character = characters[char]
@@ -795,7 +795,7 @@ local function tonodes(head, node, run, glyphs)
           end
         end
         if not done then
-          local oldcharacter = characters[getchar(node)]
+          local oldcharacter = characters[orig_char]
           -- If the glyph index of current font character is the same as shaped
           -- glyph, keep the node char unchanged. Helps with primitives that
           -- take characters as input but actually work on glyphs, like





More information about the latex3-commits mailing list.