From c63e7aab132c6c3c4babc672ef61112742478ecd Mon Sep 17 00:00:00 2001 From: Marius Date: Fri, 10 May 2013 11:40:30 +0300 Subject: beta 2013.05.10 10:26 --- tex/context/base/char-def.lua | 1 - tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4136 -> 4132 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/font-age.lua | 1 - tex/context/base/font-otn.lua | 45 ++++++++------------- tex/context/base/status-files.pdf | Bin 24749 -> 24701 bytes tex/context/base/status-lua.pdf | Bin 211555 -> 211513 bytes tex/generic/context/luatex/luatex-fonts-merged.lua | 23 +++-------- 9 files changed, 25 insertions(+), 49 deletions(-) diff --git a/tex/context/base/char-def.lua b/tex/context/base/char-def.lua index 746f3f3c4..7d2df5d41 100644 --- a/tex/context/base/char-def.lua +++ b/tex/context/base/char-def.lua @@ -87892,7 +87892,6 @@ characters.data={ unicodeslot=0x3038, }, [0x3039]={ - adobename="twentyhangzhou", category="nl", cjkwd="w", description="HANGZHOU NUMERAL TWENTY", diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 927828b99..584c7a6d7 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2013.05.09 15:23} +\newcontextversion{2013.05.10 10:26} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 54466cb4e..fbb746f4a 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 138e0be31..6c6d66b15 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -25,7 +25,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2013.05.09 15:23} +\edef\contextversion{2013.05.10 10:26} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/font-age.lua b/tex/context/base/font-age.lua index 94f4e6a37..bb6883a74 100644 --- a/tex/context/base/font-age.lua +++ b/tex/context/base/font-age.lua @@ -3702,7 +3702,6 @@ return { -- generated: inspect(fonts.encodings.agl.unicodes) ["twelveperiod"]=9363, ["twelveroman"]=8571, ["twentycircle"]=9331, - ["twentyhangzhou"]=12345, ["twentyparen"]=9351, ["twentyperiod"]=9371, ["two"]=50, diff --git a/tex/context/base/font-otn.lua b/tex/context/base/font-otn.lua index 0644125f7..46b0d7ef5 100644 --- a/tex/context/base/font-otn.lua +++ b/tex/context/base/font-otn.lua @@ -271,9 +271,9 @@ local function logwarning(...) report_direct(...) end -local f_unicode = formatters["%U"] -local f_uniname = formatters["%U (%s)"] -local f_unilist = formatters["% t (% t)"] +local f_unicode = formatters["%U"] +local f_uniname = formatters["%U (%s)"] +local f_unilist = formatters["% t (% t)"] local function gref(n) -- currently the same as in font-otb if type(n) == "number" then @@ -426,6 +426,7 @@ local function toligature(kind,lookupname,head,start,stop,char,markflag,discfoun local componentindex = 0 local head = base local current = base + -- first we loop over the glyphs in start .. stop while start do local char = start.char if not marks[char] then @@ -437,38 +438,26 @@ local function toligature(kind,lookupname,head,start,stop,char,markflag,discfoun logwarning("%s: keep mark %s, gets index %s",pref(kind,lookupname),gref(char),start[a_ligacomp]) end head, current = insert_node_after(head,current,copy_node(start)) -- unlikely that mark has components + elseif trace_marks then + logwarning("%s: delete mark %s",pref(kind,lookupname),gref(char)) end start = start.next end - local start = components - while start and start.id == glyph_code do -- hm, is id test needed ? + -- we can have one accent as part of a lookup and another following + -- local start = components -- was wrong (component scanning was introduced when more complex ligs in devanagari was added) + local start = current.next + while start and start.id == glyph_code do local char = start.char if marks[char] then start[a_ligacomp] = baseindex + (start[a_ligacomp] or componentindex) if trace_marks then - logwarning("%s: keep mark %s, gets index %s",pref(kind,lookupname),gref(char),start[a_ligacomp]) - end - else - break - 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]) + logwarning("%s: set 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 @@ -741,7 +730,7 @@ function handlers.gpos_mark2ligature(head,start,kind,lookupname,markanchors,sequ local baseanchors = baseanchors['baselig'] if baseanchors then local al = anchorlookups[lookupname] - for anchor,ba in next, baseanchors do + for anchor, ba in next, baseanchors do if al[anchor] then local ma = markanchors[anchor] if ma then @@ -1416,8 +1405,8 @@ end function chainprocs.gpos_mark2mark(head,start,stop,kind,chainname,currentcontext,lookuphash,currentlookup,chainlookupname) local markchar = start.char if marks[markchar] then ---~ local alreadydone = markonce and start[a_markmark] ---~ if not alreadydone then + -- local alreadydone = markonce and start[a_markmark] + -- if not alreadydone then -- local markanchors = descriptions[markchar].anchors markanchors = markanchors and markanchors.mark local subtables = currentlookup.subtables local lookupname = subtables[1] @@ -1469,9 +1458,9 @@ function chainprocs.gpos_mark2mark(head,start,stop,kind,chainname,currentcontext elseif trace_bugs then logwarning("%s: mark %s has no anchors",cref(kind,chainname,chainlookupname,lookupname),gref(markchar)) end ---~ elseif trace_marks and trace_details then ---~ logprocess("%s, mark %s is already bound (n=%s), ignoring mark2mark",pref(kind,lookupname),gref(markchar),alreadydone) ---~ end + -- elseif trace_marks and trace_details then + -- logprocess("%s, mark %s is already bound (n=%s), ignoring mark2mark",pref(kind,lookupname),gref(markchar),alreadydone) + -- end elseif trace_bugs then logwarning("%s: mark %s is no mark",cref(kind,chainname,chainlookupname),gref(markchar)) end diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 8edb34b4d..de864528e 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 6ca959f23..2642ab006 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index a0a58cc4d..e3f22be76 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 05/09/13 15:23:31 +-- merge date : 05/10/13 10:26:54 do -- begin closure to overcome local limits and interference @@ -8468,29 +8468,18 @@ local function toligature(kind,lookupname,head,start,stop,char,markflag,discfoun logwarning("%s: keep mark %s, gets index %s",pref(kind,lookupname),gref(char),start[a_ligacomp]) end head,current=insert_node_after(head,current,copy_node(start)) + elseif trace_marks then + logwarning("%s: delete mark %s",pref(kind,lookupname),gref(char)) end start=start.next end - local start=components - while start and start.id==glyph_code do + local start=current.next + while start and start.id==glyph_code do local char=start.char if marks[char] then start[a_ligacomp]=baseindex+(start[a_ligacomp] or componentindex) if trace_marks then - logwarning("%s: keep mark %s, gets index %s",pref(kind,lookupname),gref(char),start[a_ligacomp]) - end - else - break - end - start=start.next - end - local start=base.next - while start and start.id==glyph_code do - 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]) + logwarning("%s: set mark %s, gets index %s",pref(kind,lookupname),gref(char),start[a_ligacomp]) end else break -- cgit v1.2.3