summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Gesang <phg42.2a@gmail.com>2013-11-06 18:31:07 +0100
committerPhilipp Gesang <phg42.2a@gmail.com>2013-11-06 18:31:07 +0100
commit19d57e135e09d9311d0e17c6f7c375a161b8c37f (patch)
tree93fd2a149fbaf64938513d4e991414eeb4c3bd80
parent42c1d7b1c4285516575d38bc780e70e368b7beae (diff)
downloadluaotfload-19d57e135e09d9311d0e17c6f7c375a161b8c37f.tar.gz
[db] do not add metafamilies to the family table
-rw-r--r--luaotfload-database.lua26
1 files changed, 23 insertions, 3 deletions
diff --git a/luaotfload-database.lua b/luaotfload-database.lua
index c5b156c..d8d4a6f 100644
--- a/luaotfload-database.lua
+++ b/luaotfload-database.lua
@@ -2734,9 +2734,29 @@ local collect_families = function (mappings)
if modifier then
add_family (familyname, subtable, modifier, entry)
- if metafamily ~= nil then
- add_family (metafamily, subtable, modifier, entry)
- end
+ --- registering the metafamilies is unreliable within the
+ --- same table as identifiers might interfere with an
+ --- unmarked style that lacks a metafamily, e.g.
+ ---
+ --- iwona condensed regular ->
+ --- family: iwonacond
+ --- metafamily: iwona
+ --- iwona regular ->
+ --- family: iwona
+ --- metafamily: ø
+ ---
+ --- Both would be registered as under the same family,
+ --- i.e. “iwona”, and depending on the loading order
+ --- the query “name:iwona” can resolve to the condensed
+ --- version instead of the actual unmarked one. The only
+ --- way around this would be to introduce a separate
+ --- table for metafamilies and do fallback queries on it.
+ --- At the moment this is not pressing enough to justify
+ --- further increasing the index size, maybe if need
+ --- arises from the user side.
+-- if metafamily and metafamily ~= familyname then
+-- add_family (metafamily, subtable, modifier, entry)
+-- end
end
end