module HexaPDF::Font::TrueType::Table::Post::Format2

def self.mapper(glyph_name_index, names) #:nodoc:

:nodoc:
def self.mapper(glyph_name_index, names) #:nodoc:
  lambda do |glyph_id|
    name_index = glyph_name_index[glyph_id]
    if !name_index
      nil
    elsif name_index <= 257
      Format1::GLYPH_NAMES[name_index]
    else
      names[name_index - 258]
    end
  end
end

def self.parse(io, length)

returns the contained glyph name map.
Parses the format 2 post subtable from the given IO at the current position and

Format2.parse(io, length) -> glyph_names
:call-seq:
def self.parse(io, length)
  end_pos = io.pos + length
  num_glyphs = io.read(2).unpack1('n')
  glyph_name_index = io.read(2 * num_glyphs).unpack('n*')
  names = []
  names << io.read(io.getbyte).force_encoding(::Encoding::UTF_8) while io.pos < end_pos
  mapper(glyph_name_index, names)
end