diff options
| author | Philipp Gesang <phg42.2a@gmail.com> | 2013-08-11 13:10:41 +0200 | 
|---|---|---|
| committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-08-11 13:10:41 +0200 | 
| commit | f2934972c3a6e908624baf77833076cf2fa2f837 (patch) | |
| tree | ca028b946aec6b841a41d072569dbd99450cc19e | |
| parent | 030c5eb4e199acdc322c2df3c35c709cb80c1631 (diff) | |
| download | luaotfload-f2934972c3a6e908624baf77833076cf2fa2f837.tar.gz | |
[type1] resolve conflict between TFM and AFM loaders
| -rw-r--r-- | luaotfload-loaders.lua | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/luaotfload-loaders.lua b/luaotfload-loaders.lua index 56bdf96..6d6f409 100644 --- a/luaotfload-loaders.lua +++ b/luaotfload-loaders.lua @@ -17,6 +17,7 @@ local filebasename    = file.basename  local stringsub       = string.sub  local stringlower     = string.lower  local stringupper     = string.upper +local findbinfile     = resolvers.findbinfile  local lpeg            = require "lpeg"  local lpegmatch       = lpeg.match @@ -52,6 +53,31 @@ resolvers.loadbinfile = function (filename, filetype)  end +--- this function is required because AFM precedes TFM in the reader +--- chain (see definers.loadfont() in font-def.lua + +local check_tfm = function (specification, fullname) + +    local foundname = findbinfile (fullname, "tfm") or "" + +    if foundname == "" then +        foundname = findbinfile (fullname, "ofm") or "" +    end + +    if foundname == "" then +        foundname = fonts.names.getfilename (fullname,"tfm") or "" +    end + +    if foundname ~= "" then +        specification.filename = foundname +        specification.format   = "ofm" +        return font.read_tfm (specification.filename, +                              specification.size) +    end +end + +readers.check_tfm = check_tfm +  --[[ <EXPERIMENTAL> ]]  --[[doc--  | 
