Files
news.gitea.happylizard.me/bin/gems/ttfunk-1.8.0/lib/ttfunk/table/post/format20.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

49 lines
1.3 KiB
Ruby

# frozen_string_literal: true
require_relative 'format10'
require 'stringio'
module TTFunk
class Table
class Post
# Version 2.0 is used for fonts that use glyph names that are not in the
# set of Macintosh glyph names. A given font may map some of its glyphs to
# the standard Macintosh glyph names, and some to its own custom names.
# A version 2.0 `post` table can be used in fonts with TrueType or CFF
# version 2 outlines.
module Format20
include Format10
# Get glyph name for character code.
#
# @param code [Integer]
# @return [String]
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