diff options
Diffstat (limited to 'tex/context/base/font-ots.lua')
-rw-r--r-- | tex/context/base/font-ots.lua | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/tex/context/base/font-ots.lua b/tex/context/base/font-ots.lua index c7497c16f..74d7ac60b 100644 --- a/tex/context/base/font-ots.lua +++ b/tex/context/base/font-ots.lua @@ -6,6 +6,11 @@ if not modules then modules = { } end modules ['font-ots'] = { -- sequences license = "see context related readme files", } +-- assumptions: +-- +-- cursives don't cross discretionaries +-- marks precede bases + -- This is a version of font-otn.lua adapted to the new font loader code. It -- is a context version which can contain experimental code, but when we -- have serious patches we will backport to the font-otn files. There will @@ -885,16 +890,16 @@ function handlers.gpos_pair(head,start,dataset,sequence,kerns,rlmode,step,i,inje elseif step.format == "pair" then local a, b = krn[1], krn[2] if a and #a > 0 then - local startchar = getchar(start) local x, y, w, h = setpair(start,factor,rlmode,sequence.flags[4],a,injection) -- characters[startchar]) if trace_kerns then + local startchar = getchar(start) logprocess("%s: shifting first of pair %s and %s by (%p,%p) and correction (%p,%p)",pref(dataset,sequence),gref(startchar),gref(nextchar),x,y,w,h) end end if b and #b > 0 then - local startchar = getchar(start) local x, y, w, h = setpair(snext,factor,rlmode,sequence.flags[4],b,injection) -- characters[nextchar]) if trace_kerns then + local startchar = getchar(start) logprocess("%s: shifting second of pair %s and %s by (%p,%p) and correction (%p,%p)",pref(dataset,sequence),gref(startchar),gref(nextchar),x,y,w,h) end end @@ -1426,7 +1431,7 @@ function chainprocs.gsub_ligature(head,start,stop,dataset,sequence,currentlookup end else local schar = getchar(current) - if skipmark and marks[schar] then -- marks + if skipmark and marks[schar] then -- marks -- if current == stop then -- maybe add this -- break -- else @@ -2887,7 +2892,7 @@ local function featuresprocessor(head,font,attr) end end - local function k_run(sub,injection,last) + local function k_run(sub,injection,last) local a = getattr(sub,0) if a then a = (a == attr) and (not attribute or getprop(sub,a_state) == attribute) |