summaryrefslogtreecommitdiff
path: root/otfl-font-otn.lua
diff options
context:
space:
mode:
Diffstat (limited to 'otfl-font-otn.lua')
-rw-r--r--otfl-font-otn.lua14
1 files changed, 5 insertions, 9 deletions
diff --git a/otfl-font-otn.lua b/otfl-font-otn.lua
index 91deb87..c4c42fa 100644
--- a/otfl-font-otn.lua
+++ b/otfl-font-otn.lua
@@ -752,9 +752,6 @@ end
function handlers.gpos_pair(start,kind,lookupname,kerns,sequence)
-- todo: kerns in disc nodes: pre, post, replace -> loop over disc too
-- todo: kerns in components of ligatures
---~ local alreadydone = cursonce and has_attribute(start,curscurs)
-local alreadydone = false
-if not alreadydone then
local snext = start.next
if not snext then
return start, false
@@ -763,7 +760,8 @@ if not alreadydone then
local factor = tfmdata.factor
while snext and snext.id == glyph and snext.subtype<256 and snext.font == currentfont do
local nextchar = snext.char
- if marks[nextchar] then
+local krn = kerns[nextchar]
+ if not krn and marks[nextchar] then
prev = snext
snext = snext.next
else
@@ -813,9 +811,6 @@ if not alreadydone then
end
return start, done
end
-else
-return start, false
-end
end
--[[ldx--
@@ -1428,11 +1423,12 @@ function chainprocs.gpos_pair(start,stop,kind,chainname,currentcontext,cache,cur
local factor = tfmdata.factor
while snext and snext.id == glyph and snext.subtype<256 and snext.font == currentfont do
local nextchar = snext.char
- if marks[nextchar] then
+local krn = kerns[nextchar]
+ if not krn and marks[nextchar] then
prev = snext
snext = snext.next
else
- local krn = kerns[nextchar]
+--~ local krn = kerns[nextchar]
if not krn then
-- skip
elseif type(krn) == "table" then