summaryrefslogtreecommitdiff
path: root/otfl-font-otf.lua
diff options
context:
space:
mode:
authorElie Roux <elie.roux@telecom-bretagne.eu>2010-05-22 11:18:39 +0300
committerElie Roux <elie.roux@telecom-bretagne.eu>2010-05-22 11:18:39 +0300
commit221435079653e517970b2a46254781e2dd9e79d8 (patch)
tree48b62b8902f7e81fb4241fb5431ee072cddd86fe /otfl-font-otf.lua
parent0d1f4b27ca5e6a50b2fb1f941e75b945cfff0b5e (diff)
downloadluaotfload-221435079653e517970b2a46254781e2dd9e79d8.tar.gz
Patch from Hans
This fixes the problem of the wrong filename in the cache. This change won't make it in TeXLive 2010's ConTeXt, but it's necessary for us.
Diffstat (limited to 'otfl-font-otf.lua')
-rw-r--r--otfl-font-otf.lua39
1 files changed, 11 insertions, 28 deletions
diff --git a/otfl-font-otf.lua b/otfl-font-otf.lua
index bad09cb..2ccdc45 100644
--- a/otfl-font-otf.lua
+++ b/otfl-font-otf.lua
@@ -1564,11 +1564,13 @@ function otf.copy_to_tfm(data,cache_id) -- we can save a copy when we reorder th
local spaceunits = 500
-- we need a runtime lookup because of running from cdrom or zip, brrr (shouldn't we use the basename then?)
tfm.filename = fonts.tfm.checked_filename(luatex)
- tfm.fullname = metadata.fullname
tfm.fontname = metadata.fontname
+ tfm.fullname = metadata.fullname or tfm.fontname
tfm.psname = tfm.fontname or tfm.fullname
+ tfm.name = tfm.filename or tfm.fullname or tfm.fontname
tfm.units = metadata.units_per_em or 1000
tfm.encodingbytes = 2
+ tfm.format = (metadata.order2 == 1 and 'truetype') or 'opentype'
tfm.cidinfo = data.cidinfo
tfm.cidinfo.registry = tfm.cidinfo.registry or ""
tfm.type = "real"
@@ -1653,6 +1655,7 @@ function tfm.read_from_open_type(specification)
local s = specification.size
local m = otfdata.metadata.math
if m then
+ -- this will move to a function
local f = specification.features
if f then
local f = f.normal
@@ -1681,33 +1684,13 @@ function tfm.read_from_open_type(specification)
end
end
tfmtable = tfm.scale(tfmtable,s,specification.relativeid)
- -- here we resolve the name; file can be relocated, so this info is not in the cache
- local filename = (otfdata and otfdata.luatex and otfdata.luatex.filename) or specification.filename
- if not filename then
- -- try to locate anyway and set otfdata.luatex.filename
- end
- if filename then
- tfmtable.encodingbytes = 2
- tfmtable.filename = resolvers.findbinfile(filename,"") or filename
- tfmtable.fontname = tfmtable.fontname or otfdata.metadata.fontname
- tfmtable.fullname = tfmtable.fullname or otfdata.metadata.fullname or tfmtable.fontname
- local order = otfdata and otfdata.metadata.order2
- if order == 0 then
- tfmtable.format = 'opentype'
- elseif order == 1 then
- tfmtable.format = 'truetype'
- else
- tfmtable.format = specification.format
- end
- tfmtable.name = tfmtable.filename or tfmtable.fullname or tfmtable.fontname
- if tfm.fontname_mode == "specification" then
- -- not to be used in context !
- local specname = specification.specification
- if specname then
- tfmtable.name = specname
- if trace_defining then
- logs.report("define font","overloaded fontname: '%s'",specname)
- end
+ if tfm.fontname_mode == "specification" then
+ -- not to be used in context !
+ local specname = specification.specification
+ if specname then
+ tfmtable.name = specname
+ if trace_defining then
+ logs.report("define font","overloaded fontname: '%s'",specname)
end
end
end