diff options
author | Marius <mariausol@gmail.com> | 2013-05-09 16:40:24 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2013-05-09 16:40:24 +0300 |
commit | 2b86b3c259cdb4df4fda41889ecad9d3f366c973 (patch) | |
tree | 28cb7e5a0e41eabb797e94b53d53ff5e0a294d82 /tex/context/base/font-otn.lua | |
parent | fcc0b3c67c2840d82aee0bb84eac8b3449b09afd (diff) | |
download | context-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.lua | 22 |
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 |