From 32f6eb163322b306c3a8b889e1dd2f196ae87b72 Mon Sep 17 00:00:00 2001 From: moi15moi Date: Sun, 23 Aug 2026 16:45:06 -0400 Subject: [PATCH 1/7] Support legacy arabic simplified/traditional cmap + support non 0xF000 symbol cmap This commit simply simulate what I implemented in libass: - https://github.com/libass/libass/pull/927 - https://github.com/libass/libass/pull/946 This commit fix https://github.com/moi15moi/FontCollector/issues/97 --- font_collector/font/abc_font_face.py | 67 ++- font_collector/font/font_parser.py | 136 ++++-- font_collector/font/legacy_cmap_mapping.py | 533 +++++++++++++++++++++ font_collector/font/name.py | 27 +- legacy_cmap/ArabicPUASimplified.txt | 250 ++++++++++ legacy_cmap/ArabicPUATraditional.txt | 295 ++++++++++++ legacy_cmap/gen_cmap.py | 52 ++ tests/font/test_font_parser.py | 24 +- 8 files changed, 1300 insertions(+), 84 deletions(-) create mode 100644 font_collector/font/legacy_cmap_mapping.py create mode 100644 legacy_cmap/ArabicPUASimplified.txt create mode 100644 legacy_cmap/ArabicPUATraditional.txt create mode 100644 legacy_cmap/gen_cmap.py diff --git a/font_collector/font/abc_font_face.py b/font_collector/font/abc_font_face.py index fd05588..f215fcb 100644 --- a/font_collector/font/abc_font_face.py +++ b/font_collector/font/abc_font_face.py @@ -27,7 +27,7 @@ from .cmap import CMap from .font_parser import FontParser from .font_type import FontType -from .name import Name +from .name import MacintoshEncodingID, MicrosoftEncodingID, Name, PlatformID if TYPE_CHECKING: from .font_file import FontFile @@ -298,44 +298,37 @@ def get_missing_glyphs( platform_id = charmap.contents.platform_id encoding_id = charmap.contents.encoding_id - cmap_encoding = FontParser.get_cmap_encoding(platform_id, encoding_id) - - # cmap not supported - if cmap_encoding is None: - continue - - if cmap_encoding == "unicode": - codepoint = ord(char) + if platform_id == PlatformID.MICROSOFT: + match encoding_id: + case MicrosoftEncodingID.SYMBOL: + codepoint = FontParser.get_glyph_id_for_symbol_cmap(ttFont, face, char, support_only_ascii_char_for_symbol_font) + case MicrosoftEncodingID.UNICODE_BMP: + is_legacy, legacy_codepoint = FontParser.get_glyph_id_for_legacy_cmap(ttFont, char) + codepoint = legacy_codepoint if is_legacy else ord(char) + case MicrosoftEncodingID.UNICODE_FULL: + codepoint = ord(char) + case _: + cmap_encoding = FontParser.MICROSOFT_CMAP_ENCODING_MAP.get(encoding_id) + if cmap_encoding is None: + raise ValueError(f"The encodingID {encoding_id} doesn't exist for microsoft platform. This should never happen.") + try: + codepoint = int.from_bytes(char.encode(cmap_encoding), "big") + except UnicodeEncodeError: + codepoint = None + elif platform_id == PlatformID.MACINTOSH: + match encoding_id: + case MacintoshEncodingID.ROMAN: + try: + codepoint = int.from_bytes(char.encode("mac_roman"), "big") + except UnicodeEncodeError: + codepoint = None + case _: + raise ValueError(f"The encodingID {encoding_id} doesn't exist for mac platform. This should never happen.") else: - symbol_cmap = False - if cmap_encoding == "unknown": - if platform_id == 3 and encoding_id == 0: - symbol_cmap = True - if support_only_ascii_char_for_symbol_font and not char.isascii(): - continue - cmap_encoding = FontParser.get_symbol_cmap_encoding(face) + raise ValueError(f"The platformID {platform_id} isn't supported by GDI. This should never happen.") - if cmap_encoding is None: - # Fallback if guess fails - cmap_encoding = "cp1252" - else: - # cmap not supported - continue - - if symbol_cmap and (0xF020 <= ord(char) and ord(char) <= 0xF0FF): - # If the character is already a "symbol" character (a.k.a is between 0xF020 and 0xF0FF), - # GDI directly use it's codepoint. - codepoint = ord(char) - else: - try: - codepoint = int.from_bytes(char.encode(cmap_encoding), "big") - except UnicodeEncodeError: - continue - - # GDI/Libass modify the codepoint for microsoft symbol cmap. - # See: https://github.com/libass/libass/blob/04a208d5d200360d2ac75f8f6cfc43dd58dd9225/libass/ass_font.c#L249-L250 - if platform_id == 3 and encoding_id == 0: - codepoint = 0xF000 | codepoint + if codepoint is None: + continue index = FT_Get_Char_Index(face, codepoint) diff --git a/font_collector/font/font_parser.py b/font_collector/font/font_parser.py index b48d017..8d47c93 100644 --- a/font_collector/font/font_parser.py +++ b/font_collector/font/font_parser.py @@ -10,13 +10,14 @@ from fontTools.ttLib.tables._n_a_m_e import NameRecord from fontTools.ttLib.ttFont import TTFont from fontTools.varLib.instancer.names import ELIDABLE_AXIS_VALUE_NAME -from freetype import Face, FT_Face, FT_Get_Glyph_Name +from freetype import FT_Get_First_Char, FT_UInt, Face, FT_Face, FT_Get_Glyph_Name from freetype.ft_enums.ft_style_flags import FT_STYLE_FLAGS from langcodes import Language from ..exceptions import InvalidNameRecord, InvalidVariableFontFaceException from .cmap import CMap -from .name import Name, NameID, PlatformID +from .legacy_cmap_mapping import arabic_simplified_cmap_mapping, arabic_traditional_cmap_mapping +from .name import MacintoshEncodingID, MicrosoftEncodingID, Name, NameID, PlatformID class FontParser: @@ -26,20 +27,16 @@ class FontParser: DEFAULT_WEIGHT = 400 DEFAULT_ITALIC = False - CMAP_ENCODING_MAP: dict[PlatformID, dict[int, str]] = { - PlatformID.MACINTOSH: { - 0: "mac_roman", - }, - PlatformID.MICROSOFT: { - 0: "unknown", - 1: "unicode", - 2: "cp932", - 3: "cp936", - 4: "cp950", - 5: "cp949", - 6: "cp1361", - 10: "unicode", - }, + MICROSOFT_CMAP_ENCODING_MAP: dict[int, str] = { + MicrosoftEncodingID.SHIFT_JIS: "cp932", + MicrosoftEncodingID.PRC: "cp936", + MicrosoftEncodingID.BIG5: "cp950", + MicrosoftEncodingID.WANSUNG: "cp949", + MicrosoftEncodingID.JOHAB: "cp1361", + } + LEGACY_CHARSET_CMAPS: dict[int, dict[int, int]] = { + 178: arabic_simplified_cmap_mapping, + 179: arabic_traditional_cmap_mapping, } @@ -522,8 +519,7 @@ def get_supported_cmaps( cmap_tables: list[CmapSubtable] = font["cmap"].tables for table in cmap_tables: - encoding = FontParser.get_cmap_encoding(table.platformID, table.platEncID) - if encoding is not None: + if FontParser.is_cmap_supported(table.platformID, table.platEncID): cmap = CMap(table.platformID, table.platEncID) if table.platformID == PlatformID.MICROSOFT: microsoft_cmaps.append(cmap) @@ -534,8 +530,7 @@ def get_supported_cmaps( face = Face(f, font_index) for charmap in face.charmaps: - encoding = FontParser.get_cmap_encoding(charmap.platform_id, charmap.encoding_id) - if encoding is not None: + if FontParser.is_cmap_supported(charmap.platform_id, charmap.encoding_id): cmap = CMap(charmap.platform_id, charmap.encoding_id) if charmap.platform_id == PlatformID.MICROSOFT: microsoft_cmaps.append(cmap) @@ -545,22 +540,103 @@ def get_supported_cmaps( @staticmethod - def get_cmap_encoding(platform_id: int, encoding_id: int) -> str | None: + def is_cmap_supported(platform_id: int, encoding_id: int) -> bool: """ Args: platform_id: CMap platform id encoding_id: CMap encoding id Returns: - The cmap encoding. - If GDI does not support the platform_id and/or platform_encoding_id, return None. - Warning, if it return "unknown", it means that the cmap is from a symbol font. - Call get_symbol_cmap_encoding() to know what is the encoding. - Notes: - - GDI only supports all encodings for the Microsoft CMap. - - For the Macintosh platform, it only supports the platform encoding 1. + True if the cmap is supported by GDI. + Otherwhise, False. + """ + if platform_id == PlatformID.MICROSOFT: + return encoding_id in ( + MicrosoftEncodingID.SYMBOL, + MicrosoftEncodingID.UNICODE_BMP, + MicrosoftEncodingID.SHIFT_JIS, + MicrosoftEncodingID.PRC, + MicrosoftEncodingID.BIG5, + MicrosoftEncodingID.WANSUNG, + MicrosoftEncodingID.JOHAB, + MicrosoftEncodingID.UNICODE_FULL, + ) + elif platform_id == PlatformID.MACINTOSH: + return encoding_id == MacintoshEncodingID.ROMAN + return False + + @staticmethod + def get_glyph_id_for_legacy_cmap(font: TTFont, character: str) -> tuple[bool, int | None]: + """ + Args: + font: A fontTools object representing the font. + character: A single character. + Returns: + A tuple (is_legacy, glyph_id). + is_legacy is True if the font is a legacy font. + glyph_id is the character's remapped PUA codepoint if the charset's mapping contains it. + It is None if is_legacy is False, and also None if is_legacy is True but the character + isn't in that charset's mapping. + Note: + This method is identical to https://github.com/libass/libass/blob/b2fe9d8770678a7b5271387d38c20657ebf3429a/libass/ass_font.c#L250-L270 + """ + if "OS/2" not in font: + return False, None + + charset = (font["OS/2"].fsSelection >> 8) & 0xFF + mapping = FontParser.LEGACY_CHARSET_CMAPS.get(charset) + if mapping is None: + return False, None + + glyph_id = mapping.get(ord(character)) + return True, glyph_id + + + @staticmethod + def get_glyph_id_for_symbol_cmap(font: TTFont, face: FT_Face, character: str, support_only_ascii_char_for_symbol_font: bool) -> int | None: + """ + Args: + font: A fontTools object representing the font. + face: An Font face. + character: A single character. + support_only_ascii_char_for_symbol_font: See ABCFontFace.get_missing_glyphs. + Returns: + The glyph_id GDI would look up for this character in a microsoft symbol cmap. + Note: + This method is identical to https://github.com/libass/libass/blob/b2fe9d8770678a7b5271387d38c20657ebf3429a/libass/ass_font.c#L272-L320 """ - if platform_id in FontParser.CMAP_ENCODING_MAP: - return FontParser.CMAP_ENCODING_MAP[PlatformID(platform_id)].get(encoding_id, None) + is_legacy, legacy_codepoint = FontParser.get_glyph_id_for_legacy_cmap(font, character) + if is_legacy: + return legacy_codepoint + + gindex = FT_UInt() + first_char = FT_Get_First_Char(face, byref(gindex)) + + match first_char & 0xFF00: + case 0xF000: + offset = 0xF000 + case 0xE000 | 0x0000: + offset = 0 + case _: + offset = first_char - 0x20 + + is_symbol_glyph_set = bool(offset) or ( + "OS/2" in font and font["OS/2"].panose.bFamilyType == 5 and (font["OS/2"].fsSelection & 0xFF) == 0 + ) + if not is_symbol_glyph_set: + return ord(character) + + cmap_encoding = FontParser.get_symbol_cmap_encoding(face) or "cp1252" + try: + codepoint = int.from_bytes(character.encode(cmap_encoding), "big") + except UnicodeEncodeError: + codepoint = None + + if codepoint is not None and codepoint <= 0xFF: + if not support_only_ascii_char_for_symbol_font or character.isascii(): + return offset + codepoint + elif 0xF020 <= ord(character) <= 0xF0FF: + return offset + (ord(character) & 0xFF) + return None diff --git a/font_collector/font/legacy_cmap_mapping.py b/font_collector/font/legacy_cmap_mapping.py new file mode 100644 index 0000000..84c03c2 --- /dev/null +++ b/font_collector/font/legacy_cmap_mapping.py @@ -0,0 +1,533 @@ +# WARNING - THIS FILE IS AUTO-GENERATED. DO NOT EDIT IT MANUALLY. +# Regenerate with: python legacy_cmap/gen_cmap.py + +arabic_simplified_cmap_mapping : dict[int, int] = { + 0x20: 0xf120, + 0x21: 0xf121, + 0x22: 0xf122, + 0x25: 0xf125, + 0x28: 0xf128, + 0x29: 0xf129, + 0x2a: 0xf12a, + 0x2b: 0xf12b, + 0x2c: 0xf15e, + 0x2d: 0xf12d, + 0x2e: 0xf12e, + 0x2f: 0xf12f, + 0x30: 0xf1b0, + 0x31: 0xf1b1, + 0x32: 0xf1b2, + 0x33: 0xf1b3, + 0x34: 0xf1b4, + 0x35: 0xf1b5, + 0x36: 0xf1b6, + 0x37: 0xf1b7, + 0x38: 0xf1b8, + 0x39: 0xf1b9, + 0x3a: 0xf13a, + 0x3b: 0xf13b, + 0x3d: 0xf13d, + 0x3f: 0xf13f, + 0x5b: 0xf15b, + 0x5c: 0xf15c, + 0x5d: 0xf15d, + 0xab: 0xf123, + 0xbb: 0xf124, + 0xd7: 0xf126, + 0xf7: 0xf127, + 0x60c: 0xf12c, + 0x61b: 0xf13b, + 0x61f: 0xf13f, + 0x621: 0xf1ad, + 0x622: 0xf145, + 0x623: 0xf143, + 0x624: 0xf1bb, + 0x625: 0xf147, + 0x626: 0xf1ba, + 0x627: 0xf141, + 0x628: 0xf14a, + 0x629: 0xf1a9, + 0x62a: 0xf14c, + 0x62b: 0xf14e, + 0x62c: 0xf151, + 0x62d: 0xf154, + 0x62e: 0xf157, + 0x62f: 0xf158, + 0x630: 0xf159, + 0x631: 0xf15a, + 0x632: 0xf160, + 0x633: 0xf162, + 0x634: 0xf164, + 0x635: 0xf166, + 0x636: 0xf168, + 0x637: 0xf169, + 0x638: 0xf16a, + 0x639: 0xf16e, + 0x63a: 0xf172, + 0x63b: 0xf100, + 0x63c: 0xf100, + 0x63d: 0xf100, + 0x63e: 0xf100, + 0x63f: 0xf100, + 0x640: 0xf15f, + 0x641: 0xf175, + 0x642: 0xf178, + 0x643: 0xf17a, + 0x644: 0xf17c, + 0x645: 0xf17e, + 0x646: 0xf1e1, + 0x647: 0xf1a4, + 0x648: 0xf1a5, + 0x649: 0xf1ac, + 0x64a: 0xf1a8, + 0x64b: 0xf1c7, + 0x64c: 0xf1c8, + 0x64d: 0xf1cb, + 0x64e: 0xf1c4, + 0x64f: 0xf1c5, + 0x650: 0xf1ca, + 0x651: 0xf1c9, + 0x652: 0xf1c6, + 0x653: 0xf100, + 0x654: 0xf100, + 0x655: 0xf100, + 0x656: 0xf100, + 0x657: 0xf100, + 0x658: 0xf100, + 0x659: 0xf100, + 0x65a: 0xf100, + 0x65b: 0xf100, + 0x65c: 0xf100, + 0x65d: 0xf100, + 0x65e: 0xf100, + 0x660: 0xf130, + 0x661: 0xf131, + 0x662: 0xf132, + 0x663: 0xf133, + 0x664: 0xf134, + 0x665: 0xf135, + 0x666: 0xf136, + 0x667: 0xf137, + 0x668: 0xf138, + 0x669: 0xf139, + 0x66b: 0xf15e, + 0x66c: 0xf15e, + 0x200c: 0xf10c, + 0x200d: 0xf10d, + 0x200e: 0xf10e, + 0x200f: 0xf10f, + 0x2018: 0xf13c, + 0x2019: 0xf13e, + 0xfe81: 0xf145, + 0xfe82: 0xf146, + 0xfe83: 0xf143, + 0xfe84: 0xf144, + 0xfe85: 0xf1bb, + 0xfe86: 0xf1bb, + 0xfe87: 0xf147, + 0xfe88: 0xf148, + 0xfe89: 0xf1ba, + 0xfe8a: 0xf1af, + 0xfe8b: 0xf1ae, + 0xfe8c: 0xf1ae, + 0xfe8d: 0xf141, + 0xfe8e: 0xf142, + 0xfe8f: 0xf14a, + 0xfe90: 0xf14a, + 0xfe91: 0xf149, + 0xfe92: 0xf149, + 0xfe93: 0xf1a9, + 0xfe94: 0xf1aa, + 0xfe95: 0xf14c, + 0xfe96: 0xf14c, + 0xfe97: 0xf14b, + 0xfe98: 0xf14b, + 0xfe99: 0xf14e, + 0xfe9a: 0xf14e, + 0xfe9b: 0xf14d, + 0xfe9c: 0xf14d, + 0xfe9d: 0xf151, + 0xfe9e: 0xf150, + 0xfe9f: 0xf14f, + 0xfea0: 0xf14f, + 0xfea1: 0xf154, + 0xfea2: 0xf153, + 0xfea3: 0xf152, + 0xfea4: 0xf152, + 0xfea5: 0xf157, + 0xfea6: 0xf156, + 0xfea7: 0xf155, + 0xfea8: 0xf155, + 0xfea9: 0xf158, + 0xfeaa: 0xf158, + 0xfeab: 0xf159, + 0xfeac: 0xf159, + 0xfead: 0xf15a, + 0xfeae: 0xf15a, + 0xfeaf: 0xf160, + 0xfeb0: 0xf160, + 0xfeb1: 0xf162, + 0xfeb2: 0xf162, + 0xfeb3: 0xf161, + 0xfeb4: 0xf161, + 0xfeb5: 0xf164, + 0xfeb6: 0xf164, + 0xfeb7: 0xf163, + 0xfeb8: 0xf163, + 0xfeb9: 0xf166, + 0xfeba: 0xf166, + 0xfebb: 0xf165, + 0xfebc: 0xf165, + 0xfebd: 0xf168, + 0xfebe: 0xf168, + 0xfebf: 0xf167, + 0xfec0: 0xf167, + 0xfec1: 0xf169, + 0xfec2: 0xf169, + 0xfec3: 0xf169, + 0xfec4: 0xf169, + 0xfec5: 0xf16a, + 0xfec6: 0xf16a, + 0xfec7: 0xf16a, + 0xfec8: 0xf16a, + 0xfec9: 0xf16e, + 0xfeca: 0xf16d, + 0xfecb: 0xf16b, + 0xfecc: 0xf16c, + 0xfecd: 0xf172, + 0xfece: 0xf171, + 0xfecf: 0xf16f, + 0xfed0: 0xf170, + 0xfed1: 0xf175, + 0xfed2: 0xf175, + 0xfed3: 0xf173, + 0xfed4: 0xf174, + 0xfed5: 0xf178, + 0xfed6: 0xf178, + 0xfed7: 0xf176, + 0xfed8: 0xf177, + 0xfed9: 0xf17a, + 0xfeda: 0xf17a, + 0xfedb: 0xf179, + 0xfedc: 0xf179, + 0xfedd: 0xf17c, + 0xfede: 0xf17c, + 0xfedf: 0xf17b, + 0xfee0: 0xf17b, + 0xfee1: 0xf17e, + 0xfee2: 0xf17e, + 0xfee3: 0xf17d, + 0xfee4: 0xf17d, + 0xfee5: 0xf1e1, + 0xfee6: 0xf1e1, + 0xfee7: 0xf17f, + 0xfee8: 0xf17f, + 0xfee9: 0xf1a4, + 0xfeea: 0xf1a3, + 0xfeeb: 0xf1a1, + 0xfeec: 0xf1a2, + 0xfeed: 0xf1a5, + 0xfeee: 0xf1a5, + 0xfeef: 0xf1ac, + 0xfef0: 0xf1ab, + 0xfef1: 0xf1a8, + 0xfef2: 0xf1a7, + 0xfef3: 0xf1a6, + 0xfef4: 0xf1a6, + 0xfef5: 0xf1c0, + 0xfef6: 0xf1c1, + 0xfef7: 0xf1be, + 0xfef8: 0xf1bf, + 0xfef9: 0xf1c2, + 0xfefa: 0xf1c3, + 0xfefb: 0xf1bd, + 0xfefc: 0xf1bc, +} + +arabic_traditional_cmap_mapping : dict[int, int] = { + 0x20: 0xf220, + 0x21: 0xf221, + 0x22: 0xf222, + 0x25: 0xf225, + 0x28: 0xf228, + 0x29: 0xf229, + 0x2a: 0xf22a, + 0x2b: 0xf22b, + 0x2c: 0xf25e, + 0x2d: 0xf22d, + 0x2e: 0xf22e, + 0x2f: 0xf22f, + 0x3a: 0xf23a, + 0x3b: 0xf23b, + 0x3d: 0xf23d, + 0x3f: 0xf23f, + 0x5b: 0xf25b, + 0x5d: 0xf25d, + 0xab: 0xf223, + 0xbb: 0xf224, + 0xd7: 0xf226, + 0xf7: 0xf227, + 0x60c: 0xf22c, + 0x61b: 0xf23b, + 0x61f: 0xf23f, + 0x621: 0xf2d5, + 0x622: 0xf245, + 0x623: 0xf243, + 0x624: 0xf2da, + 0x625: 0xf247, + 0x626: 0xf2d9, + 0x627: 0xf241, + 0x628: 0xf24c, + 0x629: 0xf2d1, + 0x62a: 0xf250, + 0x62b: 0xf254, + 0x62c: 0xf258, + 0x62d: 0xf260, + 0x62e: 0xf264, + 0x62f: 0xf265, + 0x630: 0xf267, + 0x631: 0xf269, + 0x632: 0xf26b, + 0x633: 0xf270, + 0x634: 0xf274, + 0x635: 0xf278, + 0x636: 0xf27e, + 0x637: 0xf2a2, + 0x638: 0xf2a3, + 0x639: 0xf2aa, + 0x63a: 0xf2ae, + 0x63b: 0xf200, + 0x63c: 0xf200, + 0x63d: 0xf200, + 0x63e: 0xf200, + 0x63f: 0xf200, + 0x640: 0xf25f, + 0x641: 0xf2b2, + 0x642: 0xf2b6, + 0x643: 0xf2ba, + 0x644: 0xf2be, + 0x645: 0xf2c2, + 0x646: 0xf2c6, + 0x647: 0xf2ca, + 0x648: 0xf2cb, + 0x649: 0xf2d4, + 0x64a: 0xf2d0, + 0x64b: 0xf2e7, + 0x64c: 0xf2e8, + 0x64d: 0xf2eb, + 0x64e: 0xf2e4, + 0x64f: 0xf2e5, + 0x650: 0xf2ea, + 0x651: 0xf2e9, + 0x652: 0xf2e6, + 0x653: 0xf200, + 0x654: 0xf200, + 0x655: 0xf200, + 0x656: 0xf200, + 0x657: 0xf200, + 0x658: 0xf200, + 0x659: 0xf200, + 0x65a: 0xf200, + 0x65b: 0xf200, + 0x65c: 0xf200, + 0x65d: 0xf200, + 0x65e: 0xf200, + 0x660: 0xf230, + 0x661: 0xf231, + 0x662: 0xf232, + 0x663: 0xf233, + 0x664: 0xf234, + 0x665: 0xf235, + 0x666: 0xf236, + 0x667: 0xf237, + 0x668: 0xf238, + 0x669: 0xf239, + 0x66b: 0xf25e, + 0x66c: 0xf25e, + 0x200c: 0xf20c, + 0x200d: 0xf20d, + 0x200e: 0xf20e, + 0x200f: 0xf20f, + 0x201c: 0xf23c, + 0x201d: 0xf23e, + 0xfc08: 0xf202, + 0xfc0a: 0xf21d, + 0xfc0e: 0xf203, + 0xfc10: 0xf21e, + 0xfc12: 0xf204, + 0xfc32: 0xf29f, + 0xfc3f: 0xf212, + 0xfc40: 0xf213, + 0xfc41: 0xf214, + 0xfc42: 0xf205, + 0xfc43: 0xf295, + 0xfc44: 0xf21c, + 0xfc4e: 0xf206, + 0xfc50: 0xf21f, + 0xfc5e: 0xf2ef, + 0xfc60: 0xf2ec, + 0xfc61: 0xf2ed, + 0xfc62: 0xf2f0, + 0xfc6a: 0xf215, + 0xfc6d: 0xf292, + 0xfc70: 0xf216, + 0xfc73: 0xf293, + 0xfc91: 0xf217, + 0xfc94: 0xf294, + 0xfc9c: 0xf280, + 0xfc9d: 0xf281, + 0xfc9e: 0xf282, + 0xfc9f: 0xf296, + 0xfca1: 0xf283, + 0xfca2: 0xf284, + 0xfca3: 0xf285, + 0xfca4: 0xf297, + 0xfca8: 0xf29a, + 0xfcaa: 0xf29b, + 0xfcac: 0xf29c, + 0xfcb0: 0xf218, + 0xfcc9: 0xf286, + 0xfcca: 0xf287, + 0xfccb: 0xf288, + 0xfccc: 0xf29d, + 0xfccd: 0xf21a, + 0xfcce: 0xf289, + 0xfccf: 0xf28a, + 0xfcd0: 0xf28b, + 0xfcd1: 0xf29e, + 0xfcd2: 0xf28d, + 0xfcd3: 0xf28e, + 0xfcd5: 0xf298, + 0xfcda: 0xf28f, + 0xfcdb: 0xf290, + 0xfcdc: 0xf291, + 0xfcdd: 0xf299, + 0xfd30: 0xf219, + 0xfd3e: 0xf27b, + 0xfd3f: 0xf27d, + 0xfd88: 0xf210, + 0xfe81: 0xf245, + 0xfe82: 0xf246, + 0xfe83: 0xf243, + 0xfe84: 0xf244, + 0xfe85: 0xf2da, + 0xfe86: 0xf2db, + 0xfe87: 0xf247, + 0xfe88: 0xf248, + 0xfe89: 0xf2d9, + 0xfe8a: 0xf2d8, + 0xfe8b: 0xf2d6, + 0xfe8c: 0xf2d7, + 0xfe8d: 0xf241, + 0xfe8e: 0xf242, + 0xfe8f: 0xf24c, + 0xfe90: 0xf24b, + 0xfe91: 0xf249, + 0xfe92: 0xf24a, + 0xfe93: 0xf2d1, + 0xfe94: 0xf2d2, + 0xfe95: 0xf250, + 0xfe96: 0xf24f, + 0xfe97: 0xf24d, + 0xfe98: 0xf24e, + 0xfe99: 0xf254, + 0xfe9a: 0xf253, + 0xfe9b: 0xf251, + 0xfe9c: 0xf252, + 0xfe9d: 0xf258, + 0xfe9e: 0xf257, + 0xfe9f: 0xf255, + 0xfea0: 0xf256, + 0xfea1: 0xf260, + 0xfea2: 0xf25c, + 0xfea3: 0xf259, + 0xfea4: 0xf25a, + 0xfea5: 0xf264, + 0xfea6: 0xf263, + 0xfea7: 0xf261, + 0xfea8: 0xf262, + 0xfea9: 0xf265, + 0xfeaa: 0xf266, + 0xfeab: 0xf267, + 0xfeac: 0xf268, + 0xfead: 0xf269, + 0xfeae: 0xf26a, + 0xfeaf: 0xf26b, + 0xfeb0: 0xf26c, + 0xfeb1: 0xf270, + 0xfeb2: 0xf26f, + 0xfeb3: 0xf26d, + 0xfeb4: 0xf26e, + 0xfeb5: 0xf274, + 0xfeb6: 0xf273, + 0xfeb7: 0xf271, + 0xfeb8: 0xf272, + 0xfeb9: 0xf278, + 0xfeba: 0xf277, + 0xfebb: 0xf275, + 0xfebc: 0xf276, + 0xfebd: 0xf27e, + 0xfebe: 0xf27c, + 0xfebf: 0xf279, + 0xfec0: 0xf27a, + 0xfec1: 0xf2a2, + 0xfec2: 0xf2a1, + 0xfec3: 0xf27f, + 0xfec4: 0xf2f1, + 0xfec5: 0xf2a6, + 0xfec6: 0xf2a5, + 0xfec7: 0xf2a3, + 0xfec8: 0xf2a4, + 0xfec9: 0xf2aa, + 0xfeca: 0xf2a9, + 0xfecb: 0xf2a7, + 0xfecc: 0xf2a8, + 0xfecd: 0xf2ae, + 0xfece: 0xf2ad, + 0xfecf: 0xf2ab, + 0xfed0: 0xf2ac, + 0xfed1: 0xf2b2, + 0xfed2: 0xf2b1, + 0xfed3: 0xf2af, + 0xfed4: 0xf2b0, + 0xfed5: 0xf2b6, + 0xfed6: 0xf2b5, + 0xfed7: 0xf2b3, + 0xfed8: 0xf2b4, + 0xfed9: 0xf2ba, + 0xfeda: 0xf2b9, + 0xfedb: 0xf2b7, + 0xfedc: 0xf2b8, + 0xfedd: 0xf2be, + 0xfede: 0xf2bd, + 0xfedf: 0xf2bb, + 0xfee0: 0xf2bc, + 0xfee1: 0xf2c2, + 0xfee2: 0xf2c1, + 0xfee3: 0xf2bf, + 0xfee4: 0xf2c0, + 0xfee5: 0xf2c6, + 0xfee6: 0xf2c5, + 0xfee7: 0xf2c3, + 0xfee8: 0xf2c4, + 0xfee9: 0xf2ca, + 0xfeea: 0xf2c9, + 0xfeeb: 0xf2c7, + 0xfeec: 0xf2c8, + 0xfeed: 0xf2cb, + 0xfeee: 0xf2cc, + 0xfeef: 0xf2d4, + 0xfef0: 0xf2d3, + 0xfef1: 0xf2d0, + 0xfef2: 0xf2cf, + 0xfef3: 0xf2cd, + 0xfef4: 0xf2ce, + 0xfef5: 0xf2e0, + 0xfef6: 0xf2e1, + 0xfef7: 0xf2de, + 0xfef8: 0xf2df, + 0xfef9: 0xf2e2, + 0xfefa: 0xf2e3, + 0xfefb: 0xf2dc, + 0xfefc: 0xf2dd, +} diff --git a/font_collector/font/name.py b/font_collector/font/name.py index 49b1b0a..952c168 100644 --- a/font_collector/font/name.py +++ b/font_collector/font/name.py @@ -19,7 +19,7 @@ MAC_LANGUAGES_TO_LCID_CODE: dict[str, int] = _MAC_LANGUAGE_CODES -__all__ = ["Name", "NameID", "PlatformID"] +__all__ = ["MacintoshEncodingID", "MicrosoftEncodingID", "Name", "NameID", "PlatformID"] class PlatformID(IntEnum): # From https://learn.microsoft.com/en-us/typography/opentype/spec/name#platform-ids @@ -28,6 +28,23 @@ class PlatformID(IntEnum): MICROSOFT = 3 +class MacintoshEncodingID(IntEnum): + # From https://learn.microsoft.com/en-us/typography/opentype/spec/name#macintosh-encoding-ids-script-manager-codes + ROMAN = 0 + + +class MicrosoftEncodingID(IntEnum): + # From https://learn.microsoft.com/en-us/typography/opentype/spec/name#windows-encoding-ids + SYMBOL = 0 + UNICODE_BMP = 1 + SHIFT_JIS = 2 + PRC = 3 + BIG5 = 4 + WANSUNG = 5 + JOHAB = 6 + UNICODE_FULL = 10 + + class NameID(IntEnum): # From: https://learn.microsoft.com/en-us/typography/opentype/spec/name#name-ids COPYRIGHT = 0 @@ -100,21 +117,21 @@ def get_name_record_encoding(name: NameRecord) -> str | None: """ # From: https://github.com/MicrosoftDocs/typography-issues/issues/956#issuecomment-1205678068 if name.platformID == PlatformID.MICROSOFT: - if name.platEncID == 3: + if name.platEncID == MicrosoftEncodingID.PRC: return "cp936" - elif name.platEncID == 4: + elif name.platEncID == MicrosoftEncodingID.BIG5: if name.nameID == NameID.SUBFAMILY_NAME: return "utf_16_be" else: return "cp950" - elif name.platEncID == 5: + elif name.platEncID == MicrosoftEncodingID.WANSUNG: if name.nameID == NameID.SUBFAMILY_NAME: return "utf_16_be" else: return "cp949" else: return "utf_16_be" - elif name.platformID == PlatformID.MACINTOSH and name.platEncID == 0: + elif name.platformID == PlatformID.MACINTOSH and name.platEncID == MacintoshEncodingID.ROMAN: # From: https://github.com/libass/libass/issues/679#issuecomment-1442262479 return "iso-8859-1" diff --git a/legacy_cmap/ArabicPUASimplified.txt b/legacy_cmap/ArabicPUASimplified.txt new file mode 100644 index 0000000..a74ef26 --- /dev/null +++ b/legacy_cmap/ArabicPUASimplified.txt @@ -0,0 +1,250 @@ +# +# Name: Legacy Simplified Arabic encoding +# +# Format: Three tab-separated columns +# Column #1 is the PUA code (in hex as 0xXXXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in PUA order +# +0xF100 0x063B # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE +0xF100 0x063C # ARABIC LETTER KEHEH WITH THREE DOTS BELOW +0xF100 0x063D # ARABIC LETTER FARSI YEH WITH INVERTED V +0xF100 0x063E # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE +0xF100 0x063F # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0xF100 0x0653 # ARABIC MADDAH ABOVE +0xF100 0x0654 # ARABIC HAMZA ABOVE +0xF100 0x0655 # ARABIC HAMZA BELOW +0xF100 0x0656 # ARABIC SUBSCRIPT ALEF +0xF100 0x0657 # ARABIC INVERTED DAMMA +0xF100 0x0658 # ARABIC MARK NOON GHUNNA +0xF100 0x0659 # ARABIC ZWARAKAY +0xF100 0x065A # ARABIC VOWEL SIGN SMALL V ABOVE +0xF100 0x065B # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE +0xF100 0x065C # ARABIC VOWEL SIGN DOT BELOW +0xF100 0x065D # ARABIC REVERSED DAMMA +0xF100 0x065E # ARABIC FATHA WITH TWO DOTS +0xF10C 0x200C # ZERO WIDTH NON-JOINER +0xF10D 0x200D # ZERO WIDTH JOINER +0xF10E 0x200E # LEFT-TO-RIGHT MARK +0xF10F 0x200F # RIGHT-TO-LEFT MARK +0xF120 0x0020 # SPACE +0xF121 0x0021 # EXCLAMATION MARK +0xF122 0x0022 # QUOTATION MARK +0xF123 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xF124 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xF125 0x0025 # PERCENT SIGN +0xF126 0x00D7 # MULTIPLICATION SIGN +0xF127 0x00F7 # DIVISION SIGN +0xF128 0x0028 # LEFT PARENTHESIS +0xF129 0x0029 # RIGHT PARENTHESIS +0xF12A 0x002A # ASTERISK +0xF12B 0x002B # PLUS SIGN +0xF12C 0x060C # ARABIC COMMA +0xF12D 0x002D # HYPHEN-MINUS +0xF12E 0x002E # FULL STOP +0xF12F 0x002F # SOLIDUS +0xF130 0x0660 # ARABIC-INDIC DIGIT ZERO +0xF131 0x0661 # ARABIC-INDIC DIGIT ONE +0xF132 0x0662 # ARABIC-INDIC DIGIT TWO +0xF133 0x0663 # ARABIC-INDIC DIGIT THREE +0xF134 0x0664 # ARABIC-INDIC DIGIT FOUR +0xF135 0x0665 # ARABIC-INDIC DIGIT FIVE +0xF136 0x0666 # ARABIC-INDIC DIGIT SIX +0xF137 0x0667 # ARABIC-INDIC DIGIT SEVEN +0xF138 0x0668 # ARABIC-INDIC DIGIT EIGHT +0xF139 0x0669 # ARABIC-INDIC DIGIT NINE +0xF13A 0x003A # COLON +0xF13B 0x003B # SEMICOLON +0xF13B 0x061B # ARABIC SEMICOLON +0xF13C 0x2018 # LEFT SINGLE QUOTATION MARK +0xF13D 0x003D # EQUALS SIGN +0xF13E 0x2019 # RIGHT SINGLE QUOTATION MARK +0xF13F 0x003F # QUESTION MARK +0xF13F 0x061F # ARABIC QUESTION MARK +0xF141 0x0627 # ARABIC LETTER ALEF +0xF141 0xFE8D # ARABIC LETTER ALEF ISOLATED FORM +0xF142 0xFE8E # ARABIC LETTER ALEF FINAL FORM +0xF143 0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE +0xF143 0xFE83 # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM +0xF144 0xFE84 # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM +0xF145 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE +0xF145 0xFE81 # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM +0xF146 0xFE82 # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM +0xF147 0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW +0xF147 0xFE87 # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM +0xF148 0xFE88 # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM +0xF149 0xFE91 # ARABIC LETTER BEH INITIAL FORM +0xF149 0xFE92 # ARABIC LETTER BEH MEDIAL FORM +0xF14A 0x0628 # ARABIC LETTER BEH +0xF14A 0xFE8F # ARABIC LETTER BEH ISOLATED FORM +0xF14A 0xFE90 # ARABIC LETTER BEH FINAL FORM +0xF14B 0xFE97 # ARABIC LETTER TEH INITIAL FORM +0xF14B 0xFE98 # ARABIC LETTER TEH MEDIAL FORM +0xF14C 0x062A # ARABIC LETTER TEH +0xF14C 0xFE95 # ARABIC LETTER TEH ISOLATED FORM +0xF14C 0xFE96 # ARABIC LETTER TEH FINAL FORM +0xF14D 0xFE9B # ARABIC LETTER THEH INITIAL FORM +0xF14D 0xFE9C # ARABIC LETTER THEH MEDIAL FORM +0xF14E 0x062B # ARABIC LETTER THEH +0xF14E 0xFE99 # ARABIC LETTER THEH ISOLATED FORM +0xF14E 0xFE9A # ARABIC LETTER THEH FINAL FORM +0xF14F 0xFE9F # ARABIC LETTER JEEM INITIAL FORM +0xF14F 0xFEA0 # ARABIC LETTER JEEM MEDIAL FORM +0xF150 0xFE9E # ARABIC LETTER JEEM FINAL FORM +0xF151 0x062C # ARABIC LETTER JEEM +0xF151 0xFE9D # ARABIC LETTER JEEM ISOLATED FORM +0xF152 0xFEA3 # ARABIC LETTER HAH INITIAL FORM +0xF152 0xFEA4 # ARABIC LETTER HAH MEDIAL FORM +0xF153 0xFEA2 # ARABIC LETTER HAH FINAL FORM +0xF154 0x062D # ARABIC LETTER HAH +0xF154 0xFEA1 # ARABIC LETTER HAH ISOLATED FORM +0xF155 0xFEA7 # ARABIC LETTER KHAH INITIAL FORM +0xF155 0xFEA8 # ARABIC LETTER KHAH MEDIAL FORM +0xF156 0xFEA6 # ARABIC LETTER KHAH FINAL FORM +0xF157 0x062E # ARABIC LETTER KHAH +0xF157 0xFEA5 # ARABIC LETTER KHAH ISOLATED FORM +0xF158 0x062F # ARABIC LETTER DAL +0xF158 0xFEA9 # ARABIC LETTER DAL ISOLATED FORM +0xF158 0xFEAA # ARABIC LETTER DAL FINAL FORM +0xF159 0x0630 # ARABIC LETTER THAL +0xF159 0xFEAB # ARABIC LETTER THAL ISOLATED FORM +0xF159 0xFEAC # ARABIC LETTER THAL FINAL FORM +0xF15A 0x0631 # ARABIC LETTER REH +0xF15A 0xFEAD # ARABIC LETTER REH ISOLATED FORM +0xF15A 0xFEAE # ARABIC LETTER REH FINAL FORM +0xF15B 0x005B # LEFT SQUARE BRACKET +0xF15C 0x005C # REVERSE SOLIDUS +0xF15D 0x005D # RIGHT SQUARE BRACKET +0xF15E 0x002C # COMMA +0xF15E 0x066B # ARABIC DECIMAL SEPARATOR +0xF15E 0x066C # ARABIC THOUSANDS SEPARATOR +0xF15F 0x0640 # ARABIC TATWEEL +0xF160 0x0632 # ARABIC LETTER ZAIN +0xF160 0xFEAF # ARABIC LETTER ZAIN ISOLATED FORM +0xF160 0xFEB0 # ARABIC LETTER ZAIN FINAL FORM +0xF161 0xFEB3 # ARABIC LETTER SEEN INITIAL FORM +0xF161 0xFEB4 # ARABIC LETTER SEEN MEDIAL FORM +0xF162 0x0633 # ARABIC LETTER SEEN +0xF162 0xFEB1 # ARABIC LETTER SEEN ISOLATED FORM +0xF162 0xFEB2 # ARABIC LETTER SEEN FINAL FORM +0xF163 0xFEB7 # ARABIC LETTER SHEEN INITIAL FORM +0xF163 0xFEB8 # ARABIC LETTER SHEEN MEDIAL FORM +0xF164 0x0634 # ARABIC LETTER SHEEN +0xF164 0xFEB5 # ARABIC LETTER SHEEN ISOLATED FORM +0xF164 0xFEB6 # ARABIC LETTER SHEEN FINAL FORM +0xF165 0xFEBB # ARABIC LETTER SAD INITIAL FORM +0xF165 0xFEBC # ARABIC LETTER SAD MEDIAL FORM +0xF166 0x0635 # ARABIC LETTER SAD +0xF166 0xFEB9 # ARABIC LETTER SAD ISOLATED FORM +0xF166 0xFEBA # ARABIC LETTER SAD FINAL FORM +0xF167 0xFEBF # ARABIC LETTER DAD INITIAL FORM +0xF167 0xFEC0 # ARABIC LETTER DAD MEDIAL FORM +0xF168 0x0636 # ARABIC LETTER DAD +0xF168 0xFEBD # ARABIC LETTER DAD ISOLATED FORM +0xF168 0xFEBE # ARABIC LETTER DAD FINAL FORM +0xF169 0x0637 # ARABIC LETTER TAH +0xF169 0xFEC1 # ARABIC LETTER TAH ISOLATED FORM +0xF169 0xFEC2 # ARABIC LETTER TAH FINAL FORM +0xF169 0xFEC3 # ARABIC LETTER TAH INITIAL FORM +0xF169 0xFEC4 # ARABIC LETTER TAH MEDIAL FORM +0xF16A 0x0638 # ARABIC LETTER ZAH +0xF16A 0xFEC5 # ARABIC LETTER ZAH ISOLATED FORM +0xF16A 0xFEC6 # ARABIC LETTER ZAH FINAL FORM +0xF16A 0xFEC7 # ARABIC LETTER ZAH INITIAL FORM +0xF16A 0xFEC8 # ARABIC LETTER ZAH MEDIAL FORM +0xF16B 0xFECB # ARABIC LETTER AIN INITIAL FORM +0xF16C 0xFECC # ARABIC LETTER AIN MEDIAL FORM +0xF16D 0xFECA # ARABIC LETTER AIN FINAL FORM +0xF16E 0x0639 # ARABIC LETTER AIN +0xF16E 0xFEC9 # ARABIC LETTER AIN ISOLATED FORM +0xF16F 0xFECF # ARABIC LETTER GHAIN INITIAL FORM +0xF170 0xFED0 # ARABIC LETTER GHAIN MEDIAL FORM +0xF171 0xFECE # ARABIC LETTER GHAIN FINAL FORM +0xF172 0x063A # ARABIC LETTER GHAIN +0xF172 0xFECD # ARABIC LETTER GHAIN ISOLATED FORM +0xF173 0xFED3 # ARABIC LETTER FEH INITIAL FORM +0xF174 0xFED4 # ARABIC LETTER FEH MEDIAL FORM +0xF175 0x0641 # ARABIC LETTER FEH +0xF175 0xFED1 # ARABIC LETTER FEH ISOLATED FORM +0xF175 0xFED2 # ARABIC LETTER FEH FINAL FORM +0xF176 0xFED7 # ARABIC LETTER QAF INITIAL FORM +0xF177 0xFED8 # ARABIC LETTER QAF MEDIAL FORM +0xF178 0x0642 # ARABIC LETTER QAF +0xF178 0xFED5 # ARABIC LETTER QAF ISOLATED FORM +0xF178 0xFED6 # ARABIC LETTER QAF FINAL FORM +0xF179 0xFEDB # ARABIC LETTER KAF INITIAL FORM +0xF179 0xFEDC # ARABIC LETTER KAF MEDIAL FORM +0xF17A 0x0643 # ARABIC LETTER KAF +0xF17A 0xFED9 # ARABIC LETTER KAF ISOLATED FORM +0xF17A 0xFEDA # ARABIC LETTER KAF FINAL FORM +0xF17B 0xFEDF # ARABIC LETTER LAM INITIAL FORM +0xF17B 0xFEE0 # ARABIC LETTER LAM MEDIAL FORM +0xF17C 0x0644 # ARABIC LETTER LAM +0xF17C 0xFEDD # ARABIC LETTER LAM ISOLATED FORM +0xF17C 0xFEDE # ARABIC LETTER LAM FINAL FORM +0xF17D 0xFEE3 # ARABIC LETTER MEEM INITIAL FORM +0xF17D 0xFEE4 # ARABIC LETTER MEEM MEDIAL FORM +0xF17E 0x0645 # ARABIC LETTER MEEM +0xF17E 0xFEE1 # ARABIC LETTER MEEM ISOLATED FORM +0xF17E 0xFEE2 # ARABIC LETTER MEEM FINAL FORM +0xF17F 0xFEE7 # ARABIC LETTER NOON INITIAL FORM +0xF17F 0xFEE8 # ARABIC LETTER NOON MEDIAL FORM +0xF1A1 0xFEEB # ARABIC LETTER HEH INITIAL FORM +0xF1A2 0xFEEC # ARABIC LETTER HEH MEDIAL FORM +0xF1A3 0xFEEA # ARABIC LETTER HEH FINAL FORM +0xF1A4 0x0647 # ARABIC LETTER HEH +0xF1A4 0xFEE9 # ARABIC LETTER HEH ISOLATED FORM +0xF1A5 0x0648 # ARABIC LETTER WAW +0xF1A5 0xFEED # ARABIC LETTER WAW ISOLATED FORM +0xF1A5 0xFEEE # ARABIC LETTER WAW FINAL FORM +0xF1A6 0xFEF3 # ARABIC LETTER YEH INITIAL FORM +0xF1A6 0xFEF4 # ARABIC LETTER YEH MEDIAL FORM +0xF1A7 0xFEF2 # ARABIC LETTER YEH FINAL FORM +0xF1A8 0x064A # ARABIC LETTER YEH +0xF1A8 0xFEF1 # ARABIC LETTER YEH ISOLATED FORM +0xF1A9 0x0629 # ARABIC LETTER TEH MARBUTA +0xF1A9 0xFE93 # ARABIC LETTER TEH MARBUTA ISOLATED FORM +0xF1AA 0xFE94 # ARABIC LETTER TEH MARBUTA FINAL FORM +0xF1AB 0xFEF0 # ARABIC LETTER ALEF MAKSURA FINAL FORM +0xF1AC 0x0649 # ARABIC LETTER ALEF MAKSURA +0xF1AC 0xFEEF # ARABIC LETTER ALEF MAKSURA ISOLATED FORM +0xF1AD 0x0621 # ARABIC LETTER HAMZA +0xF1AE 0xFE8B # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM +0xF1AE 0xFE8C # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM +0xF1AF 0xFE8A # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM +0xF1B0 0x0030 # DIGIT ZERO +0xF1B1 0x0031 # DIGIT ONE +0xF1B2 0x0032 # DIGIT TWO +0xF1B3 0x0033 # DIGIT THREE +0xF1B4 0x0034 # DIGIT FOUR +0xF1B5 0x0035 # DIGIT FIVE +0xF1B6 0x0036 # DIGIT SIX +0xF1B7 0x0037 # DIGIT SEVEN +0xF1B8 0x0038 # DIGIT EIGHT +0xF1B9 0x0039 # DIGIT NINE +0xF1BA 0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE +0xF1BA 0xFE89 # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM +0xF1BB 0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE +0xF1BB 0xFE85 # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM +0xF1BB 0xFE86 # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM +0xF1BC 0xFEFC # ARABIC LIGATURE LAM WITH ALEF FINAL FORM +0xF1BD 0xFEFB # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM +0xF1BE 0xFEF7 # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM +0xF1BF 0xFEF8 # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM +0xF1C0 0xFEF5 # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM +0xF1C1 0xFEF6 # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM +0xF1C2 0xFEF9 # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM +0xF1C3 0xFEFA # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM +0xF1C4 0x064E # ARABIC FATHA +0xF1C5 0x064F # ARABIC DAMMA +0xF1C6 0x0652 # ARABIC SUKUN +0xF1C7 0x064B # ARABIC FATHATAN +0xF1C8 0x064C # ARABIC DAMMATAN +0xF1C9 0x0651 # ARABIC SHADDA +0xF1CA 0x0650 # ARABIC KASRA +0xF1CB 0x064D # ARABIC KASRATAN +0xF1E1 0x0646 # ARABIC LETTER NOON +0xF1E1 0xFEE5 # ARABIC LETTER NOON ISOLATED FORM +0xF1E1 0xFEE6 # ARABIC LETTER NOON FINAL FORM diff --git a/legacy_cmap/ArabicPUATraditional.txt b/legacy_cmap/ArabicPUATraditional.txt new file mode 100644 index 0000000..5683b87 --- /dev/null +++ b/legacy_cmap/ArabicPUATraditional.txt @@ -0,0 +1,295 @@ +# +# Name: Legacy Traditional Arabic encoding +# +# Format: Three tab-separated columns +# Column #1 is the PUA code (in hex as 0xXXXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 is the Unicode name (follows a comment sign, '#') +# +# The entries are in PUA order +# +0xF200 0x063B # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE +0xF200 0x063C # ARABIC LETTER KEHEH WITH THREE DOTS BELOW +0xF200 0x063D # ARABIC LETTER FARSI YEH WITH INVERTED V +0xF200 0x063E # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE +0xF200 0x063F # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0xF200 0x0653 # ARABIC MADDAH ABOVE +0xF200 0x0654 # ARABIC HAMZA ABOVE +0xF200 0x0655 # ARABIC HAMZA BELOW +0xF200 0x0656 # ARABIC SUBSCRIPT ALEF +0xF200 0x0657 # ARABIC INVERTED DAMMA +0xF200 0x0658 # ARABIC MARK NOON GHUNNA +0xF200 0x0659 # ARABIC ZWARAKAY +0xF200 0x065A # ARABIC VOWEL SIGN SMALL V ABOVE +0xF200 0x065B # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE +0xF200 0x065C # ARABIC VOWEL SIGN DOT BELOW +0xF200 0x065D # ARABIC REVERSED DAMMA +0xF200 0x065E # ARABIC FATHA WITH TWO DOTS +0xF202 0xFC08 # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM +0xF203 0xFC0E # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM +0xF204 0xFC12 # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM +0xF205 0xFC42 # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM +0xF206 0xFC4E # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM +0xF20C 0x200C # ZERO WIDTH NON-JOINER +0xF20D 0x200D # ZERO WIDTH JOINER +0xF20E 0x200E # LEFT-TO-RIGHT MARK +0xF20F 0x200F # RIGHT-TO-LEFT MARK +0xF210 0xFD88 # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM +0xF212 0xFC3F # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM +0xF213 0xFC40 # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM +0xF214 0xFC41 # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM +0xF215 0xFC6A # ARABIC LIGATURE BEH WITH REH FINAL FORM +0xF216 0xFC70 # ARABIC LIGATURE TEH WITH REH FINAL FORM +0xF217 0xFC91 # ARABIC LIGATURE YEH WITH REH FINAL FORM +0xF218 0xFCB0 # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM +0xF219 0xFD30 # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM +0xF21A 0xFCCD # ARABIC LIGATURE LAM WITH HEH INITIAL FORM +0xF21C 0xFC44 # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM +0xF21D 0xFC0A # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM +0xF21E 0xFC10 # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM +0xF21F 0xFC50 # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM +0xF220 0x0020 # SPACE +0xF221 0x0021 # EXCLAMATION MARK +0xF222 0x0022 # QUOTATION MARK +0xF223 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xF224 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xF225 0x0025 # PERCENT SIGN +0xF226 0x00D7 # MULTIPLICATION SIGN +0xF227 0x00F7 # DIVISION SIGN +0xF228 0x0028 # LEFT PARENTHESIS +0xF229 0x0029 # RIGHT PARENTHESIS +0xF22A 0x002A # ASTERISK +0xF22B 0x002B # PLUS SIGN +0xF22C 0x060C # ARABIC COMMA +0xF22D 0x002D # HYPHEN-MINUS +0xF22E 0x002E # FULL STOP +0xF22F 0x002F # SOLIDUS +0xF230 0x0660 # ARABIC-INDIC DIGIT ZERO +0xF231 0x0661 # ARABIC-INDIC DIGIT ONE +0xF232 0x0662 # ARABIC-INDIC DIGIT TWO +0xF233 0x0663 # ARABIC-INDIC DIGIT THREE +0xF234 0x0664 # ARABIC-INDIC DIGIT FOUR +0xF235 0x0665 # ARABIC-INDIC DIGIT FIVE +0xF236 0x0666 # ARABIC-INDIC DIGIT SIX +0xF237 0x0667 # ARABIC-INDIC DIGIT SEVEN +0xF238 0x0668 # ARABIC-INDIC DIGIT EIGHT +0xF239 0x0669 # ARABIC-INDIC DIGIT NINE +0xF23A 0x003A # COLON +0xF23B 0x003B # SEMICOLON +0xF23B 0x061B # ARABIC SEMICOLON +0xF23C 0x201C # LEFT DOUBLE QUOTATION MARK +0xF23D 0x003D # EQUALS SIGN +0xF23E 0x201D # RIGHT DOUBLE QUOTATION MARK +0xF23F 0x003F # QUESTION MARK +0xF23F 0x061F # ARABIC QUESTION MARK +0xF241 0x0627 # ARABIC LETTER ALEF +0xF241 0xFE8D # ARABIC LETTER ALEF ISOLATED FORM +0xF242 0xFE8E # ARABIC LETTER ALEF FINAL FORM +0xF243 0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE +0xF243 0xFE83 # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM +0xF244 0xFE84 # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM +0xF245 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE +0xF245 0xFE81 # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM +0xF246 0xFE82 # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM +0xF247 0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW +0xF247 0xFE87 # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM +0xF248 0xFE88 # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM +0xF249 0xFE91 # ARABIC LETTER BEH INITIAL FORM +0xF24A 0xFE92 # ARABIC LETTER BEH MEDIAL FORM +0xF24B 0xFE90 # ARABIC LETTER BEH FINAL FORM +0xF24C 0x0628 # ARABIC LETTER BEH +0xF24C 0xFE8F # ARABIC LETTER BEH ISOLATED FORM +0xF24D 0xFE97 # ARABIC LETTER TEH INITIAL FORM +0xF24E 0xFE98 # ARABIC LETTER TEH MEDIAL FORM +0xF24F 0xFE96 # ARABIC LETTER TEH FINAL FORM +0xF250 0x062A # ARABIC LETTER TEH +0xF250 0xFE95 # ARABIC LETTER TEH ISOLATED FORM +0xF251 0xFE9B # ARABIC LETTER THEH INITIAL FORM +0xF252 0xFE9C # ARABIC LETTER THEH MEDIAL FORM +0xF253 0xFE9A # ARABIC LETTER THEH FINAL FORM +0xF254 0x062B # ARABIC LETTER THEH +0xF254 0xFE99 # ARABIC LETTER THEH ISOLATED FORM +0xF255 0xFE9F # ARABIC LETTER JEEM INITIAL FORM +0xF256 0xFEA0 # ARABIC LETTER JEEM MEDIAL FORM +0xF257 0xFE9E # ARABIC LETTER JEEM FINAL FORM +0xF258 0x062C # ARABIC LETTER JEEM +0xF258 0xFE9D # ARABIC LETTER JEEM ISOLATED FORM +0xF259 0xFEA3 # ARABIC LETTER HAH INITIAL FORM +0xF25A 0xFEA4 # ARABIC LETTER HAH MEDIAL FORM +0xF25B 0x005B # LEFT SQUARE BRACKET +0xF25C 0xFEA2 # ARABIC LETTER HAH FINAL FORM +0xF25D 0x005D # RIGHT SQUARE BRACKET +0xF25E 0x002C # COMMA +0xF25E 0x066B # ARABIC DECIMAL SEPARATOR +0xF25E 0x066C # ARABIC THOUSANDS SEPARATOR +0xF25F 0x0640 # ARABIC TATWEEL +0xF260 0x062D # ARABIC LETTER HAH +0xF260 0xFEA1 # ARABIC LETTER HAH ISOLATED FORM +0xF261 0xFEA7 # ARABIC LETTER KHAH INITIAL FORM +0xF262 0xFEA8 # ARABIC LETTER KHAH MEDIAL FORM +0xF263 0xFEA6 # ARABIC LETTER KHAH FINAL FORM +0xF264 0x062E # ARABIC LETTER KHAH +0xF264 0xFEA5 # ARABIC LETTER KHAH ISOLATED FORM +0xF265 0x062F # ARABIC LETTER DAL +0xF265 0xFEA9 # ARABIC LETTER DAL ISOLATED FORM +0xF266 0xFEAA # ARABIC LETTER DAL FINAL FORM +0xF267 0x0630 # ARABIC LETTER THAL +0xF267 0xFEAB # ARABIC LETTER THAL ISOLATED FORM +0xF268 0xFEAC # ARABIC LETTER THAL FINAL FORM +0xF269 0x0631 # ARABIC LETTER REH +0xF269 0xFEAD # ARABIC LETTER REH ISOLATED FORM +0xF26A 0xFEAE # ARABIC LETTER REH FINAL FORM +0xF26B 0x0632 # ARABIC LETTER ZAIN +0xF26B 0xFEAF # ARABIC LETTER ZAIN ISOLATED FORM +0xF26C 0xFEB0 # ARABIC LETTER ZAIN FINAL FORM +0xF26D 0xFEB3 # ARABIC LETTER SEEN INITIAL FORM +0xF26E 0xFEB4 # ARABIC LETTER SEEN MEDIAL FORM +0xF26F 0xFEB2 # ARABIC LETTER SEEN FINAL FORM +0xF270 0x0633 # ARABIC LETTER SEEN +0xF270 0xFEB1 # ARABIC LETTER SEEN ISOLATED FORM +0xF271 0xFEB7 # ARABIC LETTER SHEEN INITIAL FORM +0xF272 0xFEB8 # ARABIC LETTER SHEEN MEDIAL FORM +0xF273 0xFEB6 # ARABIC LETTER SHEEN FINAL FORM +0xF274 0x0634 # ARABIC LETTER SHEEN +0xF274 0xFEB5 # ARABIC LETTER SHEEN ISOLATED FORM +0xF275 0xFEBB # ARABIC LETTER SAD INITIAL FORM +0xF276 0xFEBC # ARABIC LETTER SAD MEDIAL FORM +0xF277 0xFEBA # ARABIC LETTER SAD FINAL FORM +0xF278 0x0635 # ARABIC LETTER SAD +0xF278 0xFEB9 # ARABIC LETTER SAD ISOLATED FORM +0xF279 0xFEBF # ARABIC LETTER DAD INITIAL FORM +0xF27A 0xFEC0 # ARABIC LETTER DAD MEDIAL FORM +0xF27B 0xFD3E # ORNATE LEFT PARENTHESIS +0xF27C 0xFEBE # ARABIC LETTER DAD FINAL FORM +0xF27D 0xFD3F # ORNATE RIGHT PARENTHESIS +0xF27E 0x0636 # ARABIC LETTER DAD +0xF27E 0xFEBD # ARABIC LETTER DAD ISOLATED FORM +0xF27F 0xFEC3 # ARABIC LETTER TAH INITIAL FORM +0xF280 0xFC9C # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM +0xF281 0xFC9D # ARABIC LIGATURE BEH WITH HAH INITIAL FORM +0xF282 0xFC9E # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM +0xF283 0xFCA1 # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM +0xF284 0xFCA2 # ARABIC LIGATURE TEH WITH HAH INITIAL FORM +0xF285 0xFCA3 # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM +0xF286 0xFCC9 # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM +0xF287 0xFCCA # ARABIC LIGATURE LAM WITH HAH INITIAL FORM +0xF288 0xFCCB # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM +0xF289 0xFCCE # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM +0xF28A 0xFCCF # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM +0xF28B 0xFCD0 # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM +0xF28D 0xFCD2 # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM +0xF28E 0xFCD3 # ARABIC LIGATURE NOON WITH HAH INITIAL FORM +0xF28F 0xFCDA # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM +0xF290 0xFCDB # ARABIC LIGATURE YEH WITH HAH INITIAL FORM +0xF291 0xFCDC # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM +0xF292 0xFC6D # ARABIC LIGATURE BEH WITH NOON FINAL FORM +0xF293 0xFC73 # ARABIC LIGATURE TEH WITH NOON FINAL FORM +0xF294 0xFC94 # ARABIC LIGATURE YEH WITH NOON FINAL FORM +0xF295 0xFC43 # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM +0xF296 0xFC9F # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM +0xF297 0xFCA4 # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM +0xF298 0xFCD5 # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM +0xF299 0xFCDD # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM +0xF29A 0xFCA8 # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM +0xF29B 0xFCAA # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM +0xF29C 0xFCAC # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM +0xF29D 0xFCCC # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM +0xF29E 0xFCD1 # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM +0xF29F 0xFC32 # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM +0xF2A1 0xFEC2 # ARABIC LETTER TAH FINAL FORM +0xF2A2 0x0637 # ARABIC LETTER TAH +0xF2A2 0xFEC1 # ARABIC LETTER TAH ISOLATED FORM +0xF2A3 0x0638 # ARABIC LETTER ZAH +0xF2A3 0xFEC7 # ARABIC LETTER ZAH INITIAL FORM +0xF2A4 0xFEC8 # ARABIC LETTER ZAH MEDIAL FORM +0xF2A5 0xFEC6 # ARABIC LETTER ZAH FINAL FORM +0xF2A6 0xFEC5 # ARABIC LETTER ZAH ISOLATED FORM +0xF2A7 0xFECB # ARABIC LETTER AIN INITIAL FORM +0xF2A8 0xFECC # ARABIC LETTER AIN MEDIAL FORM +0xF2A9 0xFECA # ARABIC LETTER AIN FINAL FORM +0xF2AA 0x0639 # ARABIC LETTER AIN +0xF2AA 0xFEC9 # ARABIC LETTER AIN ISOLATED FORM +0xF2AB 0xFECF # ARABIC LETTER GHAIN INITIAL FORM +0xF2AC 0xFED0 # ARABIC LETTER GHAIN MEDIAL FORM +0xF2AD 0xFECE # ARABIC LETTER GHAIN FINAL FORM +0xF2AE 0x063A # ARABIC LETTER GHAIN +0xF2AE 0xFECD # ARABIC LETTER GHAIN ISOLATED FORM +0xF2AF 0xFED3 # ARABIC LETTER FEH INITIAL FORM +0xF2B0 0xFED4 # ARABIC LETTER FEH MEDIAL FORM +0xF2B1 0xFED2 # ARABIC LETTER FEH FINAL FORM +0xF2B2 0x0641 # ARABIC LETTER FEH +0xF2B2 0xFED1 # ARABIC LETTER FEH ISOLATED FORM +0xF2B3 0xFED7 # ARABIC LETTER QAF INITIAL FORM +0xF2B4 0xFED8 # ARABIC LETTER QAF MEDIAL FORM +0xF2B5 0xFED6 # ARABIC LETTER QAF FINAL FORM +0xF2B6 0x0642 # ARABIC LETTER QAF +0xF2B6 0xFED5 # ARABIC LETTER QAF ISOLATED FORM +0xF2B7 0xFEDB # ARABIC LETTER KAF INITIAL FORM +0xF2B8 0xFEDC # ARABIC LETTER KAF MEDIAL FORM +0xF2B9 0xFEDA # ARABIC LETTER KAF FINAL FORM +0xF2BA 0x0643 # ARABIC LETTER KAF +0xF2BA 0xFED9 # ARABIC LETTER KAF ISOLATED FORM +0xF2BB 0xFEDF # ARABIC LETTER LAM INITIAL FORM +0xF2BC 0xFEE0 # ARABIC LETTER LAM MEDIAL FORM +0xF2BD 0xFEDE # ARABIC LETTER LAM FINAL FORM +0xF2BE 0x0644 # ARABIC LETTER LAM +0xF2BE 0xFEDD # ARABIC LETTER LAM ISOLATED FORM +0xF2BF 0xFEE3 # ARABIC LETTER MEEM INITIAL FORM +0xF2C0 0xFEE4 # ARABIC LETTER MEEM MEDIAL FORM +0xF2C1 0xFEE2 # ARABIC LETTER MEEM FINAL FORM +0xF2C2 0x0645 # ARABIC LETTER MEEM +0xF2C2 0xFEE1 # ARABIC LETTER MEEM ISOLATED FORM +0xF2C3 0xFEE7 # ARABIC LETTER NOON INITIAL FORM +0xF2C4 0xFEE8 # ARABIC LETTER NOON MEDIAL FORM +0xF2C5 0xFEE6 # ARABIC LETTER NOON FINAL FORM +0xF2C6 0x0646 # ARABIC LETTER NOON +0xF2C6 0xFEE5 # ARABIC LETTER NOON ISOLATED FORM +0xF2C7 0xFEEB # ARABIC LETTER HEH INITIAL FORM +0xF2C8 0xFEEC # ARABIC LETTER HEH MEDIAL FORM +0xF2C9 0xFEEA # ARABIC LETTER HEH FINAL FORM +0xF2CA 0x0647 # ARABIC LETTER HEH +0xF2CA 0xFEE9 # ARABIC LETTER HEH ISOLATED FORM +0xF2CB 0x0648 # ARABIC LETTER WAW +0xF2CB 0xFEED # ARABIC LETTER WAW ISOLATED FORM +0xF2CC 0xFEEE # ARABIC LETTER WAW FINAL FORM +0xF2CD 0xFEF3 # ARABIC LETTER YEH INITIAL FORM +0xF2CE 0xFEF4 # ARABIC LETTER YEH MEDIAL FORM +0xF2CF 0xFEF2 # ARABIC LETTER YEH FINAL FORM +0xF2D0 0x064A # ARABIC LETTER YEH +0xF2D0 0xFEF1 # ARABIC LETTER YEH ISOLATED FORM +0xF2D1 0x0629 # ARABIC LETTER TEH MARBUTA +0xF2D1 0xFE93 # ARABIC LETTER TEH MARBUTA ISOLATED FORM +0xF2D2 0xFE94 # ARABIC LETTER TEH MARBUTA FINAL FORM +0xF2D3 0xFEF0 # ARABIC LETTER ALEF MAKSURA FINAL FORM +0xF2D4 0x0649 # ARABIC LETTER ALEF MAKSURA +0xF2D4 0xFEEF # ARABIC LETTER ALEF MAKSURA ISOLATED FORM +0xF2D5 0x0621 # ARABIC LETTER HAMZA +0xF2D6 0xFE8B # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM +0xF2D7 0xFE8C # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM +0xF2D8 0xFE8A # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM +0xF2D9 0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE +0xF2D9 0xFE89 # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM +0xF2DA 0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE +0xF2DA 0xFE85 # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM +0xF2DB 0xFE86 # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM +0xF2DC 0xFEFB # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM +0xF2DD 0xFEFC # ARABIC LIGATURE LAM WITH ALEF FINAL FORM +0xF2DE 0xFEF7 # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM +0xF2DF 0xFEF8 # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM +0xF2E0 0xFEF5 # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM +0xF2E1 0xFEF6 # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM +0xF2E2 0xFEF9 # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM +0xF2E3 0xFEFA # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM +0xF2E4 0x064E # ARABIC FATHA +0xF2E5 0x064F # ARABIC DAMMA +0xF2E6 0x0652 # ARABIC SUKUN +0xF2E7 0x064B # ARABIC FATHATAN +0xF2E8 0x064C # ARABIC DAMMATAN +0xF2E9 0x0651 # ARABIC SHADDA +0xF2EA 0x0650 # ARABIC KASRA +0xF2EB 0x064D # ARABIC KASRATAN +0xF2EC 0xFC60 # ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM +0xF2ED 0xFC61 # ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM +0xF2EF 0xFC5E # ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM +0xF2F0 0xFC62 # ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM +0xF2F1 0xFEC4 # ARABIC LETTER TAH MEDIAL FORM diff --git a/legacy_cmap/gen_cmap.py b/legacy_cmap/gen_cmap.py new file mode 100644 index 0000000..c5c4433 --- /dev/null +++ b/legacy_cmap/gen_cmap.py @@ -0,0 +1,52 @@ +from pathlib import Path +import textwrap + + +def render_function(file_content: list[str], dict_name: str, unicode_mapping_file: Path): + mapping: dict[int, int] = {} + with open(unicode_mapping_file, encoding="utf-8") as f: + lines = f.readlines() + for line in lines: + if line.startswith("#"): + continue + pua_code_str, unicode_str, _ = line.split("\t") + unicode = int(unicode_str, 16) + pua_code = int(pua_code_str, 16) + mapping[unicode] = pua_code + + file_content.append(f"{dict_name} : dict[int, int] = {{") + for unicode, pua_code in sorted(mapping.items()): + file_content.append(f" {hex(unicode)}: {hex(pua_code)},") + file_content.append("}") + file_content.append("") + + +def main(): + SOURCES = [ + { + "file": Path(__file__).parent.joinpath("ArabicPUASimplified.txt"), + "function": "arabic_simplified_cmap_mapping", + }, + { + "file": Path(__file__).parent.joinpath("ArabicPUATraditional.txt"), + "function": "arabic_traditional_cmap_mapping", + }, + ] + + c_file_content = [] + + c_file_content.append(textwrap.dedent("""\ + # WARNING - THIS FILE IS AUTO-GENERATED. DO NOT EDIT IT MANUALLY. + # Regenerate with: python legacy_cmap/gen_cmap.py + """)) + + for source in SOURCES: + render_function(c_file_content, source["function"], source["file"]) + + c_file_path = Path(__file__).parent.parent.joinpath("font_collector", "font", "legacy_cmap_mapping.py") + c_file_path.write_text("\n".join(c_file_content), encoding="utf-8") + + + +if __name__ == "__main__": + main() diff --git a/tests/font/test_font_parser.py b/tests/font/test_font_parser.py index b31eaae..42b2c8c 100644 --- a/tests/font/test_font_parser.py +++ b/tests/font/test_font_parser.py @@ -229,52 +229,52 @@ def test_get_supported_cmaps(): assert cmaps == [CMap(3, 1)] -def test_get_cmap_encoding(): +def test_is_cmap_supported(): # It could be any format cmap_format = 0 cmap = CmapSubtable.newSubtable(cmap_format) # Non-supported platform cmap.platformID = PlatformID.UNICODE - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == None + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == False cmap.platformID = PlatformID.MICROSOFT cmap.platEncID = 0 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == "unknown" + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == True cmap.platformID = PlatformID.MICROSOFT cmap.platEncID = 1 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == "unicode" + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == True cmap.platformID = PlatformID.MICROSOFT cmap.platEncID = 2 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == "cp932" + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == True cmap.platformID = PlatformID.MICROSOFT cmap.platEncID = 3 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == "cp936" + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == True cmap.platformID = PlatformID.MICROSOFT cmap.platEncID = 4 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == "cp950" + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == True cmap.platformID = PlatformID.MICROSOFT cmap.platEncID = 5 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == "cp949" + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == True cmap.platformID = PlatformID.MICROSOFT cmap.platEncID = 6 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == "cp1361" + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == True cmap.platformID = PlatformID.MICROSOFT cmap.platEncID = 10 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == "unicode" + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == True cmap.platformID = PlatformID.MACINTOSH cmap.platEncID = 0 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == "mac_roman" + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == True # Non-supported platEncID cmap.platformID = PlatformID.MACINTOSH cmap.platEncID = 1 - assert FontParser.get_cmap_encoding(cmap.platformID, cmap.platEncID) == None + assert FontParser.is_cmap_supported(cmap.platformID, cmap.platEncID) == False From 8a5aefd15b747a27e6d2c67ea7aacc9cb54d0d8a Mon Sep 17 00:00:00 2001 From: moi15moi Date: Sun, 23 Aug 2026 15:26:02 -0400 Subject: [PATCH 2/7] Add test_font_get_missing_glyphs_cmap_legacy_arabic_simplified --- ...egacy-arabic-simplified-SimplifiedArabic.ttf | Bin 0 -> 37172 bytes tests/font/test_normal_font_face.py | 12 ++++++++++++ 2 files changed, 12 insertions(+) create mode 100644 tests/file/fonts/legacy-arabic-simplified-SimplifiedArabic.ttf diff --git a/tests/file/fonts/legacy-arabic-simplified-SimplifiedArabic.ttf b/tests/file/fonts/legacy-arabic-simplified-SimplifiedArabic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ac53c008b9e23374781cf8e44efc577c73c59876 GIT binary patch literal 37172 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 Date: Sun, 23 Aug 2026 15:26:11 -0400 Subject: [PATCH 3/7] Add test_font_get_missing_glyphs_cmap_legacy_arabic_traditional --- ...egacy-arabic-traditional-AGACairoRegular.ttf | Bin 0 -> 72976 bytes tests/font/test_normal_font_face.py | 12 ++++++++++++ 2 files changed, 12 insertions(+) create mode 100644 tests/file/fonts/legacy-arabic-traditional-AGACairoRegular.ttf diff --git a/tests/file/fonts/legacy-arabic-traditional-AGACairoRegular.ttf b/tests/file/fonts/legacy-arabic-traditional-AGACairoRegular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4347075a64e1bbf788e74119ae034c2c0f9be441 GIT binary patch literal 72976 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 Date: Sun, 23 Aug 2026 15:29:07 -0400 Subject: [PATCH 4/7] Rename test_font_get_missing_glyphs_cmap_encoding_0 to test_font_get_missing_glyphs_cmap_encoding_0_offset_0xf000 --- tests/font/test_normal_font_face.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/font/test_normal_font_face.py b/tests/font/test_normal_font_face.py index 607822b..10c8bfd 100644 --- a/tests/font/test_normal_font_face.py +++ b/tests/font/test_normal_font_face.py @@ -119,7 +119,7 @@ def test_link_face_to_a_font_file(): assert font_face_2.font_file == font_file -def test_font_get_missing_glyphs_cmap_encoding_0(): +def test_font_get_missing_glyphs_cmap_encoding_0_offset_0xf000(): font_cmap_encoding_0 = Path(os.path.join(os.path.dirname(dir_path), "file", "fonts", "font_cmap_encoding_0.ttf")) font_file = FontFile.from_font_path(font_cmap_encoding_0) From 87f1082b9a3f712ae35bec8f0ade96d3317d5071 Mon Sep 17 00:00:00 2001 From: moi15moi Date: Sun, 23 Aug 2026 15:40:14 -0400 Subject: [PATCH 5/7] Add test_font_get_missing_glyphs_cmap_encoding_0_offset_0x0000 --- .../fonts/symbol-first-char-0x0000-Baoloc.ttf | Bin 0 -> 78504 bytes tests/font/test_normal_font_face.py | 13 +++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 tests/file/fonts/symbol-first-char-0x0000-Baoloc.ttf diff --git a/tests/file/fonts/symbol-first-char-0x0000-Baoloc.ttf b/tests/file/fonts/symbol-first-char-0x0000-Baoloc.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a5577ba6a67a108812887d8ee42cb10aa12c7d54 GIT binary patch literal 78504 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 Date: Sun, 23 Aug 2026 16:29:48 -0400 Subject: [PATCH 6/7] Add test for get_missing_glyphs for encoding 3 and 4 --- ...346\240\207\345\256\213 - PlatEncID 3.TTF" | Bin 0 -> 2977560 bytes ...345\221\212\351\253\224 - PlatEncID 4.ttf" | Bin 0 -> 5847424 bytes tests/font/test_name.py | 6 ++-- tests/font/test_normal_font_face.py | 26 ++++++++++++++++++ 4 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 "tests/file/fonts/\345\276\256\350\275\257\347\256\200\346\240\207\345\256\213 - PlatEncID 3.TTF" create mode 100644 "tests/file/fonts/\346\226\207\351\274\216\344\270\255\347\211\271\345\273\243\345\221\212\351\253\224 - PlatEncID 4.ttf" diff --git "a/tests/file/fonts/\345\276\256\350\275\257\347\256\200\346\240\207\345\256\213 - PlatEncID 3.TTF" "b/tests/file/fonts/\345\276\256\350\275\257\347\256\200\346\240\207\345\256\213 - PlatEncID 3.TTF" new file mode 100644 index 0000000000000000000000000000000000000000..bc643006a45a7d8517d2b5df4098e206ae8b3e6c GIT binary patch literal 2977560 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%0A(b*z=N@Ps~CBp;!?jMq~Cdk)*wo6p=Mfsi&R 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