From b409613a112531013787984bbfb809b1bdda63bf Mon Sep 17 00:00:00 2001
From: Philipp Gesang <phg@phi-gamma.net>
Date: Thu, 20 Oct 2016 07:25:42 +0200
Subject: [fontloader] sync with Context as of 2016-10-20

---
 src/fontloader/misc/fontloader-util-fil.lua     | 26 ++++++++++++++-----------
 src/fontloader/runtime/fontloader-reference.lua | 26 +++++++++++++------------
 2 files changed, 29 insertions(+), 23 deletions(-)

(limited to 'src/fontloader')

diff --git a/src/fontloader/misc/fontloader-util-fil.lua b/src/fontloader/misc/fontloader-util-fil.lua
index eb054a5..0f9731a 100644
--- a/src/fontloader/misc/fontloader-util-fil.lua
+++ b/src/fontloader/misc/fontloader-util-fil.lua
@@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['util-fil'] = {
 
 local byte    = string.byte
 local char    = string.char
-local extract = bit32.extract
+local extract = bit32 and bit32.extract
 local floor   = math.floor
 
 -- Here are a few helpers (the starting point were old ones I used for parsing
@@ -206,17 +206,21 @@ function files.readfixed4(f)
     end
 end
 
-function files.read2dot14(f)
-    local a, b = byte(f:read(2),1,2)
-    local n = 0x100 * a + b
-    local m = extract(n,0,30)
-    if n > 0x7FFF then
-        n = extract(n,30,2)
-        return m/0x4000 - 4
-    else
-        n = extract(n,30,2)
-        return n + m/0x4000
+if extract then
+
+    function files.read2dot14(f)
+        local a, b = byte(f:read(2),1,2)
+        local n = 0x100 * a + b
+        local m = extract(n,0,30)
+        if n > 0x7FFF then
+            n = extract(n,30,2)
+            return m/0x4000 - 4
+        else
+            n = extract(n,30,2)
+            return n + m/0x4000
+        end
     end
+
 end
 
 function files.skipshort(f,n)
diff --git a/src/fontloader/runtime/fontloader-reference.lua b/src/fontloader/runtime/fontloader-reference.lua
index 907e4e1..a0b906d 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  : 10/14/16 17:19:03
+-- merge date  : 10/19/16 22:51:32
 
 do -- begin closure to overcome local limits and interference
 
@@ -4166,7 +4166,7 @@ if not modules then modules={} end modules ['util-fil']={
 }
 local byte=string.byte
 local char=string.char
-local extract=bit32.extract
+local extract=bit32 and bit32.extract
 local floor=math.floor
 utilities=utilities or {}
 local files={}
@@ -4328,16 +4328,18 @@ function files.readfixed4(f)
     return n+(0x100*c+d)/0xFFFF
   end
 end
-function files.read2dot14(f)
-  local a,b=byte(f:read(2),1,2)
-  local n=0x100*a+b
-  local m=extract(n,0,30)
-  if n>0x7FFF then
-    n=extract(n,30,2)
-    return m/0x4000-4
-  else
-    n=extract(n,30,2)
-    return n+m/0x4000
+if extract then
+  function files.read2dot14(f)
+    local a,b=byte(f:read(2),1,2)
+    local n=0x100*a+b
+    local m=extract(n,0,30)
+    if n>0x7FFF then
+      n=extract(n,30,2)
+      return m/0x4000-4
+    else
+      n=extract(n,30,2)
+      return n+m/0x4000
+    end
   end
 end
 function files.skipshort(f,n)
-- 
cgit v1.2.3