From b1b4773ad50df8779adf3335fb7813013e45481c Mon Sep 17 00:00:00 2001 From: Marius Date: Wed, 24 Apr 2013 15:00:25 +0300 Subject: beta 2013.04.24 13:39 --- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4135 -> 4134 bytes tex/context/base/context-version.png | Bin 40537 -> 40539 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/font-otf.lua | 14 +++++++++++++- tex/context/base/font-otn.lua | 4 ++-- tex/context/base/font-otp.lua | 2 +- tex/context/base/mult-def.mkiv | 1 + tex/context/base/status-files.pdf | Bin 24745 -> 24718 bytes tex/context/base/status-lua.pdf | Bin 211551 -> 211512 bytes tex/context/base/strc-itm.mkvi | 3 +++ tex/generic/context/luatex/luatex-fonts-merged.lua | 14 +++++++++++--- 12 files changed, 33 insertions(+), 9 deletions(-) diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 8c1b025c8..df19f22cf 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.04.23 12:46} +\newcontextversion{2013.04.24 13:39} %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 70ba3f23f..86f4912f4 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-version.png b/tex/context/base/context-version.png index e57796a2d..a7429df88 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index ab6658451..8b5825485 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.04.23 12:46} +\edef\contextversion{2013.04.24 13:39} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua index 8a6183180..b08b6e15d 100644 --- a/tex/context/base/font-otf.lua +++ b/tex/context/base/font-otf.lua @@ -798,7 +798,7 @@ actions["check encoding"] = function(data,filename,raw) end end --- for the moment we assume that a fotn with lookups will not use +-- for the moment we assume that a font with lookups will not use -- altuni so we stick to kerns only actions["add duplicates"] = function(data,filename,raw) @@ -1251,9 +1251,11 @@ actions["reorganize lookups"] = function(data,filename,raw) -- we could check fo if current then for i=1,#current do current[i] = current_class[current[i]] or { } + -- let's not be sparse if lookups and not lookups[i] then lookups[i] = "" -- (was: false) e.g. we can have two lookups and one replacement end + -- end of fix end rule.current = t_hashed(current,t_h_cache) end @@ -1283,6 +1285,16 @@ actions["reorganize lookups"] = function(data,filename,raw) -- we could check fo local current = coverage.current if current then current = t_uncover(splitter,t_u_cache,current) + -- let's not be sparse + local lookups = rule.lookups + if lookups then + for i=1,#current do + if not lookups[i] then + lookups[i] = "" -- fix sparse array + end + end + end + -- rule.current = t_hashed(current,t_h_cache) end local after = coverage.after diff --git a/tex/context/base/font-otn.lua b/tex/context/base/font-otn.lua index 39a3f77dd..36b5c4001 100644 --- a/tex/context/base/font-otn.lua +++ b/tex/context/base/font-otn.lua @@ -613,10 +613,10 @@ function handlers.gsub_ligature(head,start,kind,lookupname,ligature,sequence) if lig then if trace_ligatures then local stopchar = stop.char - head, start = toligature(kind,lookupname,head, start,stop,lig,skipmark,discfound) + head, start = toligature(kind,lookupname,head,start,stop,lig,skipmark,discfound) logprocess("%s: replacing %s upto %s by ligature %s case 2",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char)) else - head, start = toligature(kind,lookupname,head, start,stop,lig,skipmark,discfound) + head, start = toligature(kind,lookupname,head,start,stop,lig,skipmark,discfound) end return head, start, true else diff --git a/tex/context/base/font-otp.lua b/tex/context/base/font-otp.lua index c07d9ad4e..b02ae97ac 100644 --- a/tex/context/base/font-otp.lua +++ b/tex/context/base/font-otp.lua @@ -366,8 +366,8 @@ local function packdata(data) local r = rule.after if r then for i=1,#r do r[i] = pack_boolean(r[i]) end end local r = rule.current if r then for i=1,#r do r[i] = pack_boolean(r[i]) end end local r = rule.replacements if r then rule.replacements = pack_flat (r) end -- can have holes - -- local r = rule.lookups if r then rule.lookups = pack_mixed (r) end -- can have false local r = rule.lookups if r then rule.lookups = pack_indexed(r) end -- can have "" + -- local r = rule.lookups if r then rule.lookups = pack_flat(r) end -- can have holes (already taken care of some cases) end end end diff --git a/tex/context/base/mult-def.mkiv b/tex/context/base/mult-def.mkiv index ec33171da..cb165b055 100644 --- a/tex/context/base/mult-def.mkiv +++ b/tex/context/base/mult-def.mkiv @@ -71,6 +71,7 @@ \def\v!chemicals {chemicals} \def\v!words {words} \def\v!combination {combination} +\def\v!norepeat {norepeat} \def\s!lcgreek {lcgreek} \def\s!ucgreek {ucgreek} diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 75f537ddc..0d4bd81af 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 104a26f06..bdbd77bb3 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/strc-itm.mkvi b/tex/context/base/strc-itm.mkvi index 5840ee73e..85ec4bc45 100644 --- a/tex/context/base/strc-itm.mkvi +++ b/tex/context/base/strc-itm.mkvi @@ -430,6 +430,7 @@ \setvalue{\??itemgroupkeyword\v!stopper }{\letitemgroupparameter\c!placestopper\v!yes} % keep {} \setvalue{\??itemgroupkeyword\v!unpacked }{\setfalse\c_strc_itemgroups_pack} \setvalue{\??itemgroupkeyword\v!repeat }{\settrue\c_strc_itemgroups_repeat} +\setvalue{\??itemgroupkeyword\v!norepeat }{\setfalse\c_strc_itemgroups_repeat} \setvalue{\??itemgroupkeyword\v!reverse }{\settrue\c_strc_itemgroups_reverse} \setvalue{\??itemgroupkeyword\v!columns }{\settrue\c_strc_itemgroups_columns} \setvalue{\??itemgroupkeyword\v!one }{\letitemgroupparameter\c!n\plusone} @@ -1306,6 +1307,8 @@ \ifx\m_strc_itemgroups_repeat_start\empty \edef\m_strc_itemgroups_repeat_start{\currentitemlevel}% \fi + \else + \let\m_strc_itemgroups_repeat_start\empty \fi} \def\strc_itemgroups_insert_item diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 28271378a..da5e35a80 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 : 04/23/13 12:46:30 +-- merge date : 04/24/13 13:39:43 do -- begin closure to overcome local limits and interference @@ -6098,6 +6098,14 @@ actions["reorganize lookups"]=function(data,filename,raw) local current=coverage.current if current then current=t_uncover(splitter,t_u_cache,current) + local lookups=rule.lookups + if lookups then + for i=1,#current do + if not lookups[i] then + lookups[i]="" + end + end + end rule.current=t_hashed(current,t_h_cache) end local after=coverage.after @@ -10642,8 +10650,8 @@ local function packdata(data) local r=rule.before if r then for i=1,#r do r[i]=pack_boolean(r[i]) end end local r=rule.after if r then for i=1,#r do r[i]=pack_boolean(r[i]) end end local r=rule.current if r then for i=1,#r do r[i]=pack_boolean(r[i]) end end - local r=rule.replacements if r then rule.replacements=pack_flat (r) end - local r=rule.lookups if r then rule.lookups=pack_indexed(r) end + local r=rule.replacements if r then rule.replacements=pack_flat (r) end + local r=rule.lookups if r then rule.lookups=pack_indexed(r) end end end end -- cgit v1.2.3