[latex3-commits] [git/LaTeX3-latex3-luaotfload] dev, main: Import patched fontloader with fix for Variable font bug (ace04e1)

Marcel Fabian Krüger tex at 2krueger.de
Wed Jun 15 18:35:13 CEST 2022


Repository : https://github.com/latex3/luaotfload
On branches: dev,main
Link       : https://github.com/latex3/luaotfload/commit/ace04e1947e373ad4512ba26a3b74c26d959a52f

>---------------------------------------------------------------

commit ace04e1947e373ad4512ba26a3b74c26d959a52f
Author: Marcel Fabian Krüger <tex at 2krueger.de>
Date:   Wed Jun 15 18:35:13 2022 +0200

    Import patched fontloader with fix for  Variable font bug


>---------------------------------------------------------------

ace04e1947e373ad4512ba26a3b74c26d959a52f
 build.lua                                          |   2 +-
 ...er-2022-05-01.lua => fontloader-2022-06-15.lua} | 188 ++++++++++-----------
 src/auto/luaotfload-status.lua                     |  36 ++--
 src/fontloader/misc/fontloader-font-dsp.lua        |   4 +-
 .../misc/fontloader-font-imp-ligatures.lua         |   4 +-
 src/fontloader/misc/fontloader-font-otc.lua        |  20 +--
 src/fontloader/runtime/fontloader-reference.lua    |  24 +--
 testfiles/aaaaa-luakern.tlg                        |   2 +-
 8 files changed, 140 insertions(+), 140 deletions(-)

diff --git a/build.lua b/build.lua
index 1a67f57..2873428 100644
--- a/build.lua
+++ b/build.lua
@@ -1,7 +1,7 @@
 
 packageversion= "3.22-dev"
 packagedate   = "2022-03-18"
-fontloaderdate= "2022-05-01"
+fontloaderdate= "2022-06-15"
 packagedesc   = ""
 
 module   = "luaotfload"
diff --git a/src/auto/fontloader-2022-05-01.lua b/src/auto/fontloader-2022-06-15.lua
similarity index 99%
rename from src/auto/fontloader-2022-05-01.lua
rename to src/auto/fontloader-2022-06-15.lua
index 44245a6..5e0af8e 100644
--- a/src/auto/fontloader-2022-05-01.lua
+++ b/src/auto/fontloader-2022-06-15.lua
@@ -1,6 +1,6 @@
 --[[info-----------------------------------------------------------------------
   Luaotfload fontloader package
-  build 2022-05-01 18:13:32
+  build 2022-06-15 18:33:10
 -------------------------------------------------------------------------------
 
   © 2022 PRAGMA ADE / ConTeXt Development Team
@@ -63,7 +63,7 @@
 --info]]-----------------------------------------------------------------------
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “data-con” 23a0f5386d46a1c157ae82a373e35fa0] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “data-con” 23a0f5386d46a1c157ae82a373e35fa0] ---
 
 if not modules then modules={} end modules ['data-con']={
  version=1.100,
@@ -184,10 +184,10 @@ function containers.cleanname(name)
  return (gsub(lower(name),"[^%w\128-\255]+","-")) 
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “data-con”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “data-con”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “basics-nod” 1750af43148def9e7a75c6900a96f9dc] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “basics-nod” 1750af43148def9e7a75c6900a96f9dc] ---
 
 if not modules then modules={} end modules ['luatex-fonts-nod']={
  version=1.001,
@@ -454,10 +454,10 @@ do
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “basics-nod”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “basics-nod”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “basics-chr” ce4afac7ba19471f3c8f90800839f315] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “basics-chr” ce4afac7ba19471f3c8f90800839f315] ---
 
 
 characters=characters or {}
@@ -4291,10 +4291,10 @@ characters.indicgroups={
  },
 }
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “basics-chr”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “basics-chr”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ini” 5343de60613adb24cdd7a8d2ee1d153c] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ini” 5343de60613adb24cdd7a8d2ee1d153c] ---
 
 if not modules then modules={} end modules ['font-ini']={
  version=1.001,
@@ -4335,10 +4335,10 @@ if node and not tex.getfontoffamily then
  tex.getfontoffamily=node.family_font 
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ini”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ini”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-mis” 17e967c9ec4d001deefd43ddf25e98f7] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-mis” 17e967c9ec4d001deefd43ddf25e98f7] ---
 
 if not modules then modules={} end modules ['luatex-font-mis']={
  version=1.001,
@@ -4370,10 +4370,10 @@ function font.each()
  return table.sortedhash(fonts.hashes.identifiers)
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-mis”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-mis”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-con” 724e5dd14aec2d4d189f8619898004cf] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-con” 724e5dd14aec2d4d189f8619898004cf] ---
 
 if not modules then modules={} end modules ['font-con']={
  version=1.001,
@@ -5741,10 +5741,10 @@ function constructors.addcoreunicodes(unicodes)
  return unicodes
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-con”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-con”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-enc” c24fd6b4f34f87b9c4ff5e6193ce2656] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-enc” c24fd6b4f34f87b9c4ff5e6193ce2656] ---
 
 if not modules then modules={} end modules ['luatex-font-enc']={
  version=1.001,
@@ -5819,10 +5819,10 @@ function encodings.load(filename)
  return containers.write(encodings.cache,name,data)
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-enc”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-enc”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-cid” 22b0367742fb253deef84ef7ccf5e8de] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-cid” 22b0367742fb253deef84ef7ccf5e8de] ---
 
 if not modules then modules={} end modules ['font-cid']={
  version=1.001,
@@ -5973,10 +5973,10 @@ function cid.getmap(specification)
  return found
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-cid”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-cid”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-map” 27ee748150e56f5f0e5f0fefc864f35e] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-map” 27ee748150e56f5f0e5f0fefc864f35e] ---
 
 if not modules then modules={} end modules ['font-map']={
  version=1.001,
@@ -6384,10 +6384,10 @@ function mappings.addtounicode(data,filename,checklookups,forceligatures)
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-map”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-map”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-vfc” a81c29eda98cd62cbebdb6c93544b50d] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-vfc” a81c29eda98cd62cbebdb6c93544b50d] ---
 
 if not modules then modules={} end modules ['font-vfc']={
  version=1.001,
@@ -6484,10 +6484,10 @@ helpers.commands=utilities.storage.allocate {
  dummy=dummy,
 }
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-vfc”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-vfc”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-otr” 1896ac990a961f6d6fec551ca9b52a83] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otr” 1896ac990a961f6d6fec551ca9b52a83] ---
 
 if not modules then modules={} end modules ['font-otr']={
  version=1.001,
@@ -8331,10 +8331,10 @@ function readers.extend(fontdata)
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-otr”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otr”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-oti” 309a75f9c14b77d87e94eba827dc4e71] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oti” 309a75f9c14b77d87e94eba827dc4e71] ---
 
 if not modules then modules={} end modules ['font-oti']={
  version=1.001,
@@ -8477,10 +8477,10 @@ function otffeatures.checkeddefaultlanguage(featuretype,autolanguage,languages)
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-oti”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oti”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ott” 3f67b1b1d40bbc222681d8db4aff0f42] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ott” 3f67b1b1d40bbc222681d8db4aff0f42] ---
 
 if not modules then modules={} end modules ["font-ott"]={
  version=1.001,
@@ -9596,10 +9596,10 @@ function otffeatures.normalize(features,wrap)
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ott”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ott”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-cff” e38c1a40e1d1d577cdf7920fa50d0654] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-cff” e38c1a40e1d1d577cdf7920fa50d0654] ---
 
 if not modules then modules={} end modules ['font-cff']={
  version=1.001,
@@ -11828,10 +11828,10 @@ function readers.cffcheck(filename)
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-cff”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-cff”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ttf” a3ff07150b3535fd32f68748d53fcd36] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ttf” a3ff07150b3535fd32f68748d53fcd36] ---
 
 if not modules then modules={} end modules ['font-ttf']={
  version=1.001,
@@ -13091,10 +13091,10 @@ function readers.gvar(f,fontdata,specification,glyphdata,shapedata)
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ttf”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ttf”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-dsp” b48e3808173f415938f6c6b202ef3bd0] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-dsp” 4935e6605ffd7bf57e66f0b6c132f883] ---
 
 if not modules then modules={} end modules ['font-dsp']={
  version=1.001,
@@ -15140,7 +15140,7 @@ do
    local scriptoffset=tableoffset+readushort(f)
    local featureoffset=tableoffset+readushort(f)
    local lookupoffset=tableoffset+readushort(f)
-   local variationsoffset=version>0x00010000 and (tableoffset+readulong(f)) or 0
+   local variationsoffset=version>0x00010000 and readulong(f) or 0
    if not scriptoffset then
     return
    end
@@ -15160,7 +15160,7 @@ do
     resolvelookups(f,lookupoffset,fontdata,lookups,lookuptypes,lookuphandlers,what,tableoffset)
    end
    if variationsoffset>0 then
-    loadvariations(f,fontdata,variationsoffset,lookuptypes,featurehash,featureorder)
+    loadvariations(f,fontdata,tableoffset+variationsoffset,lookuptypes,featurehash,featureorder)
    end
   end
  end
@@ -16372,10 +16372,10 @@ function readers.mvar(f,fontdata,specification)
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-dsp”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-dsp”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-oup” 76dc3379061e5650f772909966b5759e] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oup” 76dc3379061e5650f772909966b5759e] ---
 
 if not modules then modules={} end modules ['font-oup']={
  version=1.001,
@@ -19213,10 +19213,10 @@ end
  expandlookups(sublookups,sequences)
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-oup”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oup”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-otl” 308b1aab04bc131da7eb8e8c3b0471d4] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otl” 308b1aab04bc131da7eb8e8c3b0471d4] ---
 
 if not modules then modules={} end modules ['font-otl']={
  version=1.001,
@@ -19944,10 +19944,10 @@ otf.coverup={
  end
 }
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-otl”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otl”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-oto” 9febc4d75d17a543cd73fb17918f7307] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oto” 9febc4d75d17a543cd73fb17918f7307] ---
 
 if not modules then modules={} end modules ['font-oto']={ 
  version=1.001,
@@ -20416,10 +20416,10 @@ registerotffeature {
 }
 otf.basemodeinitializer=featuresinitializer
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-oto”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oto”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-otj” b2c165bd6771a57633f992d07384b739] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otj” b2c165bd6771a57633f992d07384b739] ---
 
 if not modules then modules={} end modules ['font-otj']={
  version=1.001,
@@ -21912,10 +21912,10 @@ function injections.handler(head,where)
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-otj”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otj”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ota” 2bb12d708e35bc05443eba791e2554e7] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ota” 2bb12d708e35bc05443eba791e2554e7] ---
 
 if not modules then modules={} end modules ['font-ota']={
  version=1.001,
@@ -22409,10 +22409,10 @@ directives.register("otf.analyze.useunicodemarks",function(v)
  analyzers.useunicodemarks=v
 end)
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ota”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ota”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ots” 55316a605d11a1d07d38795224c90a63] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ots” 55316a605d11a1d07d38795224c90a63] ---
 
 if not modules then modules={} end modules ['font-ots']={ 
  version=1.001,
@@ -26072,10 +26072,10 @@ registerotffeature {
  },
 }
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ots”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ots”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-osd” 9b5337b0051b8e42b6c8329127c59794] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-osd” 9b5337b0051b8e42b6c8329127c59794] ---
 
 if not modules then modules={} end modules ['font-osd']={ 
  version=1.001,
@@ -28716,10 +28716,10 @@ for i=1,nofscripts do
  methods[scripts_two[i]]=method_two
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-osd”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-osd”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ocl” 2a377351ae23c339764ec8ce2e8e9164] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ocl” 2a377351ae23c339764ec8ce2e8e9164] ---
 
 if not modules then modules={} end modules ['font-ocl']={
  version=1.001,
@@ -29267,10 +29267,10 @@ if context then
  }
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-ocl”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ocl”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-otc” 58f45d00814b803178c58f640ae7e628] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otc” 57f5270b894e40efa93149c7d3fb0209] ---
 
 if not modules then modules={} end modules ['font-otc']={
  version=1.001,
@@ -29716,14 +29716,14 @@ local function addfeature(data,feature,specifications,prepareonly)
     local lookups=rule.lookups or false
     local subtype=nil
     if lookups and sublookups then
-if #lookups>0 then
- local ns=stop-start+1
- for i=1,ns do
-  if lookups[i]==nil then
-   lookups[i]=0
-  end
- end
-end
+     if #lookups>0 then
+      local ns=stop-start+1
+      for i=1,ns do
+       if lookups[i]==nil then
+        lookups[i]=0
+       end
+      end
+     end
      local l={}
      for k,v in sortedhash(lookups) do
       local t=type(v)
@@ -30019,7 +30019,7 @@ end
       order=featureorder,
       [stepkey]=steps,
       nofsteps=nofsteps,
-      type=types[featuretype],
+      type=specification.handler or types[featuretype],
      }
      if prepareonly then
       return sequence
@@ -30094,10 +30094,10 @@ end
 otf.enhancers.enhance=enhance
 otf.enhancers.register("check extra features",enhance)
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-otc”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otc”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-onr” 6d161533f3437435e12a0ad64866df44] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-onr” 6d161533f3437435e12a0ad64866df44] ---
 
 if not modules then modules={} end modules ['font-onr']={
  version=1.001,
@@ -30470,10 +30470,10 @@ function readers.getinfo(filename)
  end
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-onr”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-onr”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-one” bd39d42055a44ca2002f8ddbbbbf27c3] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-one” bd39d42055a44ca2002f8ddbbbbf27c3] ---
 
 if not modules then modules={} end modules ['font-one']={
  version=1.001,
@@ -31188,10 +31188,10 @@ registerafmenhancer("normalize features",enhance_normalize_features)
 registerafmenhancer("check extra features",otfenhancers.enhance)
 registerafmenhancer("fix names",enhance_fix_names)
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-one”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-one”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-afk” 9da14e0fb22129c053acc599d1312544] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-afk” 9da14e0fb22129c053acc599d1312544] ---
 
 if not modules then modules={} end modules ['font-afk']={
  version=1.001,
@@ -31358,10 +31358,10 @@ fonts.handlers.afm.helpdata={
  }
 }
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-afk”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-afk”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-tfm” f0eb5e2a8068b17ad401bb7efdba1630] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-tfm” f0eb5e2a8068b17ad401bb7efdba1630] ---
 
 if not modules then modules={} end modules ['luatex-fonts-tfm']={
  version=1.001,
@@ -31876,10 +31876,10 @@ registertfmfeature {
  }
 }
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-tfm”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-tfm”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-lua” 1fbfdf7b689b2bdfd0e3bb9bf74ce136] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-lua” 1fbfdf7b689b2bdfd0e3bb9bf74ce136] ---
 
 if not modules then modules={} end modules ['font-lua']={
  version=1.001,
@@ -31919,10 +31919,10 @@ function readers.lua(specification)
  return check_lua(specification,fullname)
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-lua”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-lua”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-def” b9d908c2338b7dc443ce9d1e9fcb7139] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-def” b9d908c2338b7dc443ce9d1e9fcb7139] ---
 
 if not modules then modules={} end modules ['font-def']={
  version=1.001,
@@ -32322,10 +32322,10 @@ if not context then
  callbacks.register('define_font',definers.read,"definition of fonts (tfmdata preparation)")
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-def”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-def”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-shp” a40862fe382d26c1f3753431254bcfdd] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-shp” a40862fe382d26c1f3753431254bcfdd] ---
 
 if not modules then modules={} end modules ['font-shp']={
  version=1.001,
@@ -32690,10 +32690,10 @@ callback.register("glyph_stream_provider",function(id,index,mode)
  return ""
 end)
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-shp”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-shp”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-def” f435e0875f203f343157baeff876ec9c] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-def” f435e0875f203f343157baeff876ec9c] ---
 
 if not modules then modules={} end modules ['luatex-fonts-def']={
  version=1.001,
@@ -32774,10 +32774,10 @@ function fonts.definers.applypostprocessors(tfmdata)
  return tfmdata
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-def”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-def”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-ext” 32013cbc5d5d336be8b1d1e5879d86c4] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-ext” 32013cbc5d5d336be8b1d1e5879d86c4] ---
 
 if not modules then modules={} end modules ['luatex-fonts-ext']={
  version=1.001,
@@ -32963,10 +32963,10 @@ registerotffeature {
  }
 }
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-ext”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-ext”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-imp-tex” ceb087ef6fa2f89aed7179f60ddf8f35] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-tex” ceb087ef6fa2f89aed7179f60ddf8f35] ---
 
 if not modules then modules={} end modules ['font-imp-tex']={
  version=1.001,
@@ -33065,10 +33065,10 @@ registerotffeature {
  description="arabic digits",
 }
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-imp-tex”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-tex”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-imp-ligatures” 26ffcf089391445f7af59536c8814364] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-ligatures” 250f6f4488ee770c23177afb2ff75676] ---
 
 if not modules then modules={} end modules ['font-imp-ligatures']={
  version=1.001,
@@ -33163,12 +33163,12 @@ local function blockligatures(str)
     before=before,
     current={ one,two },
     after=after,
-    lookups={ 1 },
+    lookups={ 1,false },
    }
    revert[new]={
     current={ one,zwj },
     after={ two },
-    lookups={ 1 },
+    lookups={ 1,false },
    }
   end
  end
@@ -33182,10 +33182,10 @@ if context then
  }
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-imp-ligatures”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-ligatures”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-imp-italics” defcb415bc1e0a0999b27773902adc18] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-italics” defcb415bc1e0a0999b27773902adc18] ---
 
 if not modules then modules={} end modules ['font-imp-italics']={
  version=1.001,
@@ -33289,10 +33289,10 @@ if context then
  registerafmfeature(dimensions_specification)
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-imp-italics”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-italics”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “font-imp-effects” d05997c1826355548ec9aec1346f9f23] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-effects” d05997c1826355548ec9aec1346f9f23] ---
 
 if not modules then modules={} end modules ['font-imp-effects']={
  version=1.001,
@@ -33649,10 +33649,10 @@ local specification={
 registerotffeature(specification)
 registerafmfeature(specification)
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “font-imp-effects”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-effects”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-lig” fbd251eea3810a43a8d5542319361d68] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-lig” fbd251eea3810a43a8d5542319361d68] ---
 
 
 fonts.handlers.otf.addfeature {
@@ -35721,10 +35721,10 @@ fonts.handlers.otf.addfeature {
  ["type"]="ligature",
 }
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-lig”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-lig”] ---
 
 
-do  --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-gbn” 34e4543a02f6fbc8c2ade896cb6dc7df] ---
+do  --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-gbn” 34e4543a02f6fbc8c2ade896cb6dc7df] ---
 
 if not modules then modules={} end modules ['luatex-fonts-gbn']={
  version=1.001,
@@ -35989,7 +35989,7 @@ function nodes.simple_font_handler(head,groupcode,size,packtype,direction)
  return head
 end
 
-end --- [luaotfload, fontloader-2022-05-01.lua scope for “fonts-gbn”] ---
+end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-gbn”] ---
 
 
 --- vim:ft=lua:sw=2:ts=8:et:tw=79
diff --git a/src/auto/luaotfload-status.lua b/src/auto/luaotfload-status.lua
index a352acf..38d5cf9 100644
--- a/src/auto/luaotfload-status.lua
+++ b/src/auto/luaotfload-status.lua
@@ -1,6 +1,6 @@
 return {
  ["hashes"]={
-  { "fontloader-2022-05-01.lua", "4db2359f472eb6905435e1446d2a6464" },
+  { "fontloader-2022-06-15.lua", "1d9c716b5c1d6ff84bee5e4ba3631eac" },
   { "fontloader-util-fil.lua", "d0accf4180201efd567816a25ad5e037" },
   { "fontloader-util-str.lua", "f4a9dd15c3e40cd3915749ac13837c95" },
   { "fontloader-l-unicode.lua", "f368874f11f3c525de5864fd413e4b24" },
@@ -24,7 +24,7 @@ return {
   { "fontloader-basics-nod.lua", "1750af43148def9e7a75c6900a96f9dc" },
   { "fontloader-font-imp-effects.lua", "d05997c1826355548ec9aec1346f9f23" },
   { "fontloader-font-imp-italics.lua", "defcb415bc1e0a0999b27773902adc18" },
-  { "fontloader-font-imp-ligatures.lua", "26ffcf089391445f7af59536c8814364" },
+  { "fontloader-font-imp-ligatures.lua", "250f6f4488ee770c23177afb2ff75676" },
   { "fontloader-font-imp-tex.lua", "ceb087ef6fa2f89aed7179f60ddf8f35" },
   { "fontloader-font-shp.lua", "a40862fe382d26c1f3753431254bcfdd" },
   { "fontloader-font-def.lua", "b9d908c2338b7dc443ce9d1e9fcb7139" },
@@ -34,7 +34,7 @@ return {
   { "fontloader-font-onr.lua", "6d161533f3437435e12a0ad64866df44" },
   { "fontloader-font-ocl.lua", "2a377351ae23c339764ec8ce2e8e9164" },
   { "fontloader-font-osd.lua", "9b5337b0051b8e42b6c8329127c59794" },
-  { "fontloader-font-otc.lua", "58f45d00814b803178c58f640ae7e628" },
+  { "fontloader-font-otc.lua", "57f5270b894e40efa93149c7d3fb0209" },
   { "fontloader-font-ots.lua", "55316a605d11a1d07d38795224c90a63" },
   { "fontloader-font-ota.lua", "2bb12d708e35bc05443eba791e2554e7" },
   { "fontloader-font-oup.lua", "76dc3379061e5650f772909966b5759e" },
@@ -43,7 +43,7 @@ return {
   { "fontloader-font-otl.lua", "308b1aab04bc131da7eb8e8c3b0471d4" },
   { "fontloader-font-ott.lua", "3f67b1b1d40bbc222681d8db4aff0f42" },
   { "fontloader-font-oti.lua", "309a75f9c14b77d87e94eba827dc4e71" },
-  { "fontloader-font-dsp.lua", "b48e3808173f415938f6c6b202ef3bd0" },
+  { "fontloader-font-dsp.lua", "4935e6605ffd7bf57e66f0b6c132f883" },
   { "fontloader-font-ttf.lua", "a3ff07150b3535fd32f68748d53fcd36" },
   { "fontloader-font-cff.lua", "e38c1a40e1d1d577cdf7920fa50d0654" },
   { "fontloader-font-otr.lua", "1896ac990a961f6d6fec551ca9b52a83" },
@@ -53,7 +53,7 @@ return {
   { "fontloader-font-con.lua", "724e5dd14aec2d4d189f8619898004cf" },
   { "fontloader-font-ini.lua", "5343de60613adb24cdd7a8d2ee1d153c" },
   { "fontloader-data-con.lua", "23a0f5386d46a1c157ae82a373e35fa0" },
-  { "fontloader-reference.lua", "997f8f6ae9cef1a64a682dc3aa00418c" },
+  { "fontloader-reference.lua", "c256fdcc4661bf9c868002fe0f996d73" },
   { "fontloader-basics-gen.lua", "e470c13b1ed41e38932e93518219ad74" },
   { "mktests", "918cb50be9ee8bd645ac1a27dc501e8c" },
   { "mkstatus", "6487aa14651883312acefcb6fe988598" },
@@ -64,26 +64,26 @@ return {
   { "luaotfload-characters.lua", "76415ca3ede312cad6e09038323489ae" },
   { "luaotfload-dvi.lua", "4ae70e6801d9597713901ef8fa02d46f" },
   { "luaotfload-tounicode.lua", "f7012c514f4563f8a75daa496579a7a6" },
-  { "luaotfload-unicode.lua", "11ed010be80ccb16da82994ff0145b13" },
-  { "luaotfload-resolvers.lua", "4fb32b201e4da5a3c9cda3aa8853dd07" },
-  { "luaotfload-parsers.lua", "29249930f34e9d412d24b21298db1143" },
+  { "luaotfload-unicode.lua", "f08d1981023dc335af0f09b3655174d3" },
+  { "luaotfload-resolvers.lua", "fdebf1737c75a5236088f5b8a7e0d36a" },
+  { "luaotfload-parsers.lua", "f88898f77e85beb716495449c129bf69" },
   { "luaotfload-fallback.lua", "3ebc4967f8b1a80224cf08968c64767e" },
   { "luaotfload-szss.lua", "f6e32007d4131ca3a5ef4d6cda09812a" },
   { "luaotfload-scripts.lua", "7bea4bed3c1345cec43c9e25007ed672" },
   { "luaotfload-multiscript.lua", "12d97b2faf47478bf26d54539a3a6eae" },
-  { "luaotfload-loaders.lua", "52f6fa3120b20aad5d074c38efca7590" },
-  { "luaotfload-harf-plug.lua", "62735e863f825e3d28f6d4846b2fe7d4" },
-  { "luaotfload-harf-define.lua", "d2f5a0586baac0e715eed0ebaa162c45" },
+  { "luaotfload-loaders.lua", "f1d094c8313b15334d36a1fe81b81b39" },
+  { "luaotfload-harf-plug.lua", "c098aeb6502aad3a158e85ebe638e0eb" },
+  { "luaotfload-harf-define.lua", "985444f4afeed3da801de9bcc98a388e" },
   { "luaotfload-notdef.lua", "7066b19487e91803517736881dbe2be1" },
   { "luaotfload-embolden.lua", "de2cb4cfb1269013e3b5d078ded29d39" },
   { "luaotfload-letterspace.lua", "d89d218e15b3e956df9a3a564ab5523d" },
-  { "luaotfload-features.lua", "d812a7f35b8a77e1b13c5501900a668b" },
-  { "luaotfload-database.lua", "47ccba5c094a0ea3ee32d4b446e7c933" },
+  { "luaotfload-features.lua", "72bdfd6826a1c2d406a189048d97934a" },
+  { "luaotfload-database.lua", "b58e88cae340c5e47ddf423f307ba27a" },
   { "luaotfload-configuration.lua", "87fd6bd96c303652cfe6bcecfbbc2bc2" },
-  { "luaotfload-colors.lua", "67e2f52b89bd9cb258aeda85d3e4fff8" },
+  { "luaotfload-colors.lua", "29a29c642d968c4a5a93727398f16258" },
   { "luaotfload-auxiliary.lua", "beceab9a06423d5e74f57980f9aee2e7" },
   { "luaotfload-filelist.lua", "d6ebbd2138bc6d419d961842fd827307" },
-  { "luaotfload-tool.lua", "8ba45553067cefa4b8a2370c0f0d3510" },
+  { "luaotfload-tool.lua", "8688bde3f193428a8c862d83d1d2f385" },
   { "luaotfload-diagnostics.lua", "4a8e1a6c90dea50544f636dc4265bb55" },
   { "luaotfload-log.lua", "c5812e703ad21cab0812cf42f8fb20de" },
   { "luaotfload-init.lua", "7dcde79adf394350960dd9663f21bdc5" },
@@ -92,8 +92,8 @@ return {
  ["notes"]={
   ["committer"]="Marcel Fabian Krüger <tex at 2krueger.de>",
   ["description"]="v3.22-dev/2022-03-18",
-  ["loader"]="fontloader-2022-05-01.lua",
-  ["revision"]="2b28136edde8380ac19bb2436350c1e9769e1ca4",
-  ["timestamp"]="2022-05-01 17:46:05 +0200",
+  ["loader"]="fontloader-2022-06-15.lua",
+  ["revision"]="af58588d7b70c357f0cf9feb766e51a21f12d635",
+  ["timestamp"]="2022-06-15 18:29:42 +0200",
  },
 }
\ No newline at end of file
diff --git a/src/fontloader/misc/fontloader-font-dsp.lua b/src/fontloader/misc/fontloader-font-dsp.lua
index 74a0a1f..d036783 100644
--- a/src/fontloader/misc/fontloader-font-dsp.lua
+++ b/src/fontloader/misc/fontloader-font-dsp.lua
@@ -2515,7 +2515,7 @@ do
             local scriptoffset     = tableoffset + readushort(f)
             local featureoffset    = tableoffset + readushort(f)
             local lookupoffset     = tableoffset + readushort(f)
-            local variationsoffset = version > 0x00010000 and (tableoffset + readulong(f)) or 0
+            local variationsoffset = version > 0x00010000 and readulong(f) or 0
             if not scriptoffset then
                 return
             end
@@ -2541,7 +2541,7 @@ do
             end
             --
             if variationsoffset > 0 then
-                loadvariations(f,fontdata,variationsoffset,lookuptypes,featurehash,featureorder)
+                loadvariations(f,fontdata,tableoffset + variationsoffset,lookuptypes,featurehash,featureorder)
             end
         end
     end
diff --git a/src/fontloader/misc/fontloader-font-imp-ligatures.lua b/src/fontloader/misc/fontloader-font-imp-ligatures.lua
index 091eb5d..0283370 100644
--- a/src/fontloader/misc/fontloader-font-imp-ligatures.lua
+++ b/src/fontloader/misc/fontloader-font-imp-ligatures.lua
@@ -104,14 +104,14 @@ local function blockligatures(str)
                 before  = before,
                 current = { one, two },
                 after   = after,
-                lookups = { 1 }, -- not shared !
+                lookups = { 1, false }, -- not shared !
             }
             revert[new] = {
              -- before = before,
                 current = { one, zwj },
              -- after   = { two, unpack(after) },
                 after   = { two },
-                lookups = { 1 }, -- not shared !
+                lookups = { 1, false }, -- not shared !
             }
         end
     end
diff --git a/src/fontloader/misc/fontloader-font-otc.lua b/src/fontloader/misc/fontloader-font-otc.lua
index 943bb7e..67b77b1 100644
--- a/src/fontloader/misc/fontloader-font-otc.lua
+++ b/src/fontloader/misc/fontloader-font-otc.lua
@@ -501,15 +501,15 @@ local function addfeature(data,feature,specifications,prepareonly)
                 local lookups = rule.lookups or false
                 local subtype = nil
                 if lookups and sublookups then
--- inspect(lookups)
-if #lookups > 0 then
-    local ns = stop - start + 1
-    for i=1,ns do
-        if lookups[i] == nil then
-            lookups[i] = 0
-        end
-    end
-end
+                    -- inspect(lookups)
+                    if #lookups > 0 then
+                        local ns = stop - start + 1
+                        for i=1,ns do
+                            if lookups[i] == nil then
+                                lookups[i] = 0
+                            end
+                        end
+                    end
                     local l = { }
                     for k, v in sortedhash(lookups) do
                         local t = type(v)
@@ -830,7 +830,7 @@ end
                         order     = featureorder,
                         [stepkey] = steps,
                         nofsteps  = nofsteps,
-                        type      = types[featuretype],
+                        type      = specification.handler or types[featuretype],
                     }
                     if prepareonly then
                         return sequence
diff --git a/src/fontloader/runtime/fontloader-reference.lua b/src/fontloader/runtime/fontloader-reference.lua
index 608a99d..13389b2 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  : 2022-04-20 19:15
+-- merge date  : 2022-05-11 11:34
 
 do -- begin closure to overcome local limits and interference
 
@@ -31317,14 +31317,14 @@ local function addfeature(data,feature,specifications,prepareonly)
     local lookups=rule.lookups or false
     local subtype=nil
     if lookups and sublookups then
-if #lookups>0 then
- local ns=stop-start+1
- for i=1,ns do
-  if lookups[i]==nil then
-   lookups[i]=0
-  end
- end
-end
+     if #lookups>0 then
+      local ns=stop-start+1
+      for i=1,ns do
+       if lookups[i]==nil then
+        lookups[i]=0
+       end
+      end
+     end
      local l={}
      for k,v in sortedhash(lookups) do
       local t=type(v)
@@ -31620,7 +31620,7 @@ end
       order=featureorder,
       [stepkey]=steps,
       nofsteps=nofsteps,
-      type=types[featuretype],
+      type=specification.handler or types[featuretype],
      }
      if prepareonly then
       return sequence
@@ -37827,12 +37827,12 @@ local function blockligatures(str)
     before=before,
     current={ one,two },
     after=after,
-    lookups={ 1 },
+    lookups={ 1,false },
    }
    revert[new]={
     current={ one,zwj },
     after={ two },
-    lookups={ 1 },
+    lookups={ 1,false },
    }
   end
  end
diff --git a/testfiles/aaaaa-luakern.tlg b/testfiles/aaaaa-luakern.tlg
index 62bb97b..9d959f3 100644
--- a/testfiles/aaaaa-luakern.tlg
+++ b/testfiles/aaaaa-luakern.tlg
@@ -1,6 +1,6 @@
 This is a generated file for the l3build validation system.
 Don't change this file in any respect.
-3.22-dev with fontloaderxxx2022xxx05xxx01.lua
+3.22-dev with fontloaderxxx2022xxx06xxx15.lua
 Completed box being shipped out [1]
 \vbox(633.0+0.0)x407.0, direction TLT
 .\glue 16.0





More information about the latex3-commits mailing list.