From eb4fdd2afe34627abece6f75187a2cd691bcf6db Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Thu, 2 May 2013 12:34:41 +0200 Subject: =?UTF-8?q?use=20=E2=80=9Cslots=E2=80=9D=20instead=20of=20?= =?UTF-8?q?=E2=80=9Ccodepoints=E2=80=9D=20in=20auxlib?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luaotfload-auxiliary.lua | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'luaotfload-auxiliary.lua') diff --git a/luaotfload-auxiliary.lua b/luaotfload-auxiliary.lua index f7886be..2cf1e00 100644 --- a/luaotfload-auxiliary.lua +++ b/luaotfload-auxiliary.lua @@ -174,31 +174,47 @@ end aux.do_if_glyph_else = do_if_glyph_else ---- this one is approximately “name_to_slot” from the microtype ---- package +--[[doc-- + + This one is approximately “name_to_slot” from the microtype package; + note that it is all about Adobe Glyph names and glyph slots in the + font. The names and values may diverge from actual Unicode. + + http://www.adobe.com/devnet/opentype/archives/glyph.html + +--doc]]-- --- string -> (int | false) -local codepoint_of_name = function (glyphname) +local slot_of_name = function (glyphname) local fontdata = identifiers[font.current()] if fontdata then local unicode = fontdata.resources.unicodes[glyphname] if unicode and type(unicode) == "number" then return unicode else - return unicode[1] --- again, does that even happen? + return unicode[1] --- for multiple components end end return false end -aux.codepoint_of_name = codepoint_of_name +aux.slot_of_name = slot_of_name ---- inverse of above +--[[doc-- + + Inverse of above; not authoritative as to my knowledge the official + inverse of the AGL is the AGLFN. Maybe this whole issue should be + dealt with in a separate package that loads char-def.lua and thereby + solves the problem for the next couple decades. + + http://partners.adobe.com/public/developer/en/opentype/aglfn13.txt + +--doc]]-- local indices --- int -> (string | false) -local name_of_codepoint = function (codepoint) +local name_of_slot = function (codepoint) if not indices then --- this will load the glyph list local unicodes = fonts.encodings.agl.unicodes indices = table.swapped(unicodes) @@ -210,7 +226,7 @@ local name_of_codepoint = function (codepoint) return false end -aux.name_of_codepoint = name_of_codepoint +aux.name_of_slot = name_of_slot ----------------------------------------------------------------------- --- features / scripts / languages -- cgit v1.2.3