diff options
| author | Haldun Bayhantopcu <haldun@github.com> | 2023-11-17 16:44:07 +0100 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2023-11-17 20:04:54 +0000 |
| commit | 85dcfef23a16ce75575177b24e6726f8ab12d276 (patch) | |
| tree | 8d92dba0bbfa2f24d381cba5a472a05a3dc49508 | |
| parent | e5d6b4099e9f4027dbaaeb8b825ada572279b066 (diff) | |
[ruby/prism] Add macUkraine
https://github.com/ruby/prism/commit/440557fddc
| -rw-r--r-- | prism/enc/pm_encoding.h | 1 | ||||
| -rw-r--r-- | prism/enc/pm_tables.c | 35 | ||||
| -rw-r--r-- | prism/prism.c | 1 |
3 files changed, 37 insertions, 0 deletions
diff --git a/prism/enc/pm_encoding.h b/prism/enc/pm_encoding.h index 1408423a10..38a0cfc811 100644 --- a/prism/enc/pm_encoding.h +++ b/prism/enc/pm_encoding.h @@ -194,6 +194,7 @@ extern pm_encoding_t pm_encoding_mac_greek; extern pm_encoding_t pm_encoding_mac_iceland; extern pm_encoding_t pm_encoding_mac_romania; extern pm_encoding_t pm_encoding_mac_turkish; +extern pm_encoding_t pm_encoding_mac_ukraine; extern pm_encoding_t pm_encoding_shift_jis; extern pm_encoding_t pm_encoding_utf_8; extern pm_encoding_t pm_encoding_utf8_mac; diff --git a/prism/enc/pm_tables.c b/prism/enc/pm_tables.c index d6d5df97f7..3b3871beb8 100644 --- a/prism/enc/pm_tables.c +++ b/prism/enc/pm_tables.c @@ -818,6 +818,30 @@ static uint8_t pm_encoding_mac_turkish_table[256] = { /** * Each element of the following table contains a bitfield that indicates a + * piece of information about the corresponding macUkraine character. + */ +static uint8_t pm_encoding_mac_ukraine_table[256] = { +// 0 1 2 3 4 5 6 7 8 9 A B C D E F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 2x + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, // 3x + 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 4x + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, // 5x + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 6x + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, // 7x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // Ax + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // Bx + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // Cx + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // Dx + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // Ex + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // Fx +}; + +/** + * Each element of the following table contains a bitfield that indicates a * piece of information about the corresponding windows-1250 character. */ static uint8_t pm_encoding_windows_1250_table[256] = { @@ -1130,6 +1154,7 @@ PRISM_ENCODING_TABLE(mac_greek) PRISM_ENCODING_TABLE(mac_iceland) PRISM_ENCODING_TABLE(mac_romania) PRISM_ENCODING_TABLE(mac_turkish) +PRISM_ENCODING_TABLE(mac_ukraine) PRISM_ENCODING_TABLE(windows_1250) PRISM_ENCODING_TABLE(windows_1251) PRISM_ENCODING_TABLE(windows_1252) @@ -1492,6 +1517,16 @@ pm_encoding_t pm_encoding_mac_turkish = { .multibyte = false }; +/** macUkraine */ +pm_encoding_t pm_encoding_mac_ukraine = { + .name = "macUkraine", + .char_width = pm_encoding_single_char_width, + .alnum_char = pm_encoding_mac_ukraine_alnum_char, + .alpha_char = pm_encoding_mac_ukraine_alpha_char, + .isupper_char = pm_encoding_mac_ukraine_isupper_char, + .multibyte = false +}; + /** Windows-1250 */ pm_encoding_t pm_encoding_windows_1250 = { .name = "Windows-1250", diff --git a/prism/prism.c b/prism/prism.c index 7bae22f072..5442a33e0f 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -6139,6 +6139,7 @@ parser_lex_magic_comment_encoding_value(pm_parser_t *parser, const uint8_t *star ENCODING1("macIceland", pm_encoding_mac_iceland); ENCODING1("macRomania", pm_encoding_mac_romania); ENCODING1("macTurkish", pm_encoding_mac_turkish); + ENCODING1("macUkraine", pm_encoding_mac_ukraine); break; case 'P': case 'p': ENCODING1("PCK", pm_encoding_windows_31j); |
