diff options
author | Philipp Gesang <phg42.2a@gmail.com> | 2013-09-01 17:33:27 +0200 |
---|---|---|
committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-09-01 17:33:27 +0200 |
commit | 87223dfb2c0768be70cdf58dce45cb877bc3757a (patch) | |
tree | 4194c2c5bb6eb2def32ad69183f7f52bd0b8b213 | |
parent | 99f5ace3d56ae14baabdc494bb4b3326b8652ac7 (diff) | |
download | luaotfload-87223dfb2c0768be70cdf58dce45cb877bc3757a.tar.gz |
[db] extend name extraction on fontloader.info()
-rw-r--r-- | luaotfload-database.lua | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/luaotfload-database.lua b/luaotfload-database.lua index 7be0600..98b0975 100644 --- a/luaotfload-database.lua +++ b/luaotfload-database.lua @@ -197,13 +197,20 @@ end local sanitize_fontnames = function (rawnames) local result = { } for category, namedata in next, rawnames do - local target = { } - for field, name in next, namedata do - target [field] = utf8gsub (utf8lower (name), - invalidchars, - "") + + if type (namedata) == "string" then + result [category] = utf8gsub (utf8lower (namedata), + invalidchars, + "") + else + local target = { } + for field, name in next, namedata do + target [field] = utf8gsub (utf8lower (name), + invalidchars, + "") + end + result [category] = target end - result [category] = target end return result end @@ -1224,9 +1231,18 @@ local load_font_file = function (filename, subfont) report ("log", 1, "db", "ERROR: failed to open %s", filename) return end + local metadata = fontloaderto_table (rawfont) fontloaderclose (rawfont) + + metadata.glyphs = nil + metadata.subfonts = nil + metadata.gpos = nil + metadata.gsub = nil + metadata.lookups = nil + collectgarbage "collect" + return metadata end @@ -1279,8 +1295,8 @@ local organize_namedata = function (metadata, basename, info) or english_names.fullname, family = english_names.preffamilyname or english_names.family, - prefmodifiers = english_names.prefmodifiers, - subfamily = english_names.subfamily, + --prefmodifiers = english_names.prefmodifiers, --> style + --subfamily = english_names.subfamily, --> style psname = english_names.postscriptname, }, metadata = { @@ -1289,6 +1305,9 @@ local organize_namedata = function (metadata, basename, info) metafamily = metadata.familyname, }, info = { + fullname = info.fullname, + familyname = info.familyname, + fontname = info.fontname, }, } @@ -1628,7 +1647,8 @@ local read_font_names = function (fullname, return insert_fullinfo (fullname, basename, false, loader, format, location, - targetmappings, targetentrystatus) + targetmappings, targetentrystatus, + info) end local path_normalize |