From 9deb7fdf2296191efffd3324bb4d77e3d2bb224f Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Mon, 2 May 2016 18:39:42 +0200 Subject: [fontloader] sync with Context as of 2016-05-02 --- src/fontloader/misc/fontloader-font-afm.lua | 16 +++++++++---- src/fontloader/misc/fontloader-font-dsp.lua | 4 ++-- src/fontloader/misc/fontloader-font-otj.lua | 8 ++++--- src/fontloader/misc/fontloader-font-otl.lua | 2 +- src/fontloader/misc/fontloader-font-ots.lua | 2 +- src/fontloader/misc/fontloader-l-file.lua | 2 +- src/fontloader/runtime/fontloader-reference.lua | 30 ++++++++++++++++--------- 7 files changed, 41 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/fontloader/misc/fontloader-font-afm.lua b/src/fontloader/misc/fontloader-font-afm.lua index 99b8577..0d6b7cb 100644 --- a/src/fontloader/misc/fontloader-font-afm.lua +++ b/src/fontloader/misc/fontloader-font-afm.lua @@ -228,7 +228,8 @@ do -- old font loader - local fontloader = fontloader + local fontloader = fontloader + local get_indexes_old = false if fontloader then @@ -236,7 +237,7 @@ do local open_font = fontloader.open local close_font = fontloader.close - local function get_indexes_old(data,pfbname) + get_indexes_old = function(data,pfbname) local pfbblob = open_font(pfbname) if pfbblob then local characters = data.characters @@ -394,7 +395,7 @@ do end end - if fontloader then + if get_indexes_old then afm.use_new_indexer = true get_indexes_new = get_indexes @@ -598,7 +599,15 @@ unify = function(data, filename) resources.private = private end +local everywhere = { ["*"] = { ["*"] = true } } -- or: { ["*"] = { "*" } } +local noflags = { false, false, false, false } + +afm.experimental_normalize = false + normalize = function(data) + if type(afm.experimental_normalize) == "function" then + afm.experimental_normalize(data) + end end fixnames = function(data) @@ -616,7 +625,6 @@ fixnames = function(data) end end - --[[ldx--

These helpers extend the basic table with extra ligatures, texligatures and extra kerns. This saves quite some lookups later.

diff --git a/src/fontloader/misc/fontloader-font-dsp.lua b/src/fontloader/misc/fontloader-font-dsp.lua index 85a80bd..330a940 100644 --- a/src/fontloader/misc/fontloader-font-dsp.lua +++ b/src/fontloader/misc/fontloader-font-dsp.lua @@ -1144,8 +1144,8 @@ local function handlemark(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyp end for i=1,nofbaserecords do local components = baserecords[i] - local b = basecoverage[i] if components then + local b = basecoverage[i] for c=1,#components do local classes = components[c] if classes then @@ -1160,7 +1160,7 @@ local function handlemark(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyp end end end - components[i] = classes +-- components[i] = classes end end end diff --git a/src/fontloader/misc/fontloader-font-otj.lua b/src/fontloader/misc/fontloader-font-otj.lua index ebda723..6ff80d8 100644 --- a/src/fontloader/misc/fontloader-font-otj.lua +++ b/src/fontloader/misc/fontloader-font-otj.lua @@ -1202,9 +1202,11 @@ local function inject_everything(head,where) else -- local i = rawget(p,"emptyinjections") local i = p.emptyinjections - local leftkern = i.leftkern - if leftkern and leftkern ~= 0 then - setfield(prev,"replace",newkern(leftkern)) -- maybe also leftkern + if i then + local leftkern = i.leftkern + if leftkern and leftkern ~= 0 then + setfield(prev,"replace",newkern(leftkern)) -- maybe also leftkern + end end end if done then diff --git a/src/fontloader/misc/fontloader-font-otl.lua b/src/fontloader/misc/fontloader-font-otl.lua index bcea275..f7b6eb5 100644 --- a/src/fontloader/misc/fontloader-font-otl.lua +++ b/src/fontloader/misc/fontloader-font-otl.lua @@ -53,7 +53,7 @@ local report_otf = logs.reporter("fonts","otf loading") local fonts = fonts local otf = fonts.handlers.otf -otf.version = 3.018 -- beware: also sync font-mis.lua and in mtx-fonts +otf.version = 3.019 -- beware: also sync font-mis.lua and in mtx-fonts otf.cache = containers.define("fonts", "otl", otf.version, true) local otfreaders = otf.readers diff --git a/src/fontloader/misc/fontloader-font-ots.lua b/src/fontloader/misc/fontloader-font-ots.lua index 90fcde2..21225c2 100644 --- a/src/fontloader/misc/fontloader-font-ots.lua +++ b/src/fontloader/misc/fontloader-font-ots.lua @@ -3347,7 +3347,7 @@ local function txtdirstate(start,stack,top,rlparmode) new = rlparmode end if trace_directions then - report_process("directions after txtdir %a: parmode %a, txtmode %a, level %a",dir,mref(rlparmode),mref(new),topstack) + report_process("directions after txtdir %a: parmode %a, txtmode %a, level %a",dir,mref(rlparmode),mref(new),top) end return getnext(start), top, new end diff --git a/src/fontloader/misc/fontloader-l-file.lua b/src/fontloader/misc/fontloader-l-file.lua index 7ed6370..b6822e9 100644 --- a/src/fontloader/misc/fontloader-l-file.lua +++ b/src/fontloader/misc/fontloader-l-file.lua @@ -436,7 +436,7 @@ local deslasher = lpeg.replacer(S("\\/")^1,"/") function file.join(one, two, three, ...) if not two then - return one == "" and one or lpegmatch(stripper,one) + return one == "" and one or lpegmatch(reslasher,one) end if one == "" then return lpegmatch(stripper,three and concat({ two, three, ... },"/") or two) diff --git a/src/fontloader/runtime/fontloader-reference.lua b/src/fontloader/runtime/fontloader-reference.lua index 5be6493..5f35ded 100644 --- a/src/fontloader/runtime/fontloader-reference.lua +++ b/src/fontloader/runtime/fontloader-reference.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 : 04/27/16 10:18:10 +-- merge date : 05/01/16 09:52:32 do -- begin closure to overcome local limits and interference @@ -2545,7 +2545,7 @@ local reslasher=lpeg.replacer(S("\\/"),"/") local deslasher=lpeg.replacer(S("\\/")^1,"/") function file.join(one,two,three,...) if not two then - return one=="" and one or lpegmatch(stripper,one) + return one=="" and one or lpegmatch(reslasher,one) end if one=="" then return lpegmatch(stripper,three and concat({ two,three,... },"/") or two) @@ -7114,11 +7114,12 @@ end local get_indexes do local fontloader=fontloader + local get_indexes_old=false if fontloader then local font_to_table=fontloader.to_table local open_font=fontloader.open local close_font=fontloader.close - local function get_indexes_old(data,pfbname) + get_indexes_old=function(data,pfbname) local pfbblob=open_font(pfbname) if pfbblob then local characters=data.characters @@ -7235,7 +7236,7 @@ do end end end - if fontloader then + if get_indexes_old then afm.use_new_indexer=true get_indexes_new=get_indexes get_indexes=function(data,pfbname) @@ -7415,7 +7416,13 @@ unify=function(data,filename) resources.marks={} resources.private=private end +local everywhere={ ["*"]={ ["*"]=true } } +local noflags={ false,false,false,false } +afm.experimental_normalize=false normalize=function(data) + if type(afm.experimental_normalize)=="function" then + afm.experimental_normalize(data) + end end fixnames=function(data) for k,v in next,data.descriptions do @@ -12678,8 +12685,8 @@ local function handlemark(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyp end for i=1,nofbaserecords do local components=baserecords[i] - local b=basecoverage[i] if components then + local b=basecoverage[i] for c=1,#components do local classes=components[c] if classes then @@ -12694,7 +12701,6 @@ local function handlemark(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyp end end end - components[i]=classes end end end @@ -15639,7 +15645,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.018 +otf.version=3.019 otf.cache=containers.define("fonts","otl",otf.version,true) local otfreaders=otf.readers local hashes=fonts.hashes @@ -17657,9 +17663,11 @@ local function inject_everything(head,where) end else local i=p.emptyinjections - local leftkern=i.leftkern - if leftkern and leftkern~=0 then - setfield(prev,"replace",newkern(leftkern)) + if i then + local leftkern=i.leftkern + if leftkern and leftkern~=0 then + setfield(prev,"replace",newkern(leftkern)) + end end end if done then @@ -21029,7 +21037,7 @@ local function txtdirstate(start,stack,top,rlparmode) new=rlparmode end if trace_directions then - report_process("directions after txtdir %a: parmode %a, txtmode %a, level %a",dir,mref(rlparmode),mref(new),topstack) + report_process("directions after txtdir %a: parmode %a, txtmode %a, level %a",dir,mref(rlparmode),mref(new),top) end return getnext(start),top,new end -- cgit v1.2.3