# frozen_string_literal: true require_relative 'format10' require 'stringio' module TTFunk class Table class Post module Format20 include Format10 def glyph_for(code) index = @glyph_name_index[code] return '.notdef' unless index if index <= 257 POSTSCRIPT_GLYPHS[index] else @names[index - 258] || '.notdef' end end private def parse_format! number_of_glyphs = read(2, 'n').first @glyph_name_index = read(number_of_glyphs * 2, 'n*') @names = [] strings = StringIO.new(io.read(offset + length - io.pos)) until strings.eof? length = strings.read(1).unpack1('C') @names << strings.read(length) end end end end end end