From 2d696088aece49853d17f4b2ab3bab0e242071e8 Mon Sep 17 00:00:00 2001
From: Philipp Gesang <phg42.2a@gmail.com>
Date: Tue, 30 Apr 2013 19:20:44 +0200
Subject: [doc] fix incorrect statements

---
 luaotfload.dtx | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'luaotfload.dtx')

diff --git a/luaotfload.dtx b/luaotfload.dtx
index e18c205..36c2a68 100644
--- a/luaotfload.dtx
+++ b/luaotfload.dtx
@@ -835,7 +835,7 @@ and the derived files
 % The complete list is is given in table \ref{table-searchpaths}.
 % Other paths can be specified by setting the environment variable
 % \verb+OSFONTDIR+.
-% If it is non-empty, then search will be limited to the included
+% If it is non-empty, then search will be extended to the included
 % directories.
 %
 % \begin{table}[t]
@@ -900,7 +900,7 @@ and the derived files
 % using the \verb|-i| option (\verb|--info|).
 % \begin{quote}
 %   \begin{verbatim}
-%     luaotfload-tool  -F --find="Iwona Light Italic"
+%     luaotfload-tool  -i --find="Iwona Light Italic"
 %   \end{verbatim}
 % \end{quote}
 % \noindent
-- 
cgit v1.2.3


From 021dadf3ab211cf76a17b6d0e3e169eafe355e1b Mon Sep 17 00:00:00 2001
From: Philipp Gesang <phg42.2a@gmail.com>
Date: Tue, 30 Apr 2013 19:45:23 +0200
Subject: remove redundant dead code

---
 luaotfload.dtx | 32 --------------------------------
 1 file changed, 32 deletions(-)

(limited to 'luaotfload.dtx')

diff --git a/luaotfload.dtx b/luaotfload.dtx
index 36c2a68..eb77d46 100644
--- a/luaotfload.dtx
+++ b/luaotfload.dtx
@@ -1733,38 +1733,6 @@ elseif luaotfload.font_definer == "patch"  then
                   1)
 end
 
---[[todo--
---- The manual promises coercion of the file: lookup if
---- the asked name is enclosed in brackets.
---- A couple things make me doubt that this is the case:
----
----     1) there doesn’t appear to be code for these cases
----     2) the brackets remain part of the file name
----     3) we still get calls to names.resolve which
----        ignores the “lookup” field of the spec it gets
----
---- For this reason here is some code that a) coerces
---- file: lookups in these cases and b) strips the brackets
---- from the file name. As we *still* get name: lookups even
---- though this code is active I’ll just leave it here
---- for reference, ineffective as it is.
-do
-    local getspecification, makespecification =
-        fonts.definers.getspecification, fonts.definers.makespecification
-
-    local analyze = function (specification, size)
-        local lookup, name, sub, method, detail = getspecification(specification or "")
-        local filename = stringmatch(name, "^%[(.*)%]$")
-        if filename then
-            lookup   = "file"    --> coerce file:
-            name     = filename  --> remove brackets
-        end
-        return makespecification(specification, lookup, name, sub, method, detail, size)
-    end
-    fonts.definers.analyze = analyze
-end
---]]--
-
 loadmodule"features.lua" --- contains what was “font-ltx” and “font-otc”
 
 -- vim:tw=71:sw=4:ts=4:expandtab
-- 
cgit v1.2.3


From be4a4a4df60e475d9d8362cdf31db09969c95d29 Mon Sep 17 00:00:00 2001
From: Philipp Gesang <phg42.2a@gmail.com>
Date: Tue, 30 Apr 2013 20:55:37 +0200
Subject: use precalculated scale-factor

first step towards a solution for this mystery:

        https://github.com/lualatex/luaotfload/issues/20

also: config option for the callback
---
 luaotfload.dtx | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

(limited to 'luaotfload.dtx')

diff --git a/luaotfload.dtx b/luaotfload.dtx
index eb77d46..77948ac 100644
--- a/luaotfload.dtx
+++ b/luaotfload.dtx
@@ -1181,6 +1181,7 @@ local luaotfload            = luaotfload
 config                      = config or { }
 config.luaotfload           = config.luaotfload or { }
 config.luaotfload.resolver  = config.luaotfload.resolver or "normal"
+config.luaotfload.definer   = config.luaotfload.definer  or "patch"
 --luaotfload.prefer_merge     = config.luaotfload.prefer_merge or true
 
 luaotfload.module = {
@@ -1655,6 +1656,13 @@ create_callback("luaotfload.patch_font", "simple", dummy_function)
 % How those work remains to be figured out.
 %
 %    \begin{macrocode}
+--- font-con.lua:
+---     · constructors.assignmathparameters(target, original)
+---     · | .*Percent.* -> value
+---       | _           -> value * factor
+---       ... where factor = target.parameters.factor
+---     · writes new params to target
+
 local define_font_wrapper = function (...)
     --- we use “tfmdata” (not “fontdata”) for consistency with the
     --- font loader
@@ -1664,17 +1672,13 @@ local define_font_wrapper = function (...)
         local mathdata = metadata.math --- do all fonts have this field?
         if mathdata then
             local mathconstants = { } --- why new hash, not modify in place?
-            local units_per_em  = metadata.units_per_em
-            local size          = tfmdata.size
+            local factor        = tfmdata.parameters.factor
             for k,v in next, mathdata do
-                --- afaics this is alread taken care of by
-                --- definers.read
                 if stringfind(k, "Percent") then
                     -- keep percent values as is
-                    --print(k,v)
                     mathconstants[k] = v
                 else
-                    mathconstants[k] = v / units_per_em * size
+                    mathconstants[k] = v * factor
                 end
             end
             --- for \overwithdelims
@@ -1716,17 +1720,19 @@ reset_callback("define_font")
 %
 %    \begin{macrocode}
 
-if luaotfload.font_definer == "old"  then
+local font_definer = config.luaotfload.definer
+
+if definer == "old"  then
   add_to_callback("define_font",
                   define_font_wrapper,
                   "luaotfload.define_font",
                   1)
-elseif luaotfload.font_definer == "generic"  then
+elseif font_definer == "generic"  then
   add_to_callback("define_font",
                   fonts.definers.read,
                   "luaotfload.define_font",
                   1)
-elseif luaotfload.font_definer == "patch"  then
+elseif font_definer == "patch"  then
   add_to_callback("define_font",
                   patch_defined_font,
                   "luaotfload.define_font",
-- 
cgit v1.2.3


From 700de901361c164652762b0c31b730792ace18d0 Mon Sep 17 00:00:00 2001
From: Philipp Gesang <phg42.2a@gmail.com>
Date: Tue, 30 Apr 2013 21:20:58 +0200
Subject: remove old fond definition callback
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

everything it did is already been done by
``constructors.assignmathparameters()`` in ``font-con.lua``, so it is
save to remove the old code without replacement.

There is one subtle difference, however: Context scales the value of
``FractionDelimiterDisplayStyleSize`` by a factor of 2.40, whereas the
old luaotfload used 2.39. I’d say whoever takes offense because of this
difference please debate Hans for the correct value. kthxbye
---
 luaotfload.dtx | 58 +---------------------------------------------------------
 1 file changed, 1 insertion(+), 57 deletions(-)

(limited to 'luaotfload.dtx')

diff --git a/luaotfload.dtx b/luaotfload.dtx
index 77948ac..8f7c8a1 100644
--- a/luaotfload.dtx
+++ b/luaotfload.dtx
@@ -1642,57 +1642,6 @@ end
 
 create_callback("luaotfload.patch_font", "simple", dummy_function)
 
-%    \end{macrocode}
-% This is a wrapper for the imported font loader.
-% As of 2013, everything it does appear to be redundand, so we won’t use
-% it unless somebody points out a cogent reason.
-% Nevertheless, it has been adapted to work with the current structure of
-% font data objects and will stay here for reference / until breakage is
-% reported.
-% \emphasis{TODO}
-% This one also enables patching fonts.
-% The current fontloader apparently comes with a dedicated mechanism for
-% that already: enhancers.
-% How those work remains to be figured out.
-%
-%    \begin{macrocode}
---- font-con.lua:
----     · constructors.assignmathparameters(target, original)
----     · | .*Percent.* -> value
----       | _           -> value * factor
----       ... where factor = target.parameters.factor
----     · writes new params to target
-
-local define_font_wrapper = function (...)
-    --- we use “tfmdata” (not “fontdata”) for consistency with the
-    --- font loader
-    local tfmdata = fonts.definers.read(...)
-    if type(tfmdata) == "table" and tfmdata.shared then
-        local metadata = tfmdata.shared.rawdata.metadata
-        local mathdata = metadata.math --- do all fonts have this field?
-        if mathdata then
-            local mathconstants = { } --- why new hash, not modify in place?
-            local factor        = tfmdata.parameters.factor
-            for k,v in next, mathdata do
-                if stringfind(k, "Percent") then
-                    -- keep percent values as is
-                    mathconstants[k] = v
-                else
-                    mathconstants[k] = v * factor
-                end
-            end
-            --- for \overwithdelims
-            --- done by definers.read as well
-            mathconstants.FractionDelimiterSize             = 1.01 * size
-            --- fontloader has 2.4 × size
-            mathconstants.FractionDelimiterDisplayStyleSize = 2.39 * size
-            tfmdata.MathConstants = mathconstants
-        end
-        call_callback("luaotfload.patch_font", tfmdata)
-    end
-    return tfmdata
-end
-
 %    \end{macrocode}
 % \subsection{\CONTEXT override}
 % We provide a simplified version of the original font definition
@@ -1722,12 +1671,7 @@ reset_callback("define_font")
 
 local font_definer = config.luaotfload.definer
 
-if definer == "old"  then
-  add_to_callback("define_font",
-                  define_font_wrapper,
-                  "luaotfload.define_font",
-                  1)
-elseif font_definer == "generic"  then
+if font_definer == "generic"  then
   add_to_callback("define_font",
                   fonts.definers.read,
                   "luaotfload.define_font",
-- 
cgit v1.2.3

