From e49fa11fe2a2957f63d092a073109c68223037a9 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Tue, 7 May 2013 11:12:05 +0200 Subject: replace glyph list loader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- luaotfload-override.lua | 50 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) (limited to 'luaotfload-override.lua') 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 -- cgit v1.2.3