[latex3-commits] [git/LaTeX3-latex3-luaotfload] dev: Import new fontloader (3ded360)

Marcel Fabian Krüger tex at 2krueger.de
Thu May 20 19:44:53 CEST 2021


Repository : https://github.com/latex3/luaotfload
On branch  : dev
Link       : https://github.com/latex3/luaotfload/commit/3ded360750ac7353f911fd752e87ef1b289aed6d

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

commit 3ded360750ac7353f911fd752e87ef1b289aed6d
Author: Marcel Fabian Krüger <tex at 2krueger.de>
Date:   Thu May 20 19:44:53 2021 +0200

    Import new fontloader


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

3ded360750ac7353f911fd752e87ef1b289aed6d
 src/auto/fontloader-2021-05-20.lua              | 42 ++++++++++++-------------
 src/auto/luaotfload-status.lua                  | 16 +++++-----
 src/fontloader/misc/fontloader-font-otj.lua     | 35 ++++++++++-----------
 src/fontloader/misc/fontloader-font-otl.lua     |  2 +-
 src/fontloader/misc/fontloader-font-oup.lua     |  4 +--
 src/fontloader/runtime/fontloader-reference.lua | 36 ++++++++++-----------
 6 files changed, 64 insertions(+), 71 deletions(-)

diff --git a/src/auto/fontloader-2021-05-20.lua b/src/auto/fontloader-2021-05-20.lua
index d74f1c9..f541668 100644
--- a/src/auto/fontloader-2021-05-20.lua
+++ b/src/auto/fontloader-2021-05-20.lua
@@ -1,6 +1,6 @@
 --[[info-----------------------------------------------------------------------
   Luaotfload fontloader package
-  build 2021-05-20 11:42:54
+  build 2021-05-20 19:43:52
 -------------------------------------------------------------------------------
 
   © 2021 PRAGMA ADE / ConTeXt Development Team
@@ -16048,7 +16048,7 @@ end
 end --- [luaotfload, fontloader-2021-05-20.lua scope for “font-dsp”] ---
 
 
-do  --- [luaotfload, fontloader-2021-05-20.lua scope for “font-oup” 59894b3fc1629c7ca71d2ab94c8befef] ---
+do  --- [luaotfload, fontloader-2021-05-20.lua scope for “font-oup” 4eb2f26e51835239e26a8df2ecf04366] ---
 
 if not modules then modules={} end modules ['font-oup']={
  version=1.001,
@@ -18327,7 +18327,7 @@ local function checkpairs(lookup)
     else
      local v=d2[1]
      if v==true then
-     elseif v and (v[1]~=0 or v[2]~=0 or v[3]~=0 or v[4]~=0) then 
+     elseif v and (v[1]~=0 or v[2]~=0 or v[4]~=0) then
       return false
      end
     end
@@ -18722,7 +18722,7 @@ end
 end --- [luaotfload, fontloader-2021-05-20.lua scope for “font-oup”] ---
 
 
-do  --- [luaotfload, fontloader-2021-05-20.lua scope for “font-otl” a7580a47d0c1655255d5ddbf531ffd38] ---
+do  --- [luaotfload, fontloader-2021-05-20.lua scope for “font-otl” 6f701653de713e8aa80d82c7cdf32d75] ---
 
 if not modules then modules={} end modules ['font-otl']={
  version=1.001,
@@ -18750,7 +18750,7 @@ local trace_defining=false  registertracker("fonts.defining",function(v) trace_d
 local report_otf=logs.reporter("fonts","otf loading")
 local fonts=fonts
 local otf=fonts.handlers.otf
-otf.version=3.115 
+otf.version=3.116 
 otf.cache=containers.define("fonts","otl",otf.version,true)
 otf.svgcache=containers.define("fonts","svg",otf.version,true)
 otf.pngcache=containers.define("fonts","png",otf.version,true)
@@ -19893,7 +19893,7 @@ otf.basemodeinitializer=featuresinitializer
 end --- [luaotfload, fontloader-2021-05-20.lua scope for “font-oto”] ---
 
 
-do  --- [luaotfload, fontloader-2021-05-20.lua scope for “font-otj” e77357c4ad5f7fab278be57db0b51012] ---
+do  --- [luaotfload, fontloader-2021-05-20.lua scope for “font-otj” b2c165bd6771a57633f992d07384b739] ---
 
 if not modules then modules={} end modules ['font-otj']={
  version=1.001,
@@ -19943,6 +19943,8 @@ local getoffsets=nuts.getoffsets
 local getboth=nuts.getboth
 local getdisc=nuts.getdisc
 local setdisc=nuts.setdisc
+local getreplace=nuts.getreplace
+local setreplace=nuts.setreplace
 local setoffsets=nuts.setoffsets
 local ischar=nuts.ischar
 local getkern=nuts.getkern
@@ -20608,17 +20610,15 @@ local function inject_positions_only(head,where)
        insertnodeafter(head,current,fontkern(rightkern))
       end
      end
-    else
+    elseif next then
      local i=p.emptyinjections
      if i then
       local rightkern=i.rightkern
-      if rightkern and rightkern~=0 then
-       if next and getid(next)==disc_code then
-        if replace then
-        else
-         replace=fontkern(rightkern) 
-         done=true	
-        end
+      if rightkern and rightkern~=0 and getid(next)==disc_code then
+       local replace=getreplace(next)
+       if replace then
+       else
+        setreplace(next,fontkern(rightkern))
        end
       end
      end
@@ -20976,17 +20976,15 @@ local function inject_everything(head,where)
        end
       end
      end
-    else
+    elseif next then
      local i=p.emptyinjections
      if i then
       local rightkern=i.rightkern
-      if rightkern and rightkern~=0 then
-       if next and getid(next)==disc_code then
-        if replace then
-        else
-         replace=fontkern(rightkern)
-         done=true
-        end
+      if rightkern and rightkern~=0 and getid(next)==disc_code then
+       local replace=getreplace(next)
+       if replace then
+       else
+        setreplace(next,fontkern(rightkern))
        end
       end
      end
diff --git a/src/auto/luaotfload-status.lua b/src/auto/luaotfload-status.lua
index df46ff1..6fa21df 100644
--- a/src/auto/luaotfload-status.lua
+++ b/src/auto/luaotfload-status.lua
@@ -1,6 +1,6 @@
 return {
  ["hashes"]={
-  { "fontloader-2021-05-20.lua", "639fe83c53a69d78cd9c5b1ec5a97c62" },
+  { "fontloader-2021-05-20.lua", "d3d971e3e79aefcb828157b97cc33378" },
   { "fontloader-util-fil.lua", "aae2a2add764144bb58dd8216fd59260" },
   { "fontloader-util-str.lua", "f3480da8f9a6f34fe320900f7224719b" },
   { "fontloader-l-unicode.lua", "f368874f11f3c525de5864fd413e4b24" },
@@ -37,10 +37,10 @@ return {
   { "fontloader-font-otc.lua", "0f12230ea07b5151f75d52726977e91f" },
   { "fontloader-font-ots.lua", "cb106ae882e8548051f00aac8b7fa862" },
   { "fontloader-font-ota.lua", "2bb12d708e35bc05443eba791e2554e7" },
-  { "fontloader-font-oup.lua", "59894b3fc1629c7ca71d2ab94c8befef" },
-  { "fontloader-font-otj.lua", "e77357c4ad5f7fab278be57db0b51012" },
+  { "fontloader-font-oup.lua", "4eb2f26e51835239e26a8df2ecf04366" },
+  { "fontloader-font-otj.lua", "b2c165bd6771a57633f992d07384b739" },
   { "fontloader-font-oto.lua", "2b1d6bc63b2ebf8f2655a15e1cda6541" },
-  { "fontloader-font-otl.lua", "a7580a47d0c1655255d5ddbf531ffd38" },
+  { "fontloader-font-otl.lua", "6f701653de713e8aa80d82c7cdf32d75" },
   { "fontloader-font-ott.lua", "3f67b1b1d40bbc222681d8db4aff0f42" },
   { "fontloader-font-oti.lua", "309a75f9c14b77d87e94eba827dc4e71" },
   { "fontloader-font-dsp.lua", "174ce11f3ba0bddf270f48d8d2addd56" },
@@ -53,8 +53,8 @@ return {
   { "fontloader-font-con.lua", "724e5dd14aec2d4d189f8619898004cf" },
   { "fontloader-font-ini.lua", "5343de60613adb24cdd7a8d2ee1d153c" },
   { "fontloader-data-con.lua", "23a0f5386d46a1c157ae82a373e35fa0" },
-  { "fontloader-reference.lua", "00d4e6ccada15f40fd8112dc2ab2a760" },
-  { "fontloader-basics-gen.lua", "4bc43036e9796fccb0b8869f4b05bf2e" },
+  { "fontloader-reference.lua", "29911e74397766ee36205736166dd763" },
+  { "fontloader-basics-gen.lua", "e470c13b1ed41e38932e93518219ad74" },
   { "mktests", "918cb50be9ee8bd645ac1a27dc501e8c" },
   { "mkstatus", "b4815eec1b616a4a7877d2b3b32a8f57" },
   { "mkcharacters", "bfca0e96e1e351afe7077502f9595af9" },
@@ -93,7 +93,7 @@ return {
   ["committer"]="Marcel Fabian Krüger <tex at 2krueger.de>",
   ["description"]="v3.18-dev/2021-01-08",
   ["loader"]="fontloader-2021-05-20.lua",
-  ["revision"]="4e176e66dd0c23ead6b1e20b72dc64948f12330f",
-  ["timestamp"]="2021-05-16 18:55:18 +0200",
+  ["revision"]="651f1e554d90b6ad3dcb77da0489bd15d91f9db5",
+  ["timestamp"]="2021-05-20 11:51:41 +0200",
  },
 }
\ No newline at end of file
diff --git a/src/fontloader/misc/fontloader-font-otj.lua b/src/fontloader/misc/fontloader-font-otj.lua
index c217901..c4ec997 100644
--- a/src/fontloader/misc/fontloader-font-otj.lua
+++ b/src/fontloader/misc/fontloader-font-otj.lua
@@ -90,6 +90,8 @@ local getoffsets         = nuts.getoffsets
 local getboth            = nuts.getboth
 local getdisc            = nuts.getdisc
 local setdisc            = nuts.setdisc
+local getreplace         = nuts.getreplace
+local setreplace         = nuts.setreplace
 local setoffsets         = nuts.setoffsets
 local ischar             = nuts.ischar
 local getkern            = nuts.getkern
@@ -847,20 +849,17 @@ local function inject_positions_only(head,where)
                             insertnodeafter(head,current,fontkern(rightkern))
                         end
                     end
-                else
+                elseif next then
                     local i = p.emptyinjections
                     if i then
                         -- glyph|disc|glyph (special case)
                         local rightkern = i.rightkern
-                        if rightkern and rightkern ~= 0 then
-                            if next and getid(next) == disc_code then
-                                if replace then
-                                    -- error, we expect an empty one
-                                else
-                              -- KE setfield(next,"replace",fontkern(rightkern)) -- maybe also leftkern
-                                    replace = fontkern(rightkern) -- maybe also leftkern
-                                    done = true	--KE
-                                end
+                        if rightkern and rightkern ~= 0 and getid(next) == disc_code then
+                            local replace = getreplace(next)
+                            if replace then
+                                -- can't happen
+                            else
+                                setreplace(next,fontkern(rightkern))
                             end
                         end
                     end
@@ -1313,19 +1312,17 @@ local function inject_everything(head,where)
                             end
                         end
                     end
-                else
+                elseif next then
                     local i = p.emptyinjections
                     if i then
                         -- glyph|disc|glyph (special case)
                         local rightkern = i.rightkern
-                        if rightkern and rightkern ~= 0 then
-                            if next and getid(next) == disc_code then
-                                if replace then
-                                    -- error, we expect an empty one
-                                else
-                                    replace = fontkern(rightkern)
-                                    done    = true
-                                end
+                        if rightkern and rightkern ~= 0 and getid(next) == disc_code then
+                            local replace = getreplace(next)
+                            if replace then
+                                -- can't happen
+                            else
+                                setreplace(next,fontkern(rightkern))
                             end
                         end
                     end
diff --git a/src/fontloader/misc/fontloader-font-otl.lua b/src/fontloader/misc/fontloader-font-otl.lua
index c13011f..4619e13 100644
--- a/src/fontloader/misc/fontloader-font-otl.lua
+++ b/src/fontloader/misc/fontloader-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.115 -- beware: also sync font-mis.lua and in mtx-fonts
+otf.version               = 3.116 -- 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.pngcache              = containers.define("fonts", "png", otf.version, true)
diff --git a/src/fontloader/misc/fontloader-font-oup.lua b/src/fontloader/misc/fontloader-font-oup.lua
index 93a1d52..c93ad47 100644
--- a/src/fontloader/misc/fontloader-font-oup.lua
+++ b/src/fontloader/misc/fontloader-font-oup.lua
@@ -2608,8 +2608,8 @@ local function checkpairs(lookup)
                     local v = d2[1]
                     if v == true then
                         -- all zero
-                 -- elseif v and (v[1] ~= 0 or v[2] ~= 0 or v[4] ~= 0) then
-                    elseif v and (v[1] ~= 0 or v[2] ~= 0 or v[3] ~= 0 or v[4] ~= 0) then -- vkrn has v[3] ~= 0
+                    elseif v and (v[1] ~= 0 or v[2] ~= 0 or v[4] ~= 0) then
+                        -- complex kerns
                         return false
                     end
                 end
diff --git a/src/fontloader/runtime/fontloader-reference.lua b/src/fontloader/runtime/fontloader-reference.lua
index f3af378..59cbd9e 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  : 2021-05-19 18:18
+-- merge date  : 2021-05-20 15:57
 
 do -- begin closure to overcome local limits and interference
 
@@ -20858,7 +20858,7 @@ local trace_defining=false  registertracker("fonts.defining",function(v) trace_d
 local report_otf=logs.reporter("fonts","otf loading")
 local fonts=fonts
 local otf=fonts.handlers.otf
-otf.version=3.115 
+otf.version=3.116 
 otf.cache=containers.define("fonts","otl",otf.version,true)
 otf.svgcache=containers.define("fonts","svg",otf.version,true)
 otf.pngcache=containers.define("fonts","png",otf.version,true)
@@ -22049,6 +22049,8 @@ local getoffsets=nuts.getoffsets
 local getboth=nuts.getboth
 local getdisc=nuts.getdisc
 local setdisc=nuts.setdisc
+local getreplace=nuts.getreplace
+local setreplace=nuts.setreplace
 local setoffsets=nuts.setoffsets
 local ischar=nuts.ischar
 local getkern=nuts.getkern
@@ -22714,17 +22716,15 @@ local function inject_positions_only(head,where)
        insertnodeafter(head,current,fontkern(rightkern))
       end
      end
-    else
+    elseif next then
      local i=p.emptyinjections
      if i then
       local rightkern=i.rightkern
-      if rightkern and rightkern~=0 then
-       if next and getid(next)==disc_code then
-        if replace then
-        else
-         replace=fontkern(rightkern) 
-         done=true	
-        end
+      if rightkern and rightkern~=0 and getid(next)==disc_code then
+       local replace=getreplace(next)
+       if replace then
+       else
+        setreplace(next,fontkern(rightkern))
        end
       end
      end
@@ -23082,17 +23082,15 @@ local function inject_everything(head,where)
        end
       end
      end
-    else
+    elseif next then
      local i=p.emptyinjections
      if i then
       local rightkern=i.rightkern
-      if rightkern and rightkern~=0 then
-       if next and getid(next)==disc_code then
-        if replace then
-        else
-         replace=fontkern(rightkern)
-         done=true
-        end
+      if rightkern and rightkern~=0 and getid(next)==disc_code then
+       local replace=getreplace(next)
+       if replace then
+       else
+        setreplace(next,fontkern(rightkern))
        end
       end
      end
@@ -25768,7 +25766,7 @@ local function checkpairs(lookup)
     else
      local v=d2[1]
      if v==true then
-     elseif v and (v[1]~=0 or v[2]~=0 or v[3]~=0 or v[4]~=0) then 
+     elseif v and (v[1]~=0 or v[2]~=0 or v[4]~=0) then
       return false
      end
     end





More information about the latex3-commits mailing list.