From 4ef16976a192abb9bfe2bdc5144a994bc0d61e7b Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Tue, 19 Apr 2016 20:02:33 +0200 Subject: [features] do not attempt to add features on incomplete fonts --- src/luaotfload-features.lua | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/luaotfload-features.lua b/src/luaotfload-features.lua index 79f1416..9c28fa1 100644 --- a/src/luaotfload-features.lua +++ b/src/luaotfload-features.lua @@ -1856,19 +1856,29 @@ end otf.addfeature = add_otf_feature local install_extra_features = function (data, filename, raw) + local metadata = data and data.metadata + if not metadata then + logreport ("both", 4, "features", + "no metadata received from font “%s”; not \z + installing extra features.", filename) + return + end + local format = data.format + if not format then + logreport ("both", 4, "features", + "no format info for font “%s”/“%s”; not \z + installing extra features.", + fontname, filename) + return + end for feature, specification in next, extrafeatures do - local fontname - local subfont - local metadata = data.metadata - if metadata then - fontname = tostring (data.metadata.fontname) - subfont = tonumber (metadata.subfontindex) - end if not fontname then fontname = "" end if not subfont then subfont = -1 end + local fontname = tostring (data.metadata.fontname) or "" + local subfont = tonumber (metadata.subfontindex) or -1 logreport ("both", 3, "features", "register synthetic feature “%s” for %s font “%s”(%d)", - feature, data.format, fontname, subfont) + feature, format, fontname, subfont) otf.features.register { name = feature, description = specification[2] } otf.enhancers.addfeature (data, feature, specification[1]) end -- cgit v1.2.3