summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-02-06 23:22:37 +0000
committerKarl Berry <karl@freefriends.org>2014-02-06 23:22:37 +0000
commit716db3d36d52aeaff3226edb6c3bcd52b8478394 (patch)
tree152feb0630b11ceb311b79daa3c042b0c261805a /Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
parent2385abbf2b7e9cee66fd032dcc7ca204808f1135 (diff)
luaotfload (6feb14)
git-svn-id: svn://tug.org/texlive/trunk@32887 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua')
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua33
1 files changed, 25 insertions, 8 deletions
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
index 9d7d9121d4c..cb3ec330e35 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
@@ -132,7 +132,7 @@ luaotfloadconfig.compress = luaotfloadconfig.compress ~= false
local names = fonts.names
local name_index = nil --> upvalue for names.data
local lookup_cache = nil --> for names.lookups
-names.version = 2.4
+names.version = 2.41
names.data = nil --- contains the loaded database
names.lookups = nil --- contains the lookup cache
@@ -1070,9 +1070,10 @@ local resolve_fontname = function (specification, name, style)
local face = mappings [i]
local prefmodifiers = face.prefmodifiers
local subfamily = face.subfamily
- if face.fontname == name
- or face.fullname == name
- or face.psname == name
+ if face.fontname == name
+ or face.splainname == name
+ or face.fullname == name
+ or face.psname == name
then
return face.basename, face.subfont
elseif face.familyname == name then
@@ -1394,16 +1395,26 @@ local get_english_names = function (names, basename)
report("log", 1, "db",
"Broken font %s rejected due to missing names table.",
basename)
- return nil
end
- return english_names
+ return english_names or { }
end
local organize_namedata = function (metadata,
english_names,
basename,
info)
+ local default_name = english_names.compatfull
+ or english_names.fullname
+ or english_names.postscriptname
+ or metadata.fullname
+ or metadata.fontname
+ or info.fullname --- TODO check if fontloader.info() is ready for prime
+ or info.fontname
+ local default_family = english_names.preffamily
+ or english_names.family
+ or metadata.familyname
+ or info.familyname
local fontnames = {
--- see
--- https://developer.apple.com/fonts/TTRefMan/RM06/Chap6name.html
@@ -1419,14 +1430,15 @@ local organize_namedata = function (metadata,
--- However, in some fonts (e.g. CMU) all three fields are
--- identical.
fullname = --[[ 18 ]] english_names.compatfull
- or --[[ 4 ]] english_names.fullname,
+ or --[[ 4 ]] english_names.fullname
+ or default_name,
--- we keep both the “preferred family” and the “family”
--- values around since both are valid but can turn out
--- quite differently, e.g. with Latin Modern:
--- preffamily: “Latin Modern Sans”,
--- family: “LM Sans 10”
preffamily = --[[ 16 ]] english_names.preffamilyname,
- family = --[[ 1 ]] english_names.family,
+ family = --[[ 1 ]] english_names.family or default_family,
prefmodifiers = --[[ 17 ]] english_names.prefmodifiers,
subfamily = --[[ 2 ]] english_names.subfamily,
psname = --[[ 6 ]] english_names.postscriptname,
@@ -1608,6 +1620,7 @@ t1_fullinfo = function (filename, _subfont, location, basename, format)
fontname = sanitized.fontname,
familyname = sanitized.familyname,
plainname = fullname,
+ splainname = sanitized.fullname,
psname = sanitized.fontname,
version = metadata.version,
size = false,
@@ -2775,6 +2788,7 @@ local pull_values = function (entry)
entry.psname = english.psname
entry.fontname = info.fontname
entry.fullname = english.fullname or info.fullname
+ entry.splainname = metadata.fullname
entry.prefmodifiers = english.prefmodifiers
local metafamily = metadata.familyname
local familyname = english.preffamily or english.family
@@ -2800,6 +2814,9 @@ local pull_values = function (entry)
end
local add_family = function (name, subtable, modifier, entry)
+ if not name then
+ return
+ end
local familytable = subtable [name]
if not familytable then
familytable = { }