summaryrefslogtreecommitdiff
path: root/luaotfload-override.lua
diff options
context:
space:
mode:
authorPhilipp Gesang <phg42.2a@gmail.com>2013-05-07 11:12:05 +0200
committerPhilipp Gesang <phg42.2a@gmail.com>2013-05-07 11:12:05 +0200
commite49fa11fe2a2957f63d092a073109c68223037a9 (patch)
tree56415949bc5bb7c54308795c1a795285be7127b0 /luaotfload-override.lua
parent561d0c76183d8de7e4a335b6eb8eb635c0942923 (diff)
downloadluaotfload-e49fa11fe2a2957f63d092a073109c68223037a9.tar.gz
replace glyph list loader
Karl Berry made us aware that our generated version of ``font-age.lua`` differs from the Context/Luatex-Fonts one and should be renamed. It’s trivial to do so but invasive still. This workaround may have to be adapted if Hans chooses to rewrite the Glyph List loader.
Diffstat (limited to 'luaotfload-override.lua')
-rw-r--r--luaotfload-override.lua50
1 files changed, 49 insertions, 1 deletions
diff --git a/luaotfload-override.lua b/luaotfload-override.lua
index 863187f..c047dad 100644
--- a/luaotfload-override.lua
+++ b/luaotfload-override.lua
@@ -63,7 +63,7 @@ end
local level_ids = { common = 0, loading = 1, search = 2 }
-logs.names_report = function (mode, lvl, ...)
+local names_report = function (mode, lvl, ...)
if type(lvl) == "string" then
lvl = level_ids[lvl]
end
@@ -81,4 +81,52 @@ logs.names_report = function (mode, lvl, ...)
end
end
+logs.names_report = names_report
+
+--[[doc--
+
+ Adobe Glyph List.
+ -------------------------------------------------------------------
+
+ Context provides a somewhat different font-age.lua from an unclear
+ origin. Unfortunately, the file name it reads from is hard-coded
+ in font-enc.lua, so we have to replace the entire table.
+
+ This shouldn’t cause any complications. Due to its implementation
+ the glyph list will be loaded upon loading a OTF or TTF for the
+ first time during a TeX run. (If one sticks to TFM/OFM then it is
+ never read at all.) For this reason we can install a metatable that
+ looks up the file of our choosing and only falls back to the
+ Context one in case it cannot be found.
+
+--doc]]--
+
+if next(fonts.encodings.agl) then
+ print(next, fonts.encodings.agl)
+ --- unnecessary because the file shouldn’t be loaded at this time
+ --- but we’re just making sure
+ fonts.encodings.agl = nil
+ collectgarbage"collect"
+end
+
+
+fonts.encodings.agl = { }
+
+setmetatable(fonts.encodings.agl, { __index = function (t, k)
+ if k == "unicodes" then
+ local glyphlist = resolvers.findfile"luaotfload-glyphlist.lua"
+ if glyphlist then
+ names_report("both", 0, "load", "loading the Adobe glyph list")
+ else
+ glyphlist = resolvers.findfile"font-age.lua"
+ names_report("both", 0, "load", "loading the extended glyph list from ConTeXt")
+ end
+ local unicodes = dofile(glyphlist)
+ fonts.encodings.agl = { unicodes = unicodes }
+ return unicodes
+ else
+ return nil
+ end
+end })
+
-- vim:tw=71:sw=4:ts=4:expandtab