From b37069abc236fbc5fbf171dc6af0deff495a6baf Mon Sep 17 00:00:00 2001 From: Context Git Mirror Bot Date: Wed, 24 Aug 2016 22:18:43 +0200 Subject: 2016-08-24 21:22:00 --- scripts/context/lua/mtx-fonts.lua | 2 +- tex/context/base/context-version.pdf | Bin 4268 -> 4262 bytes tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/font-cff.lua | 7 +++-- tex/context/base/mkiv/font-mis.lua | 2 +- tex/context/base/mkiv/font-osd.lua | 1 - tex/context/base/mkiv/font-otl.lua | 2 +- tex/context/base/mkiv/font-ots.lua | 27 +++++++++++------ tex/context/base/mkiv/status-files.pdf | Bin 9220 -> 9219 bytes tex/context/base/mkiv/status-lua.pdf | Bin 369107 -> 369104 bytes tex/context/interface/mkiv/i-context.pdf | Bin 774580 -> 774578 bytes tex/context/interface/mkiv/i-readme.pdf | Bin 60796 -> 60795 bytes tex/generic/context/luatex/luatex-fonts-merged.lua | 33 +++++++++++++-------- 14 files changed, 48 insertions(+), 30 deletions(-) diff --git a/scripts/context/lua/mtx-fonts.lua b/scripts/context/lua/mtx-fonts.lua index dfde92ab1..6c25760af 100644 --- a/scripts/context/lua/mtx-fonts.lua +++ b/scripts/context/lua/mtx-fonts.lua @@ -15,7 +15,7 @@ local nameonly, basename, joinpath, collapsepath = file.nameonly, file.basename, local lower = string.lower local otfversion = 2.826 -local otlversion = 3.025 +local otlversion = 3.026 local helpinfo = [[ diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index bdb7d6f74..69116a012 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/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 3eae6e337..06fa9865c 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2016.08.24 15:36} +\newcontextversion{2016.08.24 21:16} %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/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index 6c0256a1a..83a0d0162 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -39,7 +39,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2016.08.24 15:36} +\edef\contextversion{2016.08.24 21:16} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/mkiv/font-cff.lua b/tex/context/base/mkiv/font-cff.lua index 8f33c76c4..1c6bd56fd 100644 --- a/tex/context/base/mkiv/font-cff.lua +++ b/tex/context/base/mkiv/font-cff.lua @@ -1408,7 +1408,7 @@ do globals = data.routines or { } locals = dictionary.subroutines or { } - globalbias, localbias = setbias(globals,locals,version) + globalbias, localbias = setbias(globals,locals) local nominalwidth = private.data.nominalwidthx or 0 local defaultwidth = private.data.defaultwidthx or 0 @@ -1478,14 +1478,15 @@ do return glyphs end - parsecharstring = function(data,dictionary,tab,glyphs,index,doshapes,version) + parsecharstring = function(data,dictionary,tab,glyphs,index,doshapes,tversion) local private = dictionary.private keepcurve = doshapes + version = tversion strings = data.strings -- or in dict? locals = dictionary.subroutines or { } globals = data.routines or { } - globalbias = setbias(globals,locals) + globalbias, localbias = setbias(globals,locals) local nominalwidth = private and private.data.nominalwidthx or 0 local defaultwidth = private and private.data.defaultwidthx or 0 diff --git a/tex/context/base/mkiv/font-mis.lua b/tex/context/base/mkiv/font-mis.lua index f90247c89..f610ee983 100644 --- a/tex/context/base/mkiv/font-mis.lua +++ b/tex/context/base/mkiv/font-mis.lua @@ -21,7 +21,7 @@ local readers = otf.readers if readers then - otf.version = otf.version or 3.025 + otf.version = otf.version or 3.026 otf.cache = otf.cache or containers.define("fonts", "otl", otf.version, true) function fonts.helpers.getfeatures(name,save) diff --git a/tex/context/base/mkiv/font-osd.lua b/tex/context/base/mkiv/font-osd.lua index 6f715a11f..b67cc9241 100644 --- a/tex/context/base/mkiv/font-osd.lua +++ b/tex/context/base/mkiv/font-osd.lua @@ -675,7 +675,6 @@ local function initializedevanagi(tfmdata) end end if kind == "pref" then --- local sequence = dataset[3] -- was [5] local steps = sequence.steps local nofsteps = sequence.nofsteps for i=1,nofsteps do diff --git a/tex/context/base/mkiv/font-otl.lua b/tex/context/base/mkiv/font-otl.lua index 94f6a45c6..0662290bd 100644 --- a/tex/context/base/mkiv/font-otl.lua +++ b/tex/context/base/mkiv/font-otl.lua @@ -52,7 +52,7 @@ local report_otf = logs.reporter("fonts","otf loading") local fonts = fonts local otf = fonts.handlers.otf -otf.version = 3.025 -- beware: also sync font-mis.lua and in mtx-fonts +otf.version = 3.026 -- beware: also sync font-mis.lua and in mtx-fonts otf.cache = containers.define("fonts", "otl", otf.version, true) otf.svgcache = containers.define("fonts", "svg", otf.version, true) otf.pdfcache = containers.define("fonts", "pdf", otf.version, true) diff --git a/tex/context/base/mkiv/font-ots.lua b/tex/context/base/mkiv/font-ots.lua index 0c0347c25..da5d50aae 100644 --- a/tex/context/base/mkiv/font-ots.lua +++ b/tex/context/base/mkiv/font-ots.lua @@ -3754,33 +3754,42 @@ local function spaceinitializer(tfmdata,value) -- attr feat = kern end for i=1,#steps do - local step = steps[i] + local step = steps[i] local coverage = step.coverage - if coverage then + local rules = step.rules + local format = step.format + if rules then + -- not now: analyze (simple) rules + elseif coverage then -- what to do if we have no [1] but only [2] - local kerns = coverage[32] + local single = format == gpos_single + local kerns = coverage[32] if kerns then for k, v in next, kerns do - if type(v) == "table" then + if type(v) ~= "table" then + right[k] = v + elseif single then + right[k] = v[3] + else local one = v[1] if one then right[k] = one[3] end - else - right[k] = v end end end for k, v in next, coverage do local kern = v[32] if kern then - if type(kern) == "table" then + if type(kern) ~= "table" then + left[k] = kern + elseif single then + left[k] = v[3] + else local one = v[1] if one then left[k] = one[3] end - else - left[k] = kern end end end diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index 8819b504d..b1184e1eb 100644 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index c1e4be45c..829a8576a 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf differ diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf index a7d0dfa91..86a044447 100644 Binary files a/tex/context/interface/mkiv/i-context.pdf and b/tex/context/interface/mkiv/i-context.pdf differ diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf index 2c37bae5a..0f70e266c 100644 Binary files a/tex/context/interface/mkiv/i-readme.pdf and b/tex/context/interface/mkiv/i-readme.pdf differ diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 62c427592..2bac536cd 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 : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 08/24/16 15:36:43 +-- merge date : 08/24/16 21:16:06 do -- begin closure to overcome local limits and interference @@ -10381,7 +10381,7 @@ do strings=data.strings globals=data.routines or {} locals=dictionary.subroutines or {} - globalbias,localbias=setbias(globals,locals,version) + globalbias,localbias=setbias(globals,locals) local nominalwidth=private.data.nominalwidthx or 0 local defaultwidth=private.data.defaultwidthx or 0 for i=1,#charstrings do @@ -10439,13 +10439,14 @@ do end return glyphs end - parsecharstring=function(data,dictionary,tab,glyphs,index,doshapes,version) + parsecharstring=function(data,dictionary,tab,glyphs,index,doshapes,tversion) local private=dictionary.private keepcurve=doshapes + version=tversion strings=data.strings locals=dictionary.subroutines or {} globals=data.routines or {} - globalbias=setbias(globals,locals) + globalbias,localbias=setbias(globals,locals) local nominalwidth=private and private.data.nominalwidthx or 0 local defaultwidth=private and private.data.defaultwidthx or 0 if type(tab)=="string" then @@ -15321,7 +15322,7 @@ local trace_defining=false registertracker("fonts.defining",function(v) trace_de local report_otf=logs.reporter("fonts","otf loading") local fonts=fonts local otf=fonts.handlers.otf -otf.version=3.025 +otf.version=3.026 otf.cache=containers.define("fonts","otl",otf.version,true) otf.svgcache=containers.define("fonts","svg",otf.version,true) otf.pdfcache=containers.define("fonts","pdf",otf.version,true) @@ -21132,30 +21133,38 @@ local function spaceinitializer(tfmdata,value) for i=1,#steps do local step=steps[i] local coverage=step.coverage - if coverage then + local rules=step.rules + local format=step.format + if rules then + elseif coverage then + local single=format==gpos_single local kerns=coverage[32] if kerns then for k,v in next,kerns do - if type(v)=="table" then + if type(v)~="table" then + right[k]=v + elseif single then + right[k]=v[3] + else local one=v[1] if one then right[k]=one[3] end - else - right[k]=v end end end for k,v in next,coverage do local kern=v[32] if kern then - if type(kern)=="table" then + if type(kern)~="table" then + left[k]=kern + elseif single then + left[k]=v[3] + else local one=v[1] if one then left[k]=one[3] end - else - left[k]=kern end end end -- cgit v1.2.3