Index: src/encodings/codepage_437.m ================================================================== --- src/encodings/codepage_437.m +++ src/encodings/codepage_437.m @@ -39,11 +39,11 @@ 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; const size_t of_codepage_437_table_offset = 256 - (sizeof(of_codepage_437_table) / sizeof(*of_codepage_437_table)); -static const char page0[] = { +static const unsigned char page0[] = { 0xFF, 0xAD, 0x9B, 0x9C, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xAE, 0xAA, 0x00, 0x00, 0x00, 0xF8, 0xF1, 0xFD, 0x00, 0x00, 0xE6, 0x00, 0xFA, 0x00, 0x00, 0xA7, 0xAF, 0xAC, 0xAB, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x8F, 0x92, 0x80, @@ -54,42 +54,38 @@ 0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, 0x00, 0xA4, 0x95, 0xA2, 0x93, 0x00, 0x94, 0xF6, 0x00, 0x97, 0xA3, 0x96, 0x81, 0x00, 0x00, 0x98 }; static const uint8_t page0Start = 0xA0; -static const uint16_t page0Size = sizeof(page0) / sizeof(*page0); -static const char page1[] = { +static const unsigned char page1[] = { 0x9F }; static const uint8_t page1Start = 0x92; -static const uint16_t page1Size = sizeof(page1) / sizeof(*page1); -static const char page3[] = { +static const unsigned char page3[] = { 0xE2, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0xE8, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xEB, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0x00, 0x00, 0xE5, 0xE7, 0x00, 0xED }; static const uint8_t page3Start = 0x93; -static const uint16_t page3Size = sizeof(page3) / sizeof(*page3); -static const char page20[] = { +static const unsigned char page20[] = { 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9E }; static const uint8_t page20Start = 0x7F; -static const uint16_t page20Size = sizeof(page20) / sizeof(*page20); -static const char page22[] = { +static const unsigned char page22[] = { 0xF9, 0xFB, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -98,21 +94,19 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF3, 0xF2 }; static const uint8_t page22Start = 0x19; -static const uint16_t page22Size = sizeof(page22) / sizeof(*page22); -static const char page23[] = { +static const unsigned char page23[] = { 0xA9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xF5 }; static const uint8_t page23Start = 0x10; -static const uint16_t page23Size = sizeof(page23) / sizeof(*page23); -static const char page25[] = { +static const unsigned char page25[] = { 0xC4, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, @@ -132,11 +126,10 @@ 0xDE, 0xB0, 0xB1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE }; static const uint8_t page25Start = 0x00; -static const uint16_t page25Size = sizeof(page25) / sizeof(*page25); bool of_unicode_to_codepage_437(const of_unichar_t *input, unsigned char *output, size_t length, bool lossy) { Index: src/encodings/codepage_850.m ================================================================== --- src/encodings/codepage_850.m +++ src/encodings/codepage_850.m @@ -40,11 +40,11 @@ }; const size_t of_codepage_850_table_offset = 256 - (sizeof(of_codepage_850_table) / sizeof(*of_codepage_850_table)); -static const char page0[] = { +static const unsigned char page0[] = { 0xFF, 0xAD, 0xBD, 0x9C, 0xCF, 0xBE, 0xDD, 0xF5, 0xF9, 0xB8, 0xA6, 0xAE, 0xAA, 0xF0, 0xA9, 0xEE, 0xF8, 0xF1, 0xFD, 0xFC, 0xEF, 0xE6, 0xF4, 0xFA, 0xF7, 0xFB, 0xA7, 0xAF, 0xAC, 0xAB, 0xF3, 0xA8, 0xB7, 0xB5, 0xB6, 0xC7, 0x8E, 0x8F, 0x92, 0x80, @@ -55,13 +55,12 @@ 0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, 0xD0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, 0x9B, 0x97, 0xA3, 0x96, 0x81, 0xEC, 0xE7, 0x98 }; static const uint8_t page0Start = 0xA0; -static const uint16_t page0Size = sizeof(page0) / sizeof(*page0); -static const char page1[] = { +static const unsigned char page1[] = { 0xD5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -73,19 +72,17 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F }; static const uint8_t page1Start = 0x31; -static const uint16_t page1Size = sizeof(page1) / sizeof(*page1); -static const char page20[] = { +static const unsigned char page20[] = { 0xF2 }; static const uint8_t page20Start = 0x17; -static const uint16_t page20Size = sizeof(page20) / sizeof(*page20); -static const char page25[] = { +static const unsigned char page25[] = { 0xC4, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, @@ -105,11 +102,10 @@ 0x00, 0xB0, 0xB1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE }; static const uint8_t page25Start = 0x00; -static const uint16_t page25Size = sizeof(page25) / sizeof(*page25); bool of_unicode_to_codepage_850(const of_unichar_t *input, unsigned char *output, size_t length, bool lossy) { Index: src/encodings/codepage_858.m ================================================================== --- src/encodings/codepage_858.m +++ src/encodings/codepage_858.m @@ -40,11 +40,11 @@ }; const size_t of_codepage_858_table_offset = 256 - (sizeof(of_codepage_858_table) / sizeof(*of_codepage_858_table)); -static const char page0[] = { +static const unsigned char page0[] = { 0xFF, 0xAD, 0xBD, 0x9C, 0xCF, 0xBE, 0xDD, 0xF5, 0xF9, 0xB8, 0xA6, 0xAE, 0xAA, 0xF0, 0xA9, 0xEE, 0xF8, 0xF1, 0xFD, 0xFC, 0xEF, 0xE6, 0xF4, 0xFA, 0xF7, 0xFB, 0xA7, 0xAF, 0xAC, 0xAB, 0xF3, 0xA8, 0xB7, 0xB5, 0xB6, 0xC7, 0x8E, 0x8F, 0x92, 0x80, @@ -55,19 +55,17 @@ 0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, 0xD0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, 0x9B, 0x97, 0xA3, 0x96, 0x81, 0xEC, 0xE7, 0x98 }; static const uint8_t page0Start = 0xA0; -static const uint16_t page0Size = sizeof(page0) / sizeof(*page0); -static const char page1[] = { +static const unsigned char page1[] = { 0x9F }; static const uint8_t page1Start = 0x92; -static const uint16_t page1Size = sizeof(page1) / sizeof(*page1); -static const char page20[] = { +static const unsigned char page20[] = { 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -85,13 +83,12 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5 }; static const uint8_t page20Start = 0x17; -static const uint16_t page20Size = sizeof(page20) / sizeof(*page20); -static const char page25[] = { +static const unsigned char page25[] = { 0xC4, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, @@ -111,11 +108,10 @@ 0x00, 0xB0, 0xB1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE }; static const uint8_t page25Start = 0x00; -static const uint16_t page25Size = sizeof(page25) / sizeof(*page25); bool of_unicode_to_codepage_858(const of_unichar_t *input, unsigned char *output, size_t length, bool lossy) { Index: src/encodings/common.h ================================================================== --- src/encodings/common.h +++ src/encodings/common.h @@ -21,11 +21,11 @@ continue; \ } \ \ index = (c & 0xFF) - page##nr##Start; \ \ - if (index >= page##nr##Size) { \ + if (index >= sizeof(page##nr)) { \ output[i] = (unsigned char)c; \ continue; \ } \ \ if (page##nr[index] == 0x00) { \ @@ -36,27 +36,27 @@ return false; \ } \ \ output[i] = page##nr[index]; \ break; -#define CASE_MISSING_IS_ERROR(nr) \ - case 0x##nr: \ - if OF_UNLIKELY ((c & 0xFF) < page##nr##Start) { \ - if (lossy) { \ - output[i] = '?'; \ - continue; \ - } else \ - return false; \ - } \ - \ - index = (c & 0xFF) - page##nr##Start; \ - \ - if (index >= page##nr##Size || page##nr[index] == 0) { \ - if (lossy) { \ - output[i] = '?'; \ - continue; \ - } else \ - return false; \ - } \ - \ - output[i] = page##nr[index]; \ +#define CASE_MISSING_IS_ERROR(nr) \ + case 0x##nr: \ + if OF_UNLIKELY ((c & 0xFF) < page##nr##Start) { \ + if (lossy) { \ + output[i] = '?'; \ + continue; \ + } else \ + return false; \ + } \ + \ + index = (c & 0xFF) - page##nr##Start; \ + \ + if (index >= sizeof(page##nr) || page##nr[index] == 0) { \ + if (lossy) { \ + output[i] = '?'; \ + continue; \ + } else \ + return false; \ + } \ + \ + output[i] = page##nr[index]; \ break; Index: src/encodings/iso_8859_15.m ================================================================== --- src/encodings/iso_8859_15.m +++ src/encodings/iso_8859_15.m @@ -35,35 +35,32 @@ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF }; const size_t of_iso_8859_15_table_offset = 256 - (sizeof(of_iso_8859_15_table) / sizeof(*of_iso_8859_15_table)); -static const char page0[] = { +static const unsigned char page0[] = { 0x00, 0xA5, 0x00, 0xA7, 0x00, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0x00, 0xB5, 0xB6, 0xB7, 0x00, 0xB9, 0xBA, 0xBB, 0x00, 0x00, 0x00 }; static const uint8_t page0Start = 0xA4; -static const uint16_t page0Size = sizeof(page0) / sizeof(*page0); -static const char page1[] = { +static const unsigned char page1[] = { 0xBC, 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x00, 0xB4, 0xB8 }; static const uint8_t page1Start = 0x52; -static const uint16_t page1Size = sizeof(page1) / sizeof(*page1); -static const char page20[] = { +static const unsigned char page20[] = { 0xA4 }; static const uint8_t page20Start = 0xAC; -static const uint16_t page20Size = sizeof(page20) / sizeof(*page20); bool of_unicode_to_iso_8859_15(const of_unichar_t *input, unsigned char *output, size_t length, bool lossy) { Index: src/encodings/iso_8859_2.m ================================================================== --- src/encodings/iso_8859_2.m +++ src/encodings/iso_8859_2.m @@ -35,11 +35,11 @@ 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 }; const size_t of_iso_8859_2_table_offset = 256 - (sizeof(of_iso_8859_2_table) / sizeof(*of_iso_8859_2_table)); -static const char page0[] = { +static const unsigned char page0[] = { 0xA0, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0xA7, 0xA8, 0x00, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xC2, 0x00, 0xC4, 0x00, 0x00, 0xC7, @@ -50,13 +50,12 @@ 0x00, 0xE9, 0x00, 0xEB, 0x00, 0xED, 0xEE, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xF4, 0x00, 0xF6, 0xF7, 0x00, 0x00, 0xFA, 0x00, 0xFC, 0xFD, 0x00, 0x00 }; static const uint8_t page0Start = 0xA0; -static const uint16_t page0Size = sizeof(page0) / sizeof(*page0); -static const char page1[] = { +static const unsigned char page1[] = { 0xC3, 0xE3, 0xA1, 0xB1, 0xC6, 0xE6, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE8, 0xCF, 0xEF, 0xD0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xEA, 0xCC, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -71,19 +70,17 @@ 0x00, 0x00, 0x00, 0x00, 0xD9, 0xF9, 0xDB, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xBC, 0xAF, 0xBF, 0xAE, 0xBE }; static const uint8_t page1Start = 0x02; -static const uint16_t page1Size = sizeof(page1) / sizeof(*page1); -static const char page2[] = { +static const unsigned char page2[] = { 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0xFF, 0x00, 0xB2, 0x00, 0xBD }; static const uint8_t page2Start = 0xC7; -static const uint16_t page2Size = sizeof(page2) / sizeof(*page2); bool of_unicode_to_iso_8859_2(const of_unichar_t *input, unsigned char *output, size_t length, bool lossy) { Index: src/encodings/iso_8859_3.m ================================================================== --- src/encodings/iso_8859_3.m +++ src/encodings/iso_8859_3.m @@ -35,11 +35,11 @@ 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9 }; const size_t of_iso_8859_3_table_offset = 256 - (sizeof(of_iso_8859_3_table) / sizeof(*of_iso_8859_3_table)); -static const char page0[] = { +static const unsigned char page0[] = { 0xA0, 0x00, 0x00, 0xA3, 0xA4, 0x00, 0x00, 0xA7, 0xA8, 0x00, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0xB0, 0x00, 0xB2, 0xB3, 0xB4, 0xB5, 0x00, 0xB7, 0xB8, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0xC0, 0xC1, 0xC2, 0x00, 0xC4, 0x00, 0x00, 0xC7, @@ -50,14 +50,12 @@ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0x00, 0xF1, 0xF2, 0xF3, 0xF4, 0x00, 0xF6, 0xF7, 0x00, 0xF9, 0xFA, 0xFB, 0xFC, 0x00, 0x00, 0x00 }; static const uint8_t page0Start = 0xA0; -static const uint16_t page0Size = sizeof(page0) / sizeof(*page0); -static const uint8_t page1Start = 0x08; -static const char page1[] = { +static const unsigned char page1[] = { 0xC6, 0xE6, 0xC5, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xF8, 0xAB, 0xBB, 0xD5, 0xF5, 0x00, 0x00, 0xA6, 0xB6, 0xA1, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -70,17 +68,16 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0xBF }; -static const uint16_t page1Size = sizeof(page1) / sizeof(*page1); +static const uint8_t page1Start = 0x08; -static const char page2[] = { +static const unsigned char page2[] = { 0xA2, 0xFF }; static const uint8_t page2Start = 0xD8; -static const uint16_t page2Size = sizeof(page2) / sizeof(*page2); bool of_unicode_to_iso_8859_3(const of_unichar_t *input, unsigned char *output, size_t length, bool lossy) { Index: src/encodings/koi8_r.m ================================================================== --- src/encodings/koi8_r.m +++ src/encodings/koi8_r.m @@ -39,11 +39,11 @@ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A }; const size_t of_koi8_r_table_offset = 256 - (sizeof(of_koi8_r_table) / sizeof(*of_koi8_r_table)); -static const char page0[] = { +static const unsigned char page0[] = { 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -53,13 +53,12 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F }; static const uint8_t page0Start = 0xA0; -static const uint16_t page0Size = sizeof(page0) / sizeof(*page0); -static const char page4[] = { +static const unsigned char page4[] = { 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, 0xFB, @@ -69,13 +68,12 @@ 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, 0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1, 0x00, 0xA3 }; static const uint8_t page4Start = 0x01; -static const uint16_t page4Size = sizeof(page4) / sizeof(*page4); -static const char page22[] = { +static const unsigned char page22[] = { 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -84,19 +82,17 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x99 }; static const uint8_t page22Start = 0x19; -static const uint16_t page22Size = sizeof(page22) / sizeof(*page22); -static const char page23[] = { +static const unsigned char page23[] = { 0x93, 0x9B }; static const uint8_t page23Start = 0x20; -static const uint16_t page23Size = sizeof(page23) / sizeof(*page23); -static const char page25[] = { +static const unsigned char page25[] = { 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, @@ -116,11 +112,10 @@ 0x8F, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94 }; static const uint8_t page25Start = 0x00; -static const uint16_t page25Size = sizeof(page25) / sizeof(*page25); bool of_unicode_to_koi8_r(const of_unichar_t *input, unsigned char *output, size_t length, bool lossy) { Index: src/encodings/koi8_u.m ================================================================== --- src/encodings/koi8_u.m +++ src/encodings/koi8_u.m @@ -39,11 +39,11 @@ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A }; const size_t of_koi8_u_table_offset = 256 - (sizeof(of_koi8_u_table) / sizeof(*of_koi8_u_table)); -static const char page0[] = { +static const unsigned char page0[] = { 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -53,13 +53,12 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F }; static const uint8_t page0Start = 0xA0; -static const uint16_t page0Size = sizeof(page0) / sizeof(*page0); -static const char page4[] = { +static const unsigned char page4[] = { 0xB3, 0x00, 0x00, 0xB4, 0x00, 0xB6, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, 0xFB, @@ -77,13 +76,12 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0xAD }; static const uint8_t page4Start = 0x01; -static const uint16_t page4Size = sizeof(page4) / sizeof(*page4); -static const char page22[] = { +static const unsigned char page22[] = { 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -92,19 +90,17 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x99 }; static const uint8_t page22Start = 0x19; -static const uint16_t page22Size = sizeof(page22) / sizeof(*page22); -static const char page23[] = { +static const unsigned char page23[] = { 0x93, 0x9B }; static const uint8_t page23Start = 0x20; -static const uint16_t page23Size = sizeof(page23) / sizeof(*page23); -static const char page25[] = { +static const unsigned char page25[] = { 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, @@ -124,11 +120,10 @@ 0x8F, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94 }; static const uint8_t page25Start = 0x00; -static const uint16_t page25Size = sizeof(page25) / sizeof(*page25); bool of_unicode_to_koi8_u(const of_unichar_t *input, unsigned char *output, size_t length, bool lossy) {