Add Roman Croatian and Romanian encodings
Concludes https://github.com/behdad/fonttools/issues/236
This commit is contained in:
parent
6d7f3bf840
commit
6e01a6e350
@ -67,7 +67,272 @@ class ExtendCodec(codecs.Codec):
|
||||
def info(self):
|
||||
return codecs.CodecInfo(name=self.name, encode=self.encode, decode=self.decode)
|
||||
|
||||
|
||||
_mac_croatian_mapping = {
|
||||
b"\x80": unichr(0x00C4), # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
b"\x81": unichr(0x00C5), # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
b"\x82": unichr(0x00C7), # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
b"\x83": unichr(0x00C9), # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
b"\x84": unichr(0x00D1), # LATIN CAPITAL LETTER N WITH TILDE
|
||||
b"\x85": unichr(0x00D6), # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
b"\x86": unichr(0x00DC), # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
b"\x87": unichr(0x00E1), # LATIN SMALL LETTER A WITH ACUTE
|
||||
b"\x88": unichr(0x00E0), # LATIN SMALL LETTER A WITH GRAVE
|
||||
b"\x89": unichr(0x00E2), # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
b"\x8A": unichr(0x00E4), # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
b"\x8B": unichr(0x00E3), # LATIN SMALL LETTER A WITH TILDE
|
||||
b"\x8C": unichr(0x00E5), # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
b"\x8D": unichr(0x00E7), # LATIN SMALL LETTER C WITH CEDILLA
|
||||
b"\x8E": unichr(0x00E9), # LATIN SMALL LETTER E WITH ACUTE
|
||||
b"\x8F": unichr(0x00E8), # LATIN SMALL LETTER E WITH GRAVE
|
||||
b"\x90": unichr(0x00EA), # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
b"\x91": unichr(0x00EB), # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
b"\x92": unichr(0x00ED), # LATIN SMALL LETTER I WITH ACUTE
|
||||
b"\x93": unichr(0x00EC), # LATIN SMALL LETTER I WITH GRAVE
|
||||
b"\x94": unichr(0x00EE), # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
b"\x95": unichr(0x00EF), # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
b"\x96": unichr(0x00F1), # LATIN SMALL LETTER N WITH TILDE
|
||||
b"\x97": unichr(0x00F3), # LATIN SMALL LETTER O WITH ACUTE
|
||||
b"\x98": unichr(0x00F2), # LATIN SMALL LETTER O WITH GRAVE
|
||||
b"\x99": unichr(0x00F4), # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
b"\x9A": unichr(0x00F6), # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
b"\x9B": unichr(0x00F5), # LATIN SMALL LETTER O WITH TILDE
|
||||
b"\x9C": unichr(0x00FA), # LATIN SMALL LETTER U WITH ACUTE
|
||||
b"\x9D": unichr(0x00F9), # LATIN SMALL LETTER U WITH GRAVE
|
||||
b"\x9E": unichr(0x00FB), # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
b"\x9F": unichr(0x00FC), # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
b"\xA0": unichr(0x2020), # DAGGER
|
||||
b"\xA1": unichr(0x00B0), # DEGREE SIGN
|
||||
b"\xA2": unichr(0x00A2), # CENT SIGN
|
||||
b"\xA3": unichr(0x00A3), # POUND SIGN
|
||||
b"\xA4": unichr(0x00A7), # SECTION SIGN
|
||||
b"\xA5": unichr(0x2022), # BULLET
|
||||
b"\xA6": unichr(0x00B6), # PILCROW SIGN
|
||||
b"\xA7": unichr(0x00DF), # LATIN SMALL LETTER SHARP S
|
||||
b"\xA8": unichr(0x00AE), # REGISTERED SIGN
|
||||
b"\xA9": unichr(0x0160), # LATIN CAPITAL LETTER S WITH CARON
|
||||
b"\xAA": unichr(0x2122), # TRADE MARK SIGN
|
||||
b"\xAB": unichr(0x00B4), # ACUTE ACCENT
|
||||
b"\xAC": unichr(0x00A8), # DIAERESIS
|
||||
b"\xAD": unichr(0x2260), # NOT EQUAL TO
|
||||
b"\xAE": unichr(0x017D), # LATIN CAPITAL LETTER Z WITH CARON
|
||||
b"\xAF": unichr(0x00D8), # LATIN CAPITAL LETTER O WITH STROKE
|
||||
b"\xB0": unichr(0x221E), # INFINITY
|
||||
b"\xB1": unichr(0x00B1), # PLUS-MINUS SIGN
|
||||
b"\xB2": unichr(0x2264), # LESS-THAN OR EQUAL TO
|
||||
b"\xB3": unichr(0x2265), # GREATER-THAN OR EQUAL TO
|
||||
b"\xB4": unichr(0x2206), # INCREMENT
|
||||
b"\xB5": unichr(0x00B5), # MICRO SIGN
|
||||
b"\xB6": unichr(0x2202), # PARTIAL DIFFERENTIAL
|
||||
b"\xB7": unichr(0x2211), # N-ARY SUMMATION
|
||||
b"\xB8": unichr(0x220F), # N-ARY PRODUCT
|
||||
b"\xB9": unichr(0x0161), # LATIN SMALL LETTER S WITH CARON
|
||||
b"\xBA": unichr(0x222B), # INTEGRAL
|
||||
b"\xBB": unichr(0x00AA), # FEMININE ORDINAL INDICATOR
|
||||
b"\xBC": unichr(0x00BA), # MASCULINE ORDINAL INDICATOR
|
||||
b"\xBD": unichr(0x03A9), # GREEK CAPITAL LETTER OMEGA
|
||||
b"\xBE": unichr(0x017E), # LATIN SMALL LETTER Z WITH CARON
|
||||
b"\xBF": unichr(0x00F8), # LATIN SMALL LETTER O WITH STROKE
|
||||
b"\xC0": unichr(0x00BF), # INVERTED QUESTION MARK
|
||||
b"\xC1": unichr(0x00A1), # INVERTED EXCLAMATION MARK
|
||||
b"\xC2": unichr(0x00AC), # NOT SIGN
|
||||
b"\xC3": unichr(0x221A), # SQUARE ROOT
|
||||
b"\xC4": unichr(0x0192), # LATIN SMALL LETTER F WITH HOOK
|
||||
b"\xC5": unichr(0x2248), # ALMOST EQUAL TO
|
||||
b"\xC6": unichr(0x0106), # LATIN CAPITAL LETTER C WITH ACUTE
|
||||
b"\xC7": unichr(0x00AB), # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
b"\xC8": unichr(0x010C), # LATIN CAPITAL LETTER C WITH CARON
|
||||
b"\xC9": unichr(0x2026), # HORIZONTAL ELLIPSIS
|
||||
b"\xCA": unichr(0x00A0), # NO-BREAK SPACE
|
||||
b"\xCB": unichr(0x00C0), # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
b"\xCC": unichr(0x00C3), # LATIN CAPITAL LETTER A WITH TILDE
|
||||
b"\xCD": unichr(0x00D5), # LATIN CAPITAL LETTER O WITH TILDE
|
||||
b"\xCE": unichr(0x0152), # LATIN CAPITAL LIGATURE OE
|
||||
b"\xCF": unichr(0x0153), # LATIN SMALL LIGATURE OE
|
||||
b"\xD0": unichr(0x0110), # LATIN CAPITAL LETTER D WITH STROKE
|
||||
b"\xD1": unichr(0x2014), # EM DASH
|
||||
b"\xD2": unichr(0x201C), # LEFT DOUBLE QUOTATION MARK
|
||||
b"\xD3": unichr(0x201D), # RIGHT DOUBLE QUOTATION MARK
|
||||
b"\xD4": unichr(0x2018), # LEFT SINGLE QUOTATION MARK
|
||||
b"\xD5": unichr(0x2019), # RIGHT SINGLE QUOTATION MARK
|
||||
b"\xD6": unichr(0x00F7), # DIVISION SIGN
|
||||
b"\xD7": unichr(0x25CA), # LOZENGE
|
||||
b"\xD8": unichr(0xF8FF), # Apple logo
|
||||
b"\xD9": unichr(0x00A9), # COPYRIGHT SIGN
|
||||
b"\xDA": unichr(0x2044), # FRACTION SLASH
|
||||
b"\xDB": unichr(0x20AC), # EURO SIGN
|
||||
b"\xDC": unichr(0x2039), # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
b"\xDD": unichr(0x203A), # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
b"\xDE": unichr(0x00C6), # LATIN CAPITAL LETTER AE
|
||||
b"\xDF": unichr(0x00BB), # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
b"\xE0": unichr(0x2013), # EN DASH
|
||||
b"\xE1": unichr(0x00B7), # MIDDLE DOT
|
||||
b"\xE2": unichr(0x201A), # SINGLE LOW-9 QUOTATION MARK
|
||||
b"\xE3": unichr(0x201E), # DOUBLE LOW-9 QUOTATION MARK
|
||||
b"\xE4": unichr(0x2030), # PER MILLE SIGN
|
||||
b"\xE5": unichr(0x00C2), # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
b"\xE6": unichr(0x0107), # LATIN SMALL LETTER C WITH ACUTE
|
||||
b"\xE7": unichr(0x00C1), # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
b"\xE8": unichr(0x010D), # LATIN SMALL LETTER C WITH CARON
|
||||
b"\xE9": unichr(0x00C8), # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
b"\xEA": unichr(0x00CD), # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
b"\xEB": unichr(0x00CE), # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
b"\xEC": unichr(0x00CF), # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
b"\xED": unichr(0x00CC), # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
b"\xEE": unichr(0x00D3), # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
b"\xEF": unichr(0x00D4), # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
b"\xF0": unichr(0x0111), # LATIN SMALL LETTER D WITH STROKE
|
||||
b"\xF1": unichr(0x00D2), # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
b"\xF2": unichr(0x00DA), # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
b"\xF3": unichr(0x00DB), # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
b"\xF4": unichr(0x00D9), # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
b"\xF5": unichr(0x0131), # LATIN SMALL LETTER DOTLESS I
|
||||
b"\xF6": unichr(0x02C6), # MODIFIER LETTER CIRCUMFLEX ACCENT
|
||||
b"\xF7": unichr(0x02DC), # SMALL TILDE
|
||||
b"\xF8": unichr(0x00AF), # MACRON
|
||||
b"\xF9": unichr(0x03C0), # GREEK SMALL LETTER PI
|
||||
b"\xFA": unichr(0x00CB), # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
b"\xFB": unichr(0x02DA), # RING ABOVE
|
||||
b"\xFC": unichr(0x00B8), # CEDILLA
|
||||
b"\xFD": unichr(0x00CA), # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
b"\xFE": unichr(0x00E6), # LATIN SMALL LETTER AE
|
||||
b"\xFF": unichr(0x02C7), # CARON
|
||||
}
|
||||
|
||||
_mac_romanian_mapping = {
|
||||
b"\x80": unichr(0x00C4), # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
b"\x81": unichr(0x00C5), # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
b"\x82": unichr(0x00C7), # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
b"\x83": unichr(0x00C9), # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
b"\x84": unichr(0x00D1), # LATIN CAPITAL LETTER N WITH TILDE
|
||||
b"\x85": unichr(0x00D6), # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
b"\x86": unichr(0x00DC), # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
b"\x87": unichr(0x00E1), # LATIN SMALL LETTER A WITH ACUTE
|
||||
b"\x88": unichr(0x00E0), # LATIN SMALL LETTER A WITH GRAVE
|
||||
b"\x89": unichr(0x00E2), # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
b"\x8A": unichr(0x00E4), # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
b"\x8B": unichr(0x00E3), # LATIN SMALL LETTER A WITH TILDE
|
||||
b"\x8C": unichr(0x00E5), # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
b"\x8D": unichr(0x00E7), # LATIN SMALL LETTER C WITH CEDILLA
|
||||
b"\x8E": unichr(0x00E9), # LATIN SMALL LETTER E WITH ACUTE
|
||||
b"\x8F": unichr(0x00E8), # LATIN SMALL LETTER E WITH GRAVE
|
||||
b"\x90": unichr(0x00EA), # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
b"\x91": unichr(0x00EB), # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
b"\x92": unichr(0x00ED), # LATIN SMALL LETTER I WITH ACUTE
|
||||
b"\x93": unichr(0x00EC), # LATIN SMALL LETTER I WITH GRAVE
|
||||
b"\x94": unichr(0x00EE), # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
b"\x95": unichr(0x00EF), # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
b"\x96": unichr(0x00F1), # LATIN SMALL LETTER N WITH TILDE
|
||||
b"\x97": unichr(0x00F3), # LATIN SMALL LETTER O WITH ACUTE
|
||||
b"\x98": unichr(0x00F2), # LATIN SMALL LETTER O WITH GRAVE
|
||||
b"\x99": unichr(0x00F4), # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
b"\x9A": unichr(0x00F6), # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
b"\x9B": unichr(0x00F5), # LATIN SMALL LETTER O WITH TILDE
|
||||
b"\x9C": unichr(0x00FA), # LATIN SMALL LETTER U WITH ACUTE
|
||||
b"\x9D": unichr(0x00F9), # LATIN SMALL LETTER U WITH GRAVE
|
||||
b"\x9E": unichr(0x00FB), # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
b"\x9F": unichr(0x00FC), # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
b"\xA0": unichr(0x2020), # DAGGER
|
||||
b"\xA1": unichr(0x00B0), # DEGREE SIGN
|
||||
b"\xA2": unichr(0x00A2), # CENT SIGN
|
||||
b"\xA3": unichr(0x00A3), # POUND SIGN
|
||||
b"\xA4": unichr(0x00A7), # SECTION SIGN
|
||||
b"\xA5": unichr(0x2022), # BULLET
|
||||
b"\xA6": unichr(0x00B6), # PILCROW SIGN
|
||||
b"\xA7": unichr(0x00DF), # LATIN SMALL LETTER SHARP S
|
||||
b"\xA8": unichr(0x00AE), # REGISTERED SIGN
|
||||
b"\xA9": unichr(0x00A9), # COPYRIGHT SIGN
|
||||
b"\xAA": unichr(0x2122), # TRADE MARK SIGN
|
||||
b"\xAB": unichr(0x00B4), # ACUTE ACCENT
|
||||
b"\xAC": unichr(0x00A8), # DIAERESIS
|
||||
b"\xAD": unichr(0x2260), # NOT EQUAL TO
|
||||
b"\xAE": unichr(0x0102), # LATIN CAPITAL LETTER A WITH BREVE
|
||||
b"\xAF": unichr(0x0218), # LATIN CAPITAL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
|
||||
b"\xB0": unichr(0x221E), # INFINITY
|
||||
b"\xB1": unichr(0x00B1), # PLUS-MINUS SIGN
|
||||
b"\xB2": unichr(0x2264), # LESS-THAN OR EQUAL TO
|
||||
b"\xB3": unichr(0x2265), # GREATER-THAN OR EQUAL TO
|
||||
b"\xB4": unichr(0x00A5), # YEN SIGN
|
||||
b"\xB5": unichr(0x00B5), # MICRO SIGN
|
||||
b"\xB6": unichr(0x2202), # PARTIAL DIFFERENTIAL
|
||||
b"\xB7": unichr(0x2211), # N-ARY SUMMATION
|
||||
b"\xB8": unichr(0x220F), # N-ARY PRODUCT
|
||||
b"\xB9": unichr(0x03C0), # GREEK SMALL LETTER PI
|
||||
b"\xBA": unichr(0x222B), # INTEGRAL
|
||||
b"\xBB": unichr(0x00AA), # FEMININE ORDINAL INDICATOR
|
||||
b"\xBC": unichr(0x00BA), # MASCULINE ORDINAL INDICATOR
|
||||
b"\xBD": unichr(0x03A9), # GREEK CAPITAL LETTER OMEGA
|
||||
b"\xBE": unichr(0x0103), # LATIN SMALL LETTER A WITH BREVE
|
||||
b"\xBF": unichr(0x0219), # LATIN SMALL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
|
||||
b"\xC0": unichr(0x00BF), # INVERTED QUESTION MARK
|
||||
b"\xC1": unichr(0x00A1), # INVERTED EXCLAMATION MARK
|
||||
b"\xC2": unichr(0x00AC), # NOT SIGN
|
||||
b"\xC3": unichr(0x221A), # SQUARE ROOT
|
||||
b"\xC4": unichr(0x0192), # LATIN SMALL LETTER F WITH HOOK
|
||||
b"\xC5": unichr(0x2248), # ALMOST EQUAL TO
|
||||
b"\xC6": unichr(0x2206), # INCREMENT
|
||||
b"\xC7": unichr(0x00AB), # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
b"\xC8": unichr(0x00BB), # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
b"\xC9": unichr(0x2026), # HORIZONTAL ELLIPSIS
|
||||
b"\xCA": unichr(0x00A0), # NO-BREAK SPACE
|
||||
b"\xCB": unichr(0x00C0), # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
b"\xCC": unichr(0x00C3), # LATIN CAPITAL LETTER A WITH TILDE
|
||||
b"\xCD": unichr(0x00D5), # LATIN CAPITAL LETTER O WITH TILDE
|
||||
b"\xCE": unichr(0x0152), # LATIN CAPITAL LIGATURE OE
|
||||
b"\xCF": unichr(0x0153), # LATIN SMALL LIGATURE OE
|
||||
b"\xD0": unichr(0x2013), # EN DASH
|
||||
b"\xD1": unichr(0x2014), # EM DASH
|
||||
b"\xD2": unichr(0x201C), # LEFT DOUBLE QUOTATION MARK
|
||||
b"\xD3": unichr(0x201D), # RIGHT DOUBLE QUOTATION MARK
|
||||
b"\xD4": unichr(0x2018), # LEFT SINGLE QUOTATION MARK
|
||||
b"\xD5": unichr(0x2019), # RIGHT SINGLE QUOTATION MARK
|
||||
b"\xD6": unichr(0x00F7), # DIVISION SIGN
|
||||
b"\xD7": unichr(0x25CA), # LOZENGE
|
||||
b"\xD8": unichr(0x00FF), # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
b"\xD9": unichr(0x0178), # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
b"\xDA": unichr(0x2044), # FRACTION SLASH
|
||||
b"\xDB": unichr(0x20AC), # EURO SIGN
|
||||
b"\xDC": unichr(0x2039), # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
b"\xDD": unichr(0x203A), # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
b"\xDE": unichr(0x021A), # LATIN CAPITAL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
|
||||
b"\xDF": unichr(0x021B), # LATIN SMALL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
|
||||
b"\xE0": unichr(0x2021), # DOUBLE DAGGER
|
||||
b"\xE1": unichr(0x00B7), # MIDDLE DOT
|
||||
b"\xE2": unichr(0x201A), # SINGLE LOW-9 QUOTATION MARK
|
||||
b"\xE3": unichr(0x201E), # DOUBLE LOW-9 QUOTATION MARK
|
||||
b"\xE4": unichr(0x2030), # PER MILLE SIGN
|
||||
b"\xE5": unichr(0x00C2), # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
b"\xE6": unichr(0x00CA), # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
b"\xE7": unichr(0x00C1), # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
b"\xE8": unichr(0x00CB), # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
b"\xE9": unichr(0x00C8), # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
b"\xEA": unichr(0x00CD), # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
b"\xEB": unichr(0x00CE), # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
b"\xEC": unichr(0x00CF), # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
b"\xED": unichr(0x00CC), # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
b"\xEE": unichr(0x00D3), # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
b"\xEF": unichr(0x00D4), # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
b"\xF0": unichr(0xF8FF), # Apple logo
|
||||
b"\xF1": unichr(0x00D2), # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
b"\xF2": unichr(0x00DA), # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
b"\xF3": unichr(0x00DB), # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
b"\xF4": unichr(0x00D9), # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
b"\xF5": unichr(0x0131), # LATIN SMALL LETTER DOTLESS I
|
||||
b"\xF6": unichr(0x02C6), # MODIFIER LETTER CIRCUMFLEX ACCENT
|
||||
b"\xF7": unichr(0x02DC), # SMALL TILDE
|
||||
b"\xF8": unichr(0x00AF), # MACRON
|
||||
b"\xF9": unichr(0x02D8), # BREVE
|
||||
b"\xFA": unichr(0x02D9), # DOT ABOVE
|
||||
b"\xFB": unichr(0x02DA), # RING ABOVE
|
||||
b"\xFC": unichr(0x00B8), # CEDILLA
|
||||
b"\xFD": unichr(0x02DD), # DOUBLE ACUTE ACCENT
|
||||
b"\xFE": unichr(0x02DB), # OGONEK
|
||||
b"\xFF": unichr(0x02C7), # CARON
|
||||
}
|
||||
|
||||
_extended_encodings = {
|
||||
"x-mac-croatian-ttx": ("ascii", _mac_croatian_mapping),
|
||||
"x-mac-romanian-ttx": ("ascii", _mac_romanian_mapping),
|
||||
"x-mac-japanese-ttx": ("shift_jis", {
|
||||
b"\xFC": unichr(0x007C),
|
||||
b"\x7E": unichr(0x007E),
|
||||
|
@ -5,13 +5,17 @@ import fontTools.encodings.codecs # Not to be confused with "import codecs"
|
||||
|
||||
class ExtendedCodecsTest(unittest.TestCase):
|
||||
|
||||
def test_decode(self):
|
||||
def test_decode_japanese(self):
|
||||
self.assertEqual(b'x\xfe\xfdy'.decode("x-mac-japanese-ttx"),
|
||||
unichr(0x78)+unichr(0x2122)+unichr(0x00A9)+unichr(0x79))
|
||||
|
||||
def test_encode(self):
|
||||
def test_encode_japanese(self):
|
||||
self.assertEqual(b'x\xfe\xfdy',
|
||||
(unichr(0x78)+unichr(0x2122)+unichr(0x00A9)+unichr(0x79)).encode("x-mac-japanese-ttx"))
|
||||
|
||||
def test_decode_romanian(self):
|
||||
self.assertEqual(b'x\xfb'.decode("x-mac-romanian-ttx"),
|
||||
unichr(0x78)+unichr(0x02DA))
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
@ -110,14 +110,14 @@ class NameRecord(object):
|
||||
0: { # Macintosh, platEncID==0, keyed by langID
|
||||
15: "mac-iceland",
|
||||
17: "mac-turkish",
|
||||
18: None,
|
||||
18: "x-mac-croatian-ttx",
|
||||
24: "mac-latin2",
|
||||
25: "mac-latin2",
|
||||
26: "mac-latin2",
|
||||
27: "mac-latin2",
|
||||
28: "mac-latin2",
|
||||
36: "mac-latin2",
|
||||
37: None,
|
||||
37: "x-mac-romanian-ttx",
|
||||
38: "mac-latin2",
|
||||
39: "mac-latin2",
|
||||
40: "mac-latin2",
|
||||
|
@ -22,6 +22,11 @@ class NameRecordTest(unittest.TestCase):
|
||||
self.assertEqual("mac-roman", name.getEncoding())
|
||||
self.assertEqual("Foo Italic", name.toUnicode())
|
||||
|
||||
def test_toUnicode_macromanian(self):
|
||||
name = self.makeName(b"Foo Italic\xfb", 222, 1, 0, 37) # Mac Romanian
|
||||
self.assertEqual("x-mac-romanian-ttx", name.getEncoding())
|
||||
self.assertEqual("Foo Italic"+unichr(0x02DA), name.toUnicode())
|
||||
|
||||
def test_toUnicode_UnicodeDecodeError(self):
|
||||
name = self.makeName("Foo Bold", 111, 0, 2, 7)
|
||||
self.assertEqual("utf-16be", name.getEncoding())
|
||||
@ -70,13 +75,19 @@ class NameRecordTest(unittest.TestCase):
|
||||
name = self.makeName('', 123, 1, 0, 17) # Mac Turkish
|
||||
self.assertEqual(name.getEncoding(), "mac-turkish")
|
||||
name.langID = 37
|
||||
self.assertEqual(name.getEncoding(), None)
|
||||
name.langID = 45
|
||||
self.assertEqual(name.getEncoding(), "x-mac-romanian-ttx")
|
||||
name.langID = 45 # Other
|
||||
self.assertEqual(name.getEncoding(), "mac-roman")
|
||||
|
||||
def test_extended_mac_encodings(self):
|
||||
name = self.makeName(b'\xfe', 123, 1, 1, 0) # Mac Japanese
|
||||
self.assertEqual(name.toUnicode(), unichr(0x2122))
|
||||
|
||||
def test_extended_unknown(self):
|
||||
name = self.makeName(b'\xfe', 123, 10, 11, 12)
|
||||
self.assertEqual(name.getEncoding(), "ascii")
|
||||
self.assertEqual(name.getEncoding(None), None)
|
||||
self.assertEqual(name.getEncoding(default=None), None)
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user