summaryrefslogtreecommitdiff
path: root/tex/context/base/font-otn.lua
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2013-05-09 16:40:24 +0300
committerMarius <mariausol@gmail.com>2013-05-09 16:40:24 +0300
commit2b86b3c259cdb4df4fda41889ecad9d3f366c973 (patch)
tree28cb7e5a0e41eabb797e94b53d53ff5e0a294d82 /tex/context/base/font-otn.lua
parentfcc0b3c67c2840d82aee0bb84eac8b3449b09afd (diff)
downloadcontext-2b86b3c259cdb4df4fda41889ecad9d3f366c973.tar.gz
beta 2013.05.09 15:23
Diffstat (limited to 'tex/context/base/font-otn.lua')
-rw-r--r--tex/context/base/font-otn.lua22
1 files changed, 22 insertions, 0 deletions
diff --git a/tex/context/base/font-otn.lua b/tex/context/base/font-otn.lua
index 46d64c783..0644125f7 100644
--- a/tex/context/base/font-otn.lua
+++ b/tex/context/base/font-otn.lua
@@ -393,6 +393,8 @@ local function getcomponentindex(start)
end
end
+-- eventually we will do positioning in an other way (needs addional w/h/d fields)
+
local function toligature(kind,lookupname,head,start,stop,char,markflag,discfound) -- brr head
if start == stop and start.char == char then
start.char = char
@@ -451,6 +453,22 @@ local function toligature(kind,lookupname,head,start,stop,char,markflag,discfoun
end
start = start.next
end
+ -- new per 2013/5/9 : why was this not needed before, probably because we had
+ -- no nested components then and operated on the real start (no nil after stop)
+ local start = base.next
+ while start and start.id == glyph_code do -- hm, is id test needed ?
+ local char = start.char
+ if marks[char] then
+ start[a_ligacomp] = baseindex + (start[a_ligacomp] or componentindex)
+ if trace_marks then
+ logwarning("%s: find mark %s, gets index %s",pref(kind,lookupname),gref(char),start[a_ligacomp])
+ end
+ else
+ break
+ end
+ start = start.next
+ end
+ --
end
return head, base
end
@@ -735,6 +753,10 @@ function handlers.gpos_mark2ligature(head,start,kind,lookupname,markanchors,sequ
pref(kind,lookupname),anchor,index,bound,gref(markchar),gref(basechar),index,dx,dy)
end
return head, start, true
+ else
+ if trace_bugs then
+ logwarning("%s: no matching anchors for mark %s and baselig %s with index %a",pref(kind,lookupname),gref(markchar),gref(basechar),index)
+ end
end
end
end