Add bin and edit workflow
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s

This commit is contained in:
2026-09-16 13:11:16 -06:00
parent c8ac4fcae5
commit 4cee170d66
17576 changed files with 895740 additions and 2 deletions
@@ -0,0 +1,58 @@
# frozen_string_literal: true
module TTFunk
class Table
class Post
# Version 1.0 provides glyph names for standard 258 glyphs in the standard
# Macintosh TrueType font file.
module Format10
# Glyph names.
POSTSCRIPT_GLYPHS = %w[
.notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar
percent ampersand quotesingle parenleft parenright asterisk plus comma
hyphen period slash zero one two three four five six seven eight nine
colon semicolon less equal greater question at
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
bracketleft backslash bracketright asciicircum underscore grave
a b c d e f g h i j k l m n o p q r s t u v w x y z
braceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute
Ntilde Odieresis Udieresis aacute agrave acircumflex adieresis atilde
aring ccedilla eacute egrave ecircumflex edieresis iacute igrave
icircumflex idieresis ntilde oacute ograve ocircumflex odieresis
otilde uacute ugrave ucircumflex udieresis dagger degree cent sterling
section bullet paragraph germandbls registered copyright trademark
acute dieresis notequal AE Oslash infinity plusminus lessequal
greaterequal yen mu partialdiff summation product pi integral
ordfeminine ordmasculine Omega ae oslash questiondown exclamdown
logicalnot radical florin approxequal Delta guillemotleft
guillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe
endash emdash quotedblleft quotedblright quoteleft quoteright divide
lozenge ydieresis Ydieresis fraction currency guilsinglleft
guilsinglright fi fl daggerdbl periodcentered quotesinglbase
quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis
Egrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple
Ograve Uacute Ucircumflex Ugrave dotlessi circumflex tilde macron
breve dotaccent ring cedilla hungarumlaut ogonek caron Lslash lslash
Scaron scaron Zcaron zcaron brokenbar Eth eth Yacute yacute Thorn
thorn minus multiply onesuperior twosuperior threesuperior onehalf
onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla
scedilla Cacute cacute Ccaron ccaron dcroat
].freeze
# Get glyph name for character code.
#
# @param code [Integer]
# @return [String]
def glyph_for(code)
POSTSCRIPT_GLYPHS[code] || '.notdef'
end
private
def parse_format!
# do nothing. Format 1 is easy-sauce.
end
end
end
end
end
@@ -0,0 +1,48 @@
# 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
@@ -0,0 +1,25 @@
# frozen_string_literal: true
module TTFunk
class Table
class Post
# Version 3.0 specifies that no PostScript name information is provided
# for the glyphs in this font file.
module Format30
# Get glyph name for character code.
#
# @param _code [Integer]
# @return [String]
def glyph_for(_code)
'.notdef'
end
private
def parse_format!
# do nothing. Format 3 is easy-sauce.
end
end
end
end
end
@@ -0,0 +1,24 @@
# frozen_string_literal: true
module TTFunk
class Table
class Post
# Version 4.0 names glyphs by their character code.
module Format40
# Get glyph name for character code.
#
# @param code [Integer]
# @return [String]
def glyph_for(code)
@map[code] || 0xFFFF
end
private
def parse_format!
@map = read(file.maximum_profile.num_glyphs * 2, 'N*')
end
end
end
end
end