1#include "prism/internal/encoding.h"
4#include "prism/internal/strncasecmp.h"
8typedef uint32_t pm_unicode_codepoint_t;
10#define UNICODE_ALPHA_CODEPOINTS_LENGTH 1508
11static const pm_unicode_codepoint_t unicode_alpha_codepoints[UNICODE_ALPHA_CODEPOINTS_LENGTH] = {
768#define UNICODE_ALNUM_CODEPOINTS_LENGTH 1598
769static const pm_unicode_codepoint_t unicode_alnum_codepoints[UNICODE_ALNUM_CODEPOINTS_LENGTH] = {
1571#define UNICODE_ISUPPER_CODEPOINTS_LENGTH 1320
1572static const pm_unicode_codepoint_t unicode_isupper_codepoints[UNICODE_ISUPPER_CODEPOINTS_LENGTH] = {
2242const uint8_t pm_encoding_unicode_table[256] = {
2244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2247 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2248 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2249 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2250 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2251 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2255 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2256 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2257 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
2258 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2259 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
2267pm_unicode_codepoint_match(pm_unicode_codepoint_t codepoint,
const pm_unicode_codepoint_t *codepoints,
size_t size) {
2271 while (start < end) {
2272 size_t middle = start + (end - start) / 2;
2273 if ((middle % 2) != 0) middle--;
2275 if (codepoint >= codepoints[middle] && codepoint <= codepoints[middle + 1]) {
2279 if (codepoint < codepoints[middle]) {
2312static const uint8_t pm_utf_8_dfa[] = {
2313 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2314 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2315 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2316 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2317 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
2318 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
2319 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2320 0xa,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x4,0x3,0x3,
2321 0xb,0x6,0x6,0x6,0x5,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,
2322 0x0,0x1,0x2,0x3,0x5,0x8,0x7,0x1,0x1,0x1,0x4,0x6,0x1,0x1,0x1,0x1,
2323 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,
2324 1,2,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
2325 1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1,
2326 1,3,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
2334static pm_unicode_codepoint_t
2335pm_utf_8_codepoint(
const uint8_t *b, ptrdiff_t n,
size_t *width) {
2338 size_t maximum = (n > 4) ? 4 : ((size_t) n);
2342 for (
size_t index = 0; index < maximum; index++) {
2343 uint32_t
byte = b[index];
2344 uint32_t
type = pm_utf_8_dfa[byte];
2346 codepoint = (state != 0) ?
2347 (
byte & 0x3fu) | (codepoint << 6) :
2348 (0xffu >>
type) & (byte);
2350 state = pm_utf_8_dfa[256 + (state * 16) + type];
2353 return (pm_unicode_codepoint_t) codepoint;
2365pm_encoding_utf_8_char_width(
const uint8_t *b, ptrdiff_t n) {
2368 size_t maximum = (n > 4) ? 4 : ((size_t) n);
2371 for (
size_t index = 0; index < maximum; index++) {
2372 state = pm_utf_8_dfa[256 + (state * 16) + pm_utf_8_dfa[b[index]]];
2373 if (state == 0)
return index + 1;
2384pm_encoding_utf_8_alpha_char(
const uint8_t *b, ptrdiff_t n) {
2390 return (pm_encoding_unicode_table[*b] & PRISM_ENCODING_ALPHABETIC_BIT) ? 1 : 0;
2394 pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2396 if (codepoint <= 0xFF) {
2397 return (pm_encoding_unicode_table[(uint8_t) codepoint] & PRISM_ENCODING_ALPHABETIC_BIT) ? width : 0;
2399 return pm_unicode_codepoint_match(codepoint, unicode_alpha_codepoints, UNICODE_ALPHA_CODEPOINTS_LENGTH) ? width : 0;
2408pm_encoding_utf_8_alnum_char(
const uint8_t *b, ptrdiff_t n) {
2414 return (pm_encoding_unicode_table[*b] & (PRISM_ENCODING_ALPHANUMERIC_BIT)) ? 1 : 0;
2418 pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2420 if (codepoint <= 0xFF) {
2421 return (pm_encoding_unicode_table[(uint8_t) codepoint] & (PRISM_ENCODING_ALPHANUMERIC_BIT)) ? width : 0;
2423 return pm_unicode_codepoint_match(codepoint, unicode_alnum_codepoints, UNICODE_ALNUM_CODEPOINTS_LENGTH) ? width : 0;
2432pm_encoding_utf_8_isupper_char(
const uint8_t *b, ptrdiff_t n) {
2438 return (pm_encoding_unicode_table[*b] & PRISM_ENCODING_UPPERCASE_BIT) ? true :
false;
2442 pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2444 if (codepoint <= 0xFF) {
2445 return (pm_encoding_unicode_table[(uint8_t) codepoint] & PRISM_ENCODING_UPPERCASE_BIT) ? true :
false;
2447 return pm_unicode_codepoint_match(codepoint, unicode_isupper_codepoints, UNICODE_ISUPPER_CODEPOINTS_LENGTH) ? true :
false;
2451#ifndef PRISM_ENCODING_EXCLUDE_FULL
2453static pm_unicode_codepoint_t
2454pm_cesu_8_codepoint(
const uint8_t *b, ptrdiff_t n,
size_t *width) {
2456 if ((n > 0) && (b[0] < 0x80)) {
2458 return (pm_unicode_codepoint_t) b[0];
2461 if (n > 1 && b[0] >= 0xC2 && b[0] <= 0xDF && b[1] >= 0x80 && b[1] <= 0xBF) {
2465 return (pm_unicode_codepoint_t) (((b[0] & 0x1F) << 6) | (b[1] & 0x3F));
2468 if (n > 5 && b[0] == 0xED && b[1] >= 0xA0 && b[1] <= 0xAF && b[2] >= 0x80 && b[2] <= 0xBF && b[3] == 0xED && b[4] >= 0xB0 && b[4] <= 0xBF && b[5] >= 0x80 && b[5] <= 0xBF) {
2472 return (pm_unicode_codepoint_t) (0x10000 + (((b[1] & 0xF) << 16) | ((b[2] & 0x3F) << 10) | ((b[4] & 0xF) << 6) | (b[5] & 0x3F)));
2475 if (n > 2 && b[0] == 0xED && b[1] >= 0xA0 && b[1] <= 0xBF) {
2479 return (pm_unicode_codepoint_t) (0x10000 + (((b[0] & 0x03) << 16) | ((b[1] & 0x3F) << 10) | (b[2] & 0x3F)));
2482 if (n > 2 && ((b[0] == 0xE0 && b[1] >= 0xA0) || (b[0] >= 0xE1 && b[0] <= 0xEF && b[1] >= 0x80)) && b[1] <= 0xBF && b[2] >= 0x80 && b[2] <= 0xBF) {
2486 return (pm_unicode_codepoint_t) (((b[0] & 0xF) << 12) | ((b[1] & 0x3F) << 6) | (b[2] & 0x3F));
2494pm_encoding_cesu_8_char_width(
const uint8_t *b, ptrdiff_t n) {
2500 pm_cesu_8_codepoint(b, n, &width);
2505pm_encoding_cesu_8_alpha_char(
const uint8_t *b, ptrdiff_t n) {
2511 return (pm_encoding_unicode_table[*b] & PRISM_ENCODING_ALPHABETIC_BIT) ? 1 : 0;
2515 pm_unicode_codepoint_t codepoint = pm_cesu_8_codepoint(b, n, &width);
2517 if (codepoint <= 0xFF) {
2518 return (pm_encoding_unicode_table[(uint8_t) codepoint] & PRISM_ENCODING_ALPHABETIC_BIT) ? width : 0;
2520 return pm_unicode_codepoint_match(codepoint, unicode_alpha_codepoints, UNICODE_ALPHA_CODEPOINTS_LENGTH) ? width : 0;
2525pm_encoding_cesu_8_alnum_char(
const uint8_t *b, ptrdiff_t n) {
2531 return (pm_encoding_unicode_table[*b] & (PRISM_ENCODING_ALPHANUMERIC_BIT)) ? 1 : 0;
2535 pm_unicode_codepoint_t codepoint = pm_cesu_8_codepoint(b, n, &width);
2537 if (codepoint <= 0xFF) {
2538 return (pm_encoding_unicode_table[(uint8_t) codepoint] & (PRISM_ENCODING_ALPHANUMERIC_BIT)) ? width : 0;
2540 return pm_unicode_codepoint_match(codepoint, unicode_alnum_codepoints, UNICODE_ALNUM_CODEPOINTS_LENGTH) ? width : 0;
2545pm_encoding_cesu_8_isupper_char(
const uint8_t *b, ptrdiff_t n) {
2551 return (pm_encoding_unicode_table[*b] & PRISM_ENCODING_UPPERCASE_BIT) ? true :
false;
2555 pm_unicode_codepoint_t codepoint = pm_cesu_8_codepoint(b, n, &width);
2557 if (codepoint <= 0xFF) {
2558 return (pm_encoding_unicode_table[(uint8_t) codepoint] & PRISM_ENCODING_UPPERCASE_BIT) ? true :
false;
2560 return pm_unicode_codepoint_match(codepoint, unicode_isupper_codepoints, UNICODE_ISUPPER_CODEPOINTS_LENGTH) ? true :
false;
2566#undef UNICODE_ALPHA_CODEPOINTS_LENGTH
2567#undef UNICODE_ALNUM_CODEPOINTS_LENGTH
2568#undef UNICODE_ISUPPER_CODEPOINTS_LENGTH
2574static const uint8_t pm_encoding_ascii_table[256] = {
2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2579 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2580 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2581 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2582 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2583 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2594#ifndef PRISM_ENCODING_EXCLUDE_FULL
2600static const uint8_t pm_encoding_cp850_table[256] = {
2602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2605 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2606 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2607 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2608 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2609 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2624static const uint8_t pm_encoding_cp852_table[256] = {
2626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2629 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2630 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2631 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2632 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2633 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648static const uint8_t pm_encoding_cp855_table[256] = {
2650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2654 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2655 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2656 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2657 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672static const uint8_t pm_encoding_gb1988_table[256] = {
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2677 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2678 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2679 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2680 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2681 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696static const uint8_t pm_encoding_ibm437_table[256] = {
2698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2701 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2702 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2703 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2704 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2705 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720static const uint8_t pm_encoding_ibm720_table[256] = {
2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2725 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2726 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2727 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2728 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2729 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2744static const uint8_t pm_encoding_ibm737_table[256] = {
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2749 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2750 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2751 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2752 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2753 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768static const uint8_t pm_encoding_ibm775_table[256] = {
2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2774 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2775 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2776 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2777 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792static const uint8_t pm_encoding_ibm852_table[256] = {
2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2797 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2798 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2799 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2800 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2801 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2816static const uint8_t pm_encoding_ibm855_table[256] = {
2818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2821 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2822 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2823 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2824 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2825 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2840static const uint8_t pm_encoding_ibm857_table[256] = {
2842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2846 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2847 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2848 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2849 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2864static const uint8_t pm_encoding_ibm860_table[256] = {
2866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2870 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2871 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2872 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2873 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2888static const uint8_t pm_encoding_ibm861_table[256] = {
2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2894 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2895 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2896 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2897 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2912static const uint8_t pm_encoding_ibm862_table[256] = {
2914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2918 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2919 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2920 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2921 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2936static const uint8_t pm_encoding_ibm863_table[256] = {
2938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2942 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2943 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2944 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2945 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960static const uint8_t pm_encoding_ibm864_table[256] = {
2962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2965 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2966 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2967 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2968 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2969 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2984static const uint8_t pm_encoding_ibm865_table[256] = {
2986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2989 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2990 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2991 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2992 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2993 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008static const uint8_t pm_encoding_ibm866_table[256] = {
3010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3013 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3014 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3015 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3016 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3017 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3032static const uint8_t pm_encoding_ibm869_table[256] = {
3034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3037 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3038 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3039 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3040 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3041 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3056static const uint8_t pm_encoding_iso_8859_1_table[256] = {
3058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3061 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3062 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3063 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3064 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3065 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3069 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3070 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3071 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3072 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3073 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3080static const uint8_t pm_encoding_iso_8859_2_table[256] = {
3082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3085 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3086 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3087 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3088 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3089 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3092 0, 7, 0, 7, 0, 7, 7, 0, 0, 7, 7, 7, 7, 0, 7, 7,
3093 0, 3, 0, 3, 0, 3, 3, 0, 0, 3, 3, 3, 3, 0, 3, 3,
3094 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3095 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3096 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3097 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3104static const uint8_t pm_encoding_iso_8859_3_table[256] = {
3106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3109 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3110 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3111 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3112 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3113 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3116 0, 7, 0, 0, 0, 0, 7, 0, 0, 7, 7, 7, 7, 0, 0, 7,
3117 0, 3, 0, 0, 0, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 3,
3118 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3119 0, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3120 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3121 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3128static const uint8_t pm_encoding_iso_8859_4_table[256] = {
3130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3133 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3134 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3135 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3136 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3137 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3140 0, 7, 3, 7, 0, 7, 7, 0, 0, 7, 7, 7, 7, 0, 7, 0,
3141 0, 3, 0, 3, 0, 3, 3, 0, 0, 3, 3, 3, 3, 7, 3, 3,
3142 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3143 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3144 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3145 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3152static const uint8_t pm_encoding_iso_8859_5_table[256] = {
3154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3158 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3159 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3160 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3161 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3164 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7,
3165 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3166 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3167 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3168 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3169 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3,
3176static const uint8_t pm_encoding_iso_8859_6_table[256] = {
3178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3182 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3183 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3184 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3185 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3190 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3191 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3192 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3193 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3200static const uint8_t pm_encoding_iso_8859_7_table[256] = {
3202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3206 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3207 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3208 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3209 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3213 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 0, 7, 0, 7, 7,
3214 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3215 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3,
3216 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3217 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
3224static const uint8_t pm_encoding_iso_8859_8_table[256] = {
3226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3229 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3230 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3231 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3232 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3233 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3237 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3240 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3241 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3248static const uint8_t pm_encoding_iso_8859_9_table[256] = {
3250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3253 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3254 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3255 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3256 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3257 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3261 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3262 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3263 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3264 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3265 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3272static const uint8_t pm_encoding_iso_8859_10_table[256] = {
3274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3277 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3278 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3279 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3280 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3281 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3284 0, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 0, 7, 7,
3285 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 0, 3, 3,
3286 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3287 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3288 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3289 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3296static const uint8_t pm_encoding_iso_8859_11_table[256] = {
3298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3302 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3303 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3304 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3305 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3308 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3309 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3310 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3311 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3,
3312 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3313 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
3320static const uint8_t pm_encoding_iso_8859_13_table[256] = {
3322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3326 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3327 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3328 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3329 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3332 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7,
3333 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 3, 0, 0, 0, 0, 3,
3334 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3335 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3336 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3337 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3344static const uint8_t pm_encoding_iso_8859_14_table[256] = {
3346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3350 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3351 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3352 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3353 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3356 0, 7, 3, 0, 7, 3, 7, 0, 7, 0, 7, 3, 7, 0, 0, 7,
3357 7, 3, 7, 3, 7, 3, 0, 7, 3, 3, 3, 7, 3, 7, 3, 3,
3358 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3359 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3360 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3361 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3368static const uint8_t pm_encoding_iso_8859_15_table[256] = {
3370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3373 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3374 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3375 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3376 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3377 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3380 0, 0, 0, 0, 0, 0, 7, 0, 3, 0, 3, 0, 0, 0, 0, 0,
3381 0, 0, 0, 0, 7, 3, 0, 0, 3, 0, 3, 0, 7, 3, 7, 0,
3382 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3383 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3384 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3385 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3392static const uint8_t pm_encoding_iso_8859_16_table[256] = {
3394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3398 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3399 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3400 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3401 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3404 0, 7, 3, 7, 0, 0, 7, 0, 3, 0, 7, 0, 7, 0, 3, 7,
3405 0, 0, 7, 3, 7, 0, 0, 0, 3, 3, 3, 0, 7, 3, 7, 3,
3406 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3407 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3408 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3409 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3416static const uint8_t pm_encoding_koi8_r_table[256] = {
3418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3421 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3422 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3423 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3424 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3425 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3428 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3429 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3430 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3431 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3432 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3433 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3440static const uint8_t pm_encoding_koi8_u_table[256] = {
3442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3445 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3446 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3447 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3448 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3449 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3452 0, 0, 0, 3, 3, 0, 3, 3, 0, 0, 0, 0, 0, 3, 0, 0,
3453 0, 0, 0, 7, 7, 0, 7, 7, 0, 0, 0, 0, 0, 7, 0, 0,
3454 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3455 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3456 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3457 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3464static const uint8_t pm_encoding_mac_cent_euro_table[256] = {
3466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3469 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3470 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3471 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3472 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3473 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3488static const uint8_t pm_encoding_mac_croatian_table[256] = {
3490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3493 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3494 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3495 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3496 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3497 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3512static const uint8_t pm_encoding_mac_cyrillic_table[256] = {
3514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3518 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3519 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3520 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3521 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3536static const uint8_t pm_encoding_mac_greek_table[256] = {
3538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3541 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3542 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3543 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3544 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3545 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3560static const uint8_t pm_encoding_mac_iceland_table[256] = {
3562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3565 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3566 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3567 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3568 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3569 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3584static const uint8_t pm_encoding_mac_roman_table[256] = {
3586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3589 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3590 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3591 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3592 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3593 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3608static const uint8_t pm_encoding_mac_romania_table[256] = {
3610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3613 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3614 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3615 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3616 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3617 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3632static const uint8_t pm_encoding_mac_thai_table[256] = {
3634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3637 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3638 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3639 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3640 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3641 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3656static const uint8_t pm_encoding_tis_620_table[256] = {
3658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3662 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3663 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3664 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3665 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3668 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3669 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3670 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3671 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3,
3672 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3673 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
3680static const uint8_t pm_encoding_mac_turkish_table[256] = {
3682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3685 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3686 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3687 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3688 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3689 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3704static const uint8_t pm_encoding_mac_ukraine_table[256] = {
3706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3709 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3710 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3711 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3712 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3713 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3728static const uint8_t pm_encoding_windows_1250_table[256] = {
3730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3733 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3734 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3735 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3736 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3737 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7,
3739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 3, 3, 3,
3740 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7,
3741 0, 0, 0, 3, 0, 3, 0, 0, 0, 3, 3, 0, 7, 0, 3, 3,
3742 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3743 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3744 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3745 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3752static const uint8_t pm_encoding_windows_1251_table[256] = {
3754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3757 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3758 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3759 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3760 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3761 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3762 7, 7, 0, 3, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7,
3763 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 3, 3, 3,
3764 0, 7, 3, 7, 0, 7, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7,
3765 0, 0, 7, 3, 3, 3, 0, 0, 3, 0, 3, 0, 3, 7, 3, 3,
3766 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3767 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3768 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3769 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3776static const uint8_t pm_encoding_windows_1252_table[256] = {
3778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3781 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3782 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3783 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3784 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3785 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 7, 0,
3787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 3, 7,
3788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3789 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3790 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3791 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3792 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3793 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3800static const uint8_t pm_encoding_windows_1253_table[256] = {
3802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3805 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3806 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3807 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3808 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3809 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3812 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3813 0, 0, 0, 0, 0, 3, 7, 0, 7, 7, 7, 0, 7, 0, 7, 7,
3814 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3815 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3,
3816 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3817 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
3824static const uint8_t pm_encoding_windows_1254_table[256] = {
3826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3829 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3830 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3831 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3832 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3833 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0,
3835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 7,
3836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3837 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3838 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3839 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3840 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3841 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3848static const uint8_t pm_encoding_windows_1255_table[256] = {
3850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3853 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3854 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3855 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3856 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3857 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3861 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3864 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3865 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3872static const uint8_t pm_encoding_windows_1256_table[256] = {
3874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3877 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3878 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3879 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3880 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3881 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3886 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3887 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3888 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3889 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3896static const uint8_t pm_encoding_windows_1257_table[256] = {
3898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3901 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3902 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3903 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3904 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3905 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3908 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7,
3909 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 3, 0, 0, 0, 0, 3,
3910 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3911 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3912 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3913 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3920static const uint8_t pm_encoding_windows_1258_table[256] = {
3922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3925 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3926 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3927 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3928 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3929 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3944static const uint8_t pm_encoding_windows_874_table[256] = {
3946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3949 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3950 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3951 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3952 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3953 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3964#define PRISM_ENCODING_TABLE(name) \
3965 static size_t pm_encoding_ ##name ## _alpha_char(const uint8_t *b, ptrdiff_t n) { \
3966 return ((n > 0) && (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_ALPHABETIC_BIT)); \
3968 static size_t pm_encoding_ ##name ## _alnum_char(const uint8_t *b, ptrdiff_t n) { \
3969 return ((n > 0) && (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_ALPHANUMERIC_BIT)) ? 1 : 0; \
3971 static bool pm_encoding_ ##name ## _isupper_char(const uint8_t *b, ptrdiff_t n) { \
3972 return ((n > 0) && (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_UPPERCASE_BIT)); \
3975PRISM_ENCODING_TABLE(cp850)
3976PRISM_ENCODING_TABLE(cp852)
3977PRISM_ENCODING_TABLE(cp855)
3978PRISM_ENCODING_TABLE(gb1988)
3979PRISM_ENCODING_TABLE(ibm437)
3980PRISM_ENCODING_TABLE(ibm720)
3981PRISM_ENCODING_TABLE(ibm737)
3982PRISM_ENCODING_TABLE(ibm775)
3983PRISM_ENCODING_TABLE(ibm852)
3984PRISM_ENCODING_TABLE(ibm855)
3985PRISM_ENCODING_TABLE(ibm857)
3986PRISM_ENCODING_TABLE(ibm860)
3987PRISM_ENCODING_TABLE(ibm861)
3988PRISM_ENCODING_TABLE(ibm862)
3989PRISM_ENCODING_TABLE(ibm863)
3990PRISM_ENCODING_TABLE(ibm864)
3991PRISM_ENCODING_TABLE(ibm865)
3992PRISM_ENCODING_TABLE(ibm866)
3993PRISM_ENCODING_TABLE(ibm869)
3994PRISM_ENCODING_TABLE(iso_8859_1)
3995PRISM_ENCODING_TABLE(iso_8859_2)
3996PRISM_ENCODING_TABLE(iso_8859_3)
3997PRISM_ENCODING_TABLE(iso_8859_4)
3998PRISM_ENCODING_TABLE(iso_8859_5)
3999PRISM_ENCODING_TABLE(iso_8859_6)
4000PRISM_ENCODING_TABLE(iso_8859_7)
4001PRISM_ENCODING_TABLE(iso_8859_8)
4002PRISM_ENCODING_TABLE(iso_8859_9)
4003PRISM_ENCODING_TABLE(iso_8859_10)
4004PRISM_ENCODING_TABLE(iso_8859_11)
4005PRISM_ENCODING_TABLE(iso_8859_13)
4006PRISM_ENCODING_TABLE(iso_8859_14)
4007PRISM_ENCODING_TABLE(iso_8859_15)
4008PRISM_ENCODING_TABLE(iso_8859_16)
4009PRISM_ENCODING_TABLE(koi8_r)
4010PRISM_ENCODING_TABLE(koi8_u)
4011PRISM_ENCODING_TABLE(mac_cent_euro)
4012PRISM_ENCODING_TABLE(mac_croatian)
4013PRISM_ENCODING_TABLE(mac_cyrillic)
4014PRISM_ENCODING_TABLE(mac_greek)
4015PRISM_ENCODING_TABLE(mac_iceland)
4016PRISM_ENCODING_TABLE(mac_roman)
4017PRISM_ENCODING_TABLE(mac_romania)
4018PRISM_ENCODING_TABLE(mac_thai)
4019PRISM_ENCODING_TABLE(mac_turkish)
4020PRISM_ENCODING_TABLE(mac_ukraine)
4021PRISM_ENCODING_TABLE(tis_620)
4022PRISM_ENCODING_TABLE(windows_1250)
4023PRISM_ENCODING_TABLE(windows_1251)
4024PRISM_ENCODING_TABLE(windows_1252)
4025PRISM_ENCODING_TABLE(windows_1253)
4026PRISM_ENCODING_TABLE(windows_1254)
4027PRISM_ENCODING_TABLE(windows_1255)
4028PRISM_ENCODING_TABLE(windows_1256)
4029PRISM_ENCODING_TABLE(windows_1257)
4030PRISM_ENCODING_TABLE(windows_1258)
4031PRISM_ENCODING_TABLE(windows_874)
4033#undef PRISM_ENCODING_TABLE
4041pm_encoding_ascii_char_width(
const uint8_t *b, ptrdiff_t n) {
4042 return ((n > 0) && (*b < 0x80)) ? 1 : 0;
4050pm_encoding_ascii_alpha_char(
const uint8_t *b, ptrdiff_t n) {
4051 return (n > 0) ? (pm_encoding_ascii_table[*b] & PRISM_ENCODING_ALPHABETIC_BIT) : 0;
4060pm_encoding_ascii_alpha_char_7bit(
const uint8_t *b, ptrdiff_t n) {
4061 return ((n > 0) && (*b < 0x80)) ? pm_encoding_ascii_alpha_char(b, n) : 0;
4069pm_encoding_ascii_alnum_char(
const uint8_t *b, ptrdiff_t n) {
4070 return ((n > 0) && (pm_encoding_ascii_table[*b] & PRISM_ENCODING_ALPHANUMERIC_BIT)) ? 1 : 0;
4079pm_encoding_ascii_alnum_char_7bit(
const uint8_t *b, ptrdiff_t n) {
4080 return ((n > 0) && (*b < 0x80)) ? pm_encoding_ascii_alnum_char(b, n) : 0;
4088pm_encoding_ascii_isupper_char(
const uint8_t *b, ptrdiff_t n) {
4089 return (n > 0) && (pm_encoding_ascii_table[*b] & PRISM_ENCODING_UPPERCASE_BIT);
4106pm_encoding_euc_jp_char_width(
const uint8_t *b, ptrdiff_t n) {
4108 if ((n > 0) && (*b < 0x80)) {
4113 if ((n > 1) && ((b[0] == 0x8E) || (b[0] >= 0xA1 && b[0] <= 0xFE)) && (b[1] >= 0xA1 && b[1] <= 0xFE)) {
4118 if ((n > 2) && (b[0] == 0x8F) && (b[1] >= 0xA1 && b[2] <= 0xFE) && (b[2] >= 0xA1 && b[2] <= 0xFE)) {
4130pm_encoding_euc_jp_isupper_char(
const uint8_t *b, ptrdiff_t n) {
4131 size_t width = pm_encoding_euc_jp_char_width(b, n);
4134 return pm_encoding_ascii_isupper_char(b, n);
4135 }
else if (width == 2) {
4137 (b[0] == 0xA3 && b[1] >= 0xC1 && b[1] <= 0xDA) ||
4138 (b[0] == 0xA6 && b[1] >= 0xA1 && b[1] <= 0xB8) ||
4139 (b[0] == 0xA7 && b[1] >= 0xA1 && b[1] <= 0xC1)
4151pm_encoding_shift_jis_char_width(
const uint8_t *b, ptrdiff_t n) {
4156 if (b[0] < 0x80 || (b[0] >= 0xA1 && b[0] <= 0xDF)) {
4161 if ((n > 1) && ((b[0] >= 0x81 && b[0] <= 0x9F) || (b[0] >= 0xE0 && b[0] <= 0xFC)) && (b[1] >= 0x40 && b[1] <= 0xFC && b[1] != 0x7F)) {
4173pm_encoding_shift_jis_alnum_char(
const uint8_t *b, ptrdiff_t n) {
4174 size_t width = pm_encoding_shift_jis_char_width(b, n);
4175 return width == 1 ? ((b[0] >= 0x80) || pm_encoding_ascii_alnum_char(b, n)) : width;
4183pm_encoding_shift_jis_alpha_char(
const uint8_t *b, ptrdiff_t n) {
4184 size_t width = pm_encoding_shift_jis_char_width(b, n);
4185 return width == 1 ? ((b[0] >= 0x80) || pm_encoding_ascii_alpha_char(b, n)) : width;
4193pm_encoding_shift_jis_isupper_char(
const uint8_t *b, ptrdiff_t n) {
4194 size_t width = pm_encoding_shift_jis_char_width(b, n);
4197 return pm_encoding_ascii_isupper_char(b, n);
4198 }
else if (width == 2) {
4200 ((b[0] == 0x82) && (b[1] >= 0x60 && b[1] <= 0x79)) ||
4201 ((b[0] == 0x83) && (b[1] >= 0x9F && b[1] <= 0xB6)) ||
4202 ((b[0] == 0x84) && (b[1] >= 0x40 && b[1] <= 0x60))
4209#ifndef PRISM_ENCODING_EXCLUDE_FULL
4217pm_encoding_ascii_isupper_char_7bit(
const uint8_t *b, ptrdiff_t n) {
4218 return (n > 0) && (*b < 0x80) && pm_encoding_ascii_isupper_char(b, n);
4226pm_encoding_big5_char_width(
const uint8_t *b, ptrdiff_t n) {
4228 if ((n > 0) && (*b < 0x80)) {
4233 if ((n > 1) && (b[0] >= 0xA1 && b[0] <= 0xFE) && ((b[1] >= 0x40 && b[1] <= 0x7E) || (b[1] >= 0xA1 && b[1] <= 0xFE))) {
4245pm_encoding_cp949_char_width(
const uint8_t *b, ptrdiff_t n) {
4247 if ((n > 0) && (*b <= 0x80)) {
4252 if ((n > 1) && (b[0] >= 0x81 && b[0] <= 0xFE) && ((b[1] >= 0x41 && b[1] <= 0x5A) || (b[1] >= 0x61 && b[1] <= 0x7A) || (b[1] >= 0x81 && b[1] <= 0xFE))) {
4264pm_encoding_emacs_mule_char_width(
const uint8_t *b, ptrdiff_t n) {
4266 if ((n > 0) && (*b < 0x80)) {
4271 if ((n > 1) && (b[0] >= 0x81 && b[0] <= 0x8F) && (b[1] >= 0xA0)) {
4279 ((b[0] >= 0x90 && b[0] <= 0x99) && (b[1] >= 0xA0)) ||
4280 ((b[0] == 0x9A || b[0] == 0x9B) && (b[1] >= 0xE0 && b[1] <= 0xEF))
4291 ((b[0] == 0x9C) && (b[1] >= 0xF0) && (b[1] <= 0xF4)) ||
4292 ((b[0] == 0x9D) && (b[1] >= 0xF5) && (b[1] <= 0xFE))
4294 (b[2] >= 0xA0) && (b[3] >= 0xA0)
4307pm_encoding_euc_kr_char_width(
const uint8_t *b, ptrdiff_t n) {
4309 if ((n > 0) && (*b < 0x80)) {
4314 if ((n > 1) && (b[0] >= 0xA1 && b[0] <= 0xFE) && (b[1] >= 0xA1 && b[1] <= 0xFE)) {
4326pm_encoding_euc_tw_char_width(
const uint8_t *b, ptrdiff_t n) {
4328 if ((n > 0) && (*b < 0x80)) {
4333 if ((n > 1) && (b[0] >= 0xA1) && (b[0] <= 0xFE) && (b[1] >= 0xA1) && (b[1] <= 0xFE)) {
4338 if ((n > 3) && (b[0] == 0x8E) && (b[1] >= 0xA1) && (b[1] <= 0xB0) && (b[2] >= 0xA1) && (b[2] <= 0xFE) && (b[3] >= 0xA1) && (b[3] <= 0xFE)) {
4350pm_encoding_gb18030_char_width(
const uint8_t *b, ptrdiff_t n) {
4352 if ((n > 0) && (*b < 0x80)) {
4357 if ((n > 1) && (b[0] >= 0x81 && b[0] <= 0xFE) && (b[1] >= 0x40 && b[1] <= 0xFE && b[1] != 0x7F)) {
4362 if ((n > 3) && ((b[0] >= 0x81 && b[0] <= 0xFE) && (b[1] >= 0x30 && b[1] <= 0x39) && (b[2] >= 0x81 && b[2] <= 0xFE) && (b[3] >= 0x30 && b[3] <= 0x39))) {
4374pm_encoding_gbk_char_width(
const uint8_t *b, ptrdiff_t n) {
4376 if ((n > 0) && (*b <= 0x80)) {
4384 ((b[0] >= 0xA1 && b[0] <= 0xA9) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4385 ((b[0] >= 0xB0 && b[0] <= 0xF7) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4386 ((b[0] >= 0x81 && b[0] <= 0xA0) && (b[1] >= 0x40 && b[1] <= 0xFE) && (b[1] != 0x7F)) ||
4387 ((b[0] >= 0xAA && b[0] <= 0xFE) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) ||
4388 ((b[0] >= 0xA8 && b[0] <= 0xA9) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) ||
4389 ((b[0] >= 0xAA && b[0] <= 0xAF) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4390 ((b[0] >= 0xF8 && b[0] <= 0xFE) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4391 ((b[0] >= 0xA1 && b[0] <= 0xA7) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F))
4406 [PM_ENCODING_UTF_8] = {
4408 .char_width = pm_encoding_utf_8_char_width,
4409 .alnum_char = pm_encoding_utf_8_alnum_char,
4410 .alpha_char = pm_encoding_utf_8_alpha_char,
4411 .isupper_char = pm_encoding_utf_8_isupper_char,
4414 [PM_ENCODING_US_ASCII] = {
4416 .char_width = pm_encoding_ascii_char_width,
4417 .alnum_char = pm_encoding_ascii_alnum_char,
4418 .alpha_char = pm_encoding_ascii_alpha_char,
4419 .isupper_char = pm_encoding_ascii_isupper_char,
4422 [PM_ENCODING_ASCII_8BIT] = {
4423 .name =
"ASCII-8BIT",
4424 .char_width = pm_encoding_single_char_width,
4425 .alnum_char = pm_encoding_ascii_alnum_char,
4426 .alpha_char = pm_encoding_ascii_alpha_char,
4427 .isupper_char = pm_encoding_ascii_isupper_char,
4430 [PM_ENCODING_EUC_JP] = {
4432 .char_width = pm_encoding_euc_jp_char_width,
4433 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4434 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4435 .isupper_char = pm_encoding_euc_jp_isupper_char,
4438 [PM_ENCODING_WINDOWS_31J] = {
4439 .name =
"Windows-31J",
4440 .char_width = pm_encoding_shift_jis_char_width,
4441 .alnum_char = pm_encoding_shift_jis_alnum_char,
4442 .alpha_char = pm_encoding_shift_jis_alpha_char,
4443 .isupper_char = pm_encoding_shift_jis_isupper_char,
4447#ifndef PRISM_ENCODING_EXCLUDE_FULL
4448 [PM_ENCODING_BIG5] = {
4450 .char_width = pm_encoding_big5_char_width,
4451 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4452 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4453 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4456 [PM_ENCODING_BIG5_HKSCS] = {
4457 .name =
"Big5-HKSCS",
4458 .char_width = pm_encoding_big5_char_width,
4459 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4460 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4461 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4464 [PM_ENCODING_BIG5_UAO] = {
4466 .char_width = pm_encoding_big5_char_width,
4467 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4468 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4469 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4472 [PM_ENCODING_CESU_8] = {
4474 .char_width = pm_encoding_cesu_8_char_width,
4475 .alnum_char = pm_encoding_cesu_8_alnum_char,
4476 .alpha_char = pm_encoding_cesu_8_alpha_char,
4477 .isupper_char = pm_encoding_cesu_8_isupper_char,
4480 [PM_ENCODING_CP51932] = {
4482 .char_width = pm_encoding_euc_jp_char_width,
4483 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4484 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4485 .isupper_char = pm_encoding_euc_jp_isupper_char,
4488 [PM_ENCODING_CP850] = {
4490 .char_width = pm_encoding_single_char_width,
4491 .alnum_char = pm_encoding_cp850_alnum_char,
4492 .alpha_char = pm_encoding_cp850_alpha_char,
4493 .isupper_char = pm_encoding_cp850_isupper_char,
4496 [PM_ENCODING_CP852] = {
4498 .char_width = pm_encoding_single_char_width,
4499 .alnum_char = pm_encoding_cp852_alnum_char,
4500 .alpha_char = pm_encoding_cp852_alpha_char,
4501 .isupper_char = pm_encoding_cp852_isupper_char,
4504 [PM_ENCODING_CP855] = {
4506 .char_width = pm_encoding_single_char_width,
4507 .alnum_char = pm_encoding_cp855_alnum_char,
4508 .alpha_char = pm_encoding_cp855_alpha_char,
4509 .isupper_char = pm_encoding_cp855_isupper_char,
4512 [PM_ENCODING_CP949] = {
4514 .char_width = pm_encoding_cp949_char_width,
4515 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4516 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4517 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4520 [PM_ENCODING_CP950] = {
4522 .char_width = pm_encoding_big5_char_width,
4523 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4524 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4525 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4528 [PM_ENCODING_CP951] = {
4530 .char_width = pm_encoding_big5_char_width,
4531 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4532 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4533 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4536 [PM_ENCODING_EMACS_MULE] = {
4537 .name =
"Emacs-Mule",
4538 .char_width = pm_encoding_emacs_mule_char_width,
4539 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4540 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4541 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4544 [PM_ENCODING_EUC_JP_MS] = {
4546 .char_width = pm_encoding_euc_jp_char_width,
4547 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4548 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4549 .isupper_char = pm_encoding_euc_jp_isupper_char,
4552 [PM_ENCODING_EUC_JIS_2004] = {
4553 .name =
"EUC-JIS-2004",
4554 .char_width = pm_encoding_euc_jp_char_width,
4555 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4556 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4557 .isupper_char = pm_encoding_euc_jp_isupper_char,
4560 [PM_ENCODING_EUC_KR] = {
4562 .char_width = pm_encoding_euc_kr_char_width,
4563 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4564 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4565 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4568 [PM_ENCODING_EUC_TW] = {
4570 .char_width = pm_encoding_euc_tw_char_width,
4571 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4572 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4573 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4576 [PM_ENCODING_GB12345] = {
4578 .char_width = pm_encoding_euc_kr_char_width,
4579 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4580 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4581 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4584 [PM_ENCODING_GB18030] = {
4586 .char_width = pm_encoding_gb18030_char_width,
4587 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4588 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4589 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4592 [PM_ENCODING_GB1988] = {
4594 .char_width = pm_encoding_single_char_width,
4595 .alnum_char = pm_encoding_gb1988_alnum_char,
4596 .alpha_char = pm_encoding_gb1988_alpha_char,
4597 .isupper_char = pm_encoding_gb1988_isupper_char,
4600 [PM_ENCODING_GB2312] = {
4602 .char_width = pm_encoding_euc_kr_char_width,
4603 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4604 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4605 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4608 [PM_ENCODING_GBK] = {
4610 .char_width = pm_encoding_gbk_char_width,
4611 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4612 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4613 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4616 [PM_ENCODING_IBM437] = {
4618 .char_width = pm_encoding_single_char_width,
4619 .alnum_char = pm_encoding_ibm437_alnum_char,
4620 .alpha_char = pm_encoding_ibm437_alpha_char,
4621 .isupper_char = pm_encoding_ibm437_isupper_char,
4624 [PM_ENCODING_IBM720] = {
4626 .char_width = pm_encoding_single_char_width,
4627 .alnum_char = pm_encoding_ibm720_alnum_char,
4628 .alpha_char = pm_encoding_ibm720_alpha_char,
4629 .isupper_char = pm_encoding_ibm720_isupper_char,
4632 [PM_ENCODING_IBM737] = {
4634 .char_width = pm_encoding_single_char_width,
4635 .alnum_char = pm_encoding_ibm737_alnum_char,
4636 .alpha_char = pm_encoding_ibm737_alpha_char,
4637 .isupper_char = pm_encoding_ibm737_isupper_char,
4640 [PM_ENCODING_IBM775] = {
4642 .char_width = pm_encoding_single_char_width,
4643 .alnum_char = pm_encoding_ibm775_alnum_char,
4644 .alpha_char = pm_encoding_ibm775_alpha_char,
4645 .isupper_char = pm_encoding_ibm775_isupper_char,
4648 [PM_ENCODING_IBM852] = {
4650 .char_width = pm_encoding_single_char_width,
4651 .alnum_char = pm_encoding_ibm852_alnum_char,
4652 .alpha_char = pm_encoding_ibm852_alpha_char,
4653 .isupper_char = pm_encoding_ibm852_isupper_char,
4656 [PM_ENCODING_IBM855] = {
4658 .char_width = pm_encoding_single_char_width,
4659 .alnum_char = pm_encoding_ibm855_alnum_char,
4660 .alpha_char = pm_encoding_ibm855_alpha_char,
4661 .isupper_char = pm_encoding_ibm855_isupper_char,
4664 [PM_ENCODING_IBM857] = {
4666 .char_width = pm_encoding_single_char_width,
4667 .alnum_char = pm_encoding_ibm857_alnum_char,
4668 .alpha_char = pm_encoding_ibm857_alpha_char,
4669 .isupper_char = pm_encoding_ibm857_isupper_char,
4672 [PM_ENCODING_IBM860] = {
4674 .char_width = pm_encoding_single_char_width,
4675 .alnum_char = pm_encoding_ibm860_alnum_char,
4676 .alpha_char = pm_encoding_ibm860_alpha_char,
4677 .isupper_char = pm_encoding_ibm860_isupper_char,
4680 [PM_ENCODING_IBM861] = {
4682 .char_width = pm_encoding_single_char_width,
4683 .alnum_char = pm_encoding_ibm861_alnum_char,
4684 .alpha_char = pm_encoding_ibm861_alpha_char,
4685 .isupper_char = pm_encoding_ibm861_isupper_char,
4688 [PM_ENCODING_IBM862] = {
4690 .char_width = pm_encoding_single_char_width,
4691 .alnum_char = pm_encoding_ibm862_alnum_char,
4692 .alpha_char = pm_encoding_ibm862_alpha_char,
4693 .isupper_char = pm_encoding_ibm862_isupper_char,
4696 [PM_ENCODING_IBM863] = {
4698 .char_width = pm_encoding_single_char_width,
4699 .alnum_char = pm_encoding_ibm863_alnum_char,
4700 .alpha_char = pm_encoding_ibm863_alpha_char,
4701 .isupper_char = pm_encoding_ibm863_isupper_char,
4704 [PM_ENCODING_IBM864] = {
4706 .char_width = pm_encoding_single_char_width,
4707 .alnum_char = pm_encoding_ibm864_alnum_char,
4708 .alpha_char = pm_encoding_ibm864_alpha_char,
4709 .isupper_char = pm_encoding_ibm864_isupper_char,
4712 [PM_ENCODING_IBM865] = {
4714 .char_width = pm_encoding_single_char_width,
4715 .alnum_char = pm_encoding_ibm865_alnum_char,
4716 .alpha_char = pm_encoding_ibm865_alpha_char,
4717 .isupper_char = pm_encoding_ibm865_isupper_char,
4720 [PM_ENCODING_IBM866] = {
4722 .char_width = pm_encoding_single_char_width,
4723 .alnum_char = pm_encoding_ibm866_alnum_char,
4724 .alpha_char = pm_encoding_ibm866_alpha_char,
4725 .isupper_char = pm_encoding_ibm866_isupper_char,
4728 [PM_ENCODING_IBM869] = {
4730 .char_width = pm_encoding_single_char_width,
4731 .alnum_char = pm_encoding_ibm869_alnum_char,
4732 .alpha_char = pm_encoding_ibm869_alpha_char,
4733 .isupper_char = pm_encoding_ibm869_isupper_char,
4736 [PM_ENCODING_ISO_8859_1] = {
4737 .name =
"ISO-8859-1",
4738 .char_width = pm_encoding_single_char_width,
4739 .alnum_char = pm_encoding_iso_8859_1_alnum_char,
4740 .alpha_char = pm_encoding_iso_8859_1_alpha_char,
4741 .isupper_char = pm_encoding_iso_8859_1_isupper_char,
4744 [PM_ENCODING_ISO_8859_2] = {
4745 .name =
"ISO-8859-2",
4746 .char_width = pm_encoding_single_char_width,
4747 .alnum_char = pm_encoding_iso_8859_2_alnum_char,
4748 .alpha_char = pm_encoding_iso_8859_2_alpha_char,
4749 .isupper_char = pm_encoding_iso_8859_2_isupper_char,
4752 [PM_ENCODING_ISO_8859_3] = {
4753 .name =
"ISO-8859-3",
4754 .char_width = pm_encoding_single_char_width,
4755 .alnum_char = pm_encoding_iso_8859_3_alnum_char,
4756 .alpha_char = pm_encoding_iso_8859_3_alpha_char,
4757 .isupper_char = pm_encoding_iso_8859_3_isupper_char,
4760 [PM_ENCODING_ISO_8859_4] = {
4761 .name =
"ISO-8859-4",
4762 .char_width = pm_encoding_single_char_width,
4763 .alnum_char = pm_encoding_iso_8859_4_alnum_char,
4764 .alpha_char = pm_encoding_iso_8859_4_alpha_char,
4765 .isupper_char = pm_encoding_iso_8859_4_isupper_char,
4768 [PM_ENCODING_ISO_8859_5] = {
4769 .name =
"ISO-8859-5",
4770 .char_width = pm_encoding_single_char_width,
4771 .alnum_char = pm_encoding_iso_8859_5_alnum_char,
4772 .alpha_char = pm_encoding_iso_8859_5_alpha_char,
4773 .isupper_char = pm_encoding_iso_8859_5_isupper_char,
4776 [PM_ENCODING_ISO_8859_6] = {
4777 .name =
"ISO-8859-6",
4778 .char_width = pm_encoding_single_char_width,
4779 .alnum_char = pm_encoding_iso_8859_6_alnum_char,
4780 .alpha_char = pm_encoding_iso_8859_6_alpha_char,
4781 .isupper_char = pm_encoding_iso_8859_6_isupper_char,
4784 [PM_ENCODING_ISO_8859_7] = {
4785 .name =
"ISO-8859-7",
4786 .char_width = pm_encoding_single_char_width,
4787 .alnum_char = pm_encoding_iso_8859_7_alnum_char,
4788 .alpha_char = pm_encoding_iso_8859_7_alpha_char,
4789 .isupper_char = pm_encoding_iso_8859_7_isupper_char,
4792 [PM_ENCODING_ISO_8859_8] = {
4793 .name =
"ISO-8859-8",
4794 .char_width = pm_encoding_single_char_width,
4795 .alnum_char = pm_encoding_iso_8859_8_alnum_char,
4796 .alpha_char = pm_encoding_iso_8859_8_alpha_char,
4797 .isupper_char = pm_encoding_iso_8859_8_isupper_char,
4800 [PM_ENCODING_ISO_8859_9] = {
4801 .name =
"ISO-8859-9",
4802 .char_width = pm_encoding_single_char_width,
4803 .alnum_char = pm_encoding_iso_8859_9_alnum_char,
4804 .alpha_char = pm_encoding_iso_8859_9_alpha_char,
4805 .isupper_char = pm_encoding_iso_8859_9_isupper_char,
4808 [PM_ENCODING_ISO_8859_10] = {
4809 .name =
"ISO-8859-10",
4810 .char_width = pm_encoding_single_char_width,
4811 .alnum_char = pm_encoding_iso_8859_10_alnum_char,
4812 .alpha_char = pm_encoding_iso_8859_10_alpha_char,
4813 .isupper_char = pm_encoding_iso_8859_10_isupper_char,
4816 [PM_ENCODING_ISO_8859_11] = {
4817 .name =
"ISO-8859-11",
4818 .char_width = pm_encoding_single_char_width,
4819 .alnum_char = pm_encoding_iso_8859_11_alnum_char,
4820 .alpha_char = pm_encoding_iso_8859_11_alpha_char,
4821 .isupper_char = pm_encoding_iso_8859_11_isupper_char,
4824 [PM_ENCODING_ISO_8859_13] = {
4825 .name =
"ISO-8859-13",
4826 .char_width = pm_encoding_single_char_width,
4827 .alnum_char = pm_encoding_iso_8859_13_alnum_char,
4828 .alpha_char = pm_encoding_iso_8859_13_alpha_char,
4829 .isupper_char = pm_encoding_iso_8859_13_isupper_char,
4832 [PM_ENCODING_ISO_8859_14] = {
4833 .name =
"ISO-8859-14",
4834 .char_width = pm_encoding_single_char_width,
4835 .alnum_char = pm_encoding_iso_8859_14_alnum_char,
4836 .alpha_char = pm_encoding_iso_8859_14_alpha_char,
4837 .isupper_char = pm_encoding_iso_8859_14_isupper_char,
4840 [PM_ENCODING_ISO_8859_15] = {
4841 .name =
"ISO-8859-15",
4842 .char_width = pm_encoding_single_char_width,
4843 .alnum_char = pm_encoding_iso_8859_15_alnum_char,
4844 .alpha_char = pm_encoding_iso_8859_15_alpha_char,
4845 .isupper_char = pm_encoding_iso_8859_15_isupper_char,
4848 [PM_ENCODING_ISO_8859_16] = {
4849 .name =
"ISO-8859-16",
4850 .char_width = pm_encoding_single_char_width,
4851 .alnum_char = pm_encoding_iso_8859_16_alnum_char,
4852 .alpha_char = pm_encoding_iso_8859_16_alpha_char,
4853 .isupper_char = pm_encoding_iso_8859_16_isupper_char,
4856 [PM_ENCODING_KOI8_R] = {
4858 .char_width = pm_encoding_single_char_width,
4859 .alnum_char = pm_encoding_koi8_r_alnum_char,
4860 .alpha_char = pm_encoding_koi8_r_alpha_char,
4861 .isupper_char = pm_encoding_koi8_r_isupper_char,
4864 [PM_ENCODING_KOI8_U] = {
4866 .char_width = pm_encoding_single_char_width,
4867 .alnum_char = pm_encoding_koi8_u_alnum_char,
4868 .alpha_char = pm_encoding_koi8_u_alpha_char,
4869 .isupper_char = pm_encoding_koi8_u_isupper_char,
4872 [PM_ENCODING_MAC_CENT_EURO] = {
4873 .name =
"macCentEuro",
4874 .char_width = pm_encoding_single_char_width,
4875 .alnum_char = pm_encoding_mac_cent_euro_alnum_char,
4876 .alpha_char = pm_encoding_mac_cent_euro_alpha_char,
4877 .isupper_char = pm_encoding_mac_cent_euro_isupper_char,
4880 [PM_ENCODING_MAC_CROATIAN] = {
4881 .name =
"macCroatian",
4882 .char_width = pm_encoding_single_char_width,
4883 .alnum_char = pm_encoding_mac_croatian_alnum_char,
4884 .alpha_char = pm_encoding_mac_croatian_alpha_char,
4885 .isupper_char = pm_encoding_mac_croatian_isupper_char,
4888 [PM_ENCODING_MAC_CYRILLIC] = {
4889 .name =
"macCyrillic",
4890 .char_width = pm_encoding_single_char_width,
4891 .alnum_char = pm_encoding_mac_cyrillic_alnum_char,
4892 .alpha_char = pm_encoding_mac_cyrillic_alpha_char,
4893 .isupper_char = pm_encoding_mac_cyrillic_isupper_char,
4896 [PM_ENCODING_MAC_GREEK] = {
4898 .char_width = pm_encoding_single_char_width,
4899 .alnum_char = pm_encoding_mac_greek_alnum_char,
4900 .alpha_char = pm_encoding_mac_greek_alpha_char,
4901 .isupper_char = pm_encoding_mac_greek_isupper_char,
4904 [PM_ENCODING_MAC_ICELAND] = {
4905 .name =
"macIceland",
4906 .char_width = pm_encoding_single_char_width,
4907 .alnum_char = pm_encoding_mac_iceland_alnum_char,
4908 .alpha_char = pm_encoding_mac_iceland_alpha_char,
4909 .isupper_char = pm_encoding_mac_iceland_isupper_char,
4912 [PM_ENCODING_MAC_JAPANESE] = {
4913 .name =
"MacJapanese",
4914 .char_width = pm_encoding_shift_jis_char_width,
4915 .alnum_char = pm_encoding_shift_jis_alnum_char,
4916 .alpha_char = pm_encoding_shift_jis_alpha_char,
4917 .isupper_char = pm_encoding_shift_jis_isupper_char,
4920 [PM_ENCODING_MAC_ROMAN] = {
4922 .char_width = pm_encoding_single_char_width,
4923 .alnum_char = pm_encoding_mac_roman_alnum_char,
4924 .alpha_char = pm_encoding_mac_roman_alpha_char,
4925 .isupper_char = pm_encoding_mac_roman_isupper_char,
4928 [PM_ENCODING_MAC_ROMANIA] = {
4929 .name =
"macRomania",
4930 .char_width = pm_encoding_single_char_width,
4931 .alnum_char = pm_encoding_mac_romania_alnum_char,
4932 .alpha_char = pm_encoding_mac_romania_alpha_char,
4933 .isupper_char = pm_encoding_mac_romania_isupper_char,
4936 [PM_ENCODING_MAC_THAI] = {
4938 .char_width = pm_encoding_single_char_width,
4939 .alnum_char = pm_encoding_mac_thai_alnum_char,
4940 .alpha_char = pm_encoding_mac_thai_alpha_char,
4941 .isupper_char = pm_encoding_mac_thai_isupper_char,
4944 [PM_ENCODING_MAC_TURKISH] = {
4945 .name =
"macTurkish",
4946 .char_width = pm_encoding_single_char_width,
4947 .alnum_char = pm_encoding_mac_turkish_alnum_char,
4948 .alpha_char = pm_encoding_mac_turkish_alpha_char,
4949 .isupper_char = pm_encoding_mac_turkish_isupper_char,
4952 [PM_ENCODING_MAC_UKRAINE] = {
4953 .name =
"macUkraine",
4954 .char_width = pm_encoding_single_char_width,
4955 .alnum_char = pm_encoding_mac_ukraine_alnum_char,
4956 .alpha_char = pm_encoding_mac_ukraine_alpha_char,
4957 .isupper_char = pm_encoding_mac_ukraine_isupper_char,
4960 [PM_ENCODING_SHIFT_JIS] = {
4961 .name =
"Shift_JIS",
4962 .char_width = pm_encoding_shift_jis_char_width,
4963 .alnum_char = pm_encoding_shift_jis_alnum_char,
4964 .alpha_char = pm_encoding_shift_jis_alpha_char,
4965 .isupper_char = pm_encoding_shift_jis_isupper_char,
4968 [PM_ENCODING_SJIS_DOCOMO] = {
4969 .name =
"SJIS-DoCoMo",
4970 .char_width = pm_encoding_shift_jis_char_width,
4971 .alnum_char = pm_encoding_shift_jis_alnum_char,
4972 .alpha_char = pm_encoding_shift_jis_alpha_char,
4973 .isupper_char = pm_encoding_shift_jis_isupper_char,
4976 [PM_ENCODING_SJIS_KDDI] = {
4977 .name =
"SJIS-KDDI",
4978 .char_width = pm_encoding_shift_jis_char_width,
4979 .alnum_char = pm_encoding_shift_jis_alnum_char,
4980 .alpha_char = pm_encoding_shift_jis_alpha_char,
4981 .isupper_char = pm_encoding_shift_jis_isupper_char,
4984 [PM_ENCODING_SJIS_SOFTBANK] = {
4985 .name =
"SJIS-SoftBank",
4986 .char_width = pm_encoding_shift_jis_char_width,
4987 .alnum_char = pm_encoding_shift_jis_alnum_char,
4988 .alpha_char = pm_encoding_shift_jis_alpha_char,
4989 .isupper_char = pm_encoding_shift_jis_isupper_char,
4992 [PM_ENCODING_STATELESS_ISO_2022_JP] = {
4993 .name =
"stateless-ISO-2022-JP",
4994 .char_width = pm_encoding_emacs_mule_char_width,
4995 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4996 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4997 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
5000 [PM_ENCODING_STATELESS_ISO_2022_JP_KDDI] = {
5001 .name =
"stateless-ISO-2022-JP-KDDI",
5002 .char_width = pm_encoding_emacs_mule_char_width,
5003 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
5004 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
5005 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
5008 [PM_ENCODING_TIS_620] = {
5010 .char_width = pm_encoding_single_char_width,
5011 .alnum_char = pm_encoding_tis_620_alnum_char,
5012 .alpha_char = pm_encoding_tis_620_alpha_char,
5013 .isupper_char = pm_encoding_tis_620_isupper_char,
5016 [PM_ENCODING_UTF8_MAC] = {
5018 .char_width = pm_encoding_utf_8_char_width,
5019 .alnum_char = pm_encoding_utf_8_alnum_char,
5020 .alpha_char = pm_encoding_utf_8_alpha_char,
5021 .isupper_char = pm_encoding_utf_8_isupper_char,
5024 [PM_ENCODING_UTF8_DOCOMO] = {
5025 .name =
"UTF8-DoCoMo",
5026 .char_width = pm_encoding_utf_8_char_width,
5027 .alnum_char = pm_encoding_utf_8_alnum_char,
5028 .alpha_char = pm_encoding_utf_8_alpha_char,
5029 .isupper_char = pm_encoding_utf_8_isupper_char,
5032 [PM_ENCODING_UTF8_KDDI] = {
5033 .name =
"UTF8-KDDI",
5034 .char_width = pm_encoding_utf_8_char_width,
5035 .alnum_char = pm_encoding_utf_8_alnum_char,
5036 .alpha_char = pm_encoding_utf_8_alpha_char,
5037 .isupper_char = pm_encoding_utf_8_isupper_char,
5040 [PM_ENCODING_UTF8_SOFTBANK] = {
5041 .name =
"UTF8-SoftBank",
5042 .char_width = pm_encoding_utf_8_char_width,
5043 .alnum_char = pm_encoding_utf_8_alnum_char,
5044 .alpha_char = pm_encoding_utf_8_alpha_char,
5045 .isupper_char = pm_encoding_utf_8_isupper_char,
5048 [PM_ENCODING_WINDOWS_1250] = {
5049 .name =
"Windows-1250",
5050 .char_width = pm_encoding_single_char_width,
5051 .alnum_char = pm_encoding_windows_1250_alnum_char,
5052 .alpha_char = pm_encoding_windows_1250_alpha_char,
5053 .isupper_char = pm_encoding_windows_1250_isupper_char,
5056 [PM_ENCODING_WINDOWS_1251] = {
5057 .name =
"Windows-1251",
5058 .char_width = pm_encoding_single_char_width,
5059 .alnum_char = pm_encoding_windows_1251_alnum_char,
5060 .alpha_char = pm_encoding_windows_1251_alpha_char,
5061 .isupper_char = pm_encoding_windows_1251_isupper_char,
5064 [PM_ENCODING_WINDOWS_1252] = {
5065 .name =
"Windows-1252",
5066 .char_width = pm_encoding_single_char_width,
5067 .alnum_char = pm_encoding_windows_1252_alnum_char,
5068 .alpha_char = pm_encoding_windows_1252_alpha_char,
5069 .isupper_char = pm_encoding_windows_1252_isupper_char,
5072 [PM_ENCODING_WINDOWS_1253] = {
5073 .name =
"Windows-1253",
5074 .char_width = pm_encoding_single_char_width,
5075 .alnum_char = pm_encoding_windows_1253_alnum_char,
5076 .alpha_char = pm_encoding_windows_1253_alpha_char,
5077 .isupper_char = pm_encoding_windows_1253_isupper_char,
5080 [PM_ENCODING_WINDOWS_1254] = {
5081 .name =
"Windows-1254",
5082 .char_width = pm_encoding_single_char_width,
5083 .alnum_char = pm_encoding_windows_1254_alnum_char,
5084 .alpha_char = pm_encoding_windows_1254_alpha_char,
5085 .isupper_char = pm_encoding_windows_1254_isupper_char,
5088 [PM_ENCODING_WINDOWS_1255] = {
5089 .name =
"Windows-1255",
5090 .char_width = pm_encoding_single_char_width,
5091 .alnum_char = pm_encoding_windows_1255_alnum_char,
5092 .alpha_char = pm_encoding_windows_1255_alpha_char,
5093 .isupper_char = pm_encoding_windows_1255_isupper_char,
5096 [PM_ENCODING_WINDOWS_1256] = {
5097 .name =
"Windows-1256",
5098 .char_width = pm_encoding_single_char_width,
5099 .alnum_char = pm_encoding_windows_1256_alnum_char,
5100 .alpha_char = pm_encoding_windows_1256_alpha_char,
5101 .isupper_char = pm_encoding_windows_1256_isupper_char,
5104 [PM_ENCODING_WINDOWS_1257] = {
5105 .name =
"Windows-1257",
5106 .char_width = pm_encoding_single_char_width,
5107 .alnum_char = pm_encoding_windows_1257_alnum_char,
5108 .alpha_char = pm_encoding_windows_1257_alpha_char,
5109 .isupper_char = pm_encoding_windows_1257_isupper_char,
5112 [PM_ENCODING_WINDOWS_1258] = {
5113 .name =
"Windows-1258",
5114 .char_width = pm_encoding_single_char_width,
5115 .alnum_char = pm_encoding_windows_1258_alnum_char,
5116 .alpha_char = pm_encoding_windows_1258_alpha_char,
5117 .isupper_char = pm_encoding_windows_1258_isupper_char,
5120 [PM_ENCODING_WINDOWS_874] = {
5121 .name =
"Windows-874",
5122 .char_width = pm_encoding_single_char_width,
5123 .alnum_char = pm_encoding_windows_874_alnum_char,
5124 .alpha_char = pm_encoding_windows_874_alpha_char,
5125 .isupper_char = pm_encoding_windows_874_isupper_char,
5136pm_encoding_find(
const uint8_t *start,
const uint8_t *end) {
5137 size_t width = (size_t) (end - start);
5142 if ((start + 5 <= end) && (pm_strncasecmp(start, (
const uint8_t *)
"UTF-8", 5) == 0)) {
5143#ifndef PRISM_ENCODING_EXCLUDE_FULL
5146 if (width == 9 && (pm_strncasecmp(start + 5, (
const uint8_t *)
"-HFS", 4) == 0)) {
5147 return &pm_encodings[PM_ENCODING_UTF8_MAC];
5152 return PM_ENCODING_UTF_8_ENTRY;
5157#define ENCODING1(name, encoding) if (width == sizeof(name) - 1 && pm_strncasecmp(start, (const uint8_t *) name, width) == 0) return &pm_encodings[encoding];
5158#define ENCODING2(name1, name2, encoding) ENCODING1(name1, encoding) ENCODING1(name2, encoding)
5163 ENCODING1(
"ASCII", PM_ENCODING_US_ASCII);
5164 ENCODING1(
"ASCII-8BIT", PM_ENCODING_ASCII_8BIT);
5165 ENCODING1(
"ANSI_X3.4-1968", PM_ENCODING_US_ASCII);
5168 ENCODING1(
"BINARY", PM_ENCODING_ASCII_8BIT);
5169#ifndef PRISM_ENCODING_EXCLUDE_FULL
5170 ENCODING1(
"Big5", PM_ENCODING_BIG5);
5171 ENCODING2(
"Big5-HKSCS",
"Big5-HKSCS:2008", PM_ENCODING_BIG5_HKSCS);
5172 ENCODING1(
"Big5-UAO", PM_ENCODING_BIG5_UAO);
5176 ENCODING1(
"CP65001", PM_ENCODING_UTF_8);
5177 ENCODING2(
"CP932",
"csWindows31J", PM_ENCODING_WINDOWS_31J);
5178#ifndef PRISM_ENCODING_EXCLUDE_FULL
5179 ENCODING1(
"CESU-8", PM_ENCODING_CESU_8);
5180 ENCODING1(
"CP437", PM_ENCODING_IBM437);
5181 ENCODING1(
"CP720", PM_ENCODING_IBM720);
5182 ENCODING1(
"CP737", PM_ENCODING_IBM737);
5183 ENCODING1(
"CP775", PM_ENCODING_IBM775);
5184 ENCODING1(
"CP850", PM_ENCODING_CP850);
5185 ENCODING1(
"CP852", PM_ENCODING_CP852);
5186 ENCODING1(
"CP855", PM_ENCODING_CP855);
5187 ENCODING1(
"CP857", PM_ENCODING_IBM857);
5188 ENCODING1(
"CP860", PM_ENCODING_IBM860);
5189 ENCODING1(
"CP861", PM_ENCODING_IBM861);
5190 ENCODING1(
"CP862", PM_ENCODING_IBM862);
5191 ENCODING1(
"CP864", PM_ENCODING_IBM864);
5192 ENCODING1(
"CP865", PM_ENCODING_IBM865);
5193 ENCODING1(
"CP866", PM_ENCODING_IBM866);
5194 ENCODING1(
"CP869", PM_ENCODING_IBM869);
5195 ENCODING1(
"CP874", PM_ENCODING_WINDOWS_874);
5196 ENCODING1(
"CP878", PM_ENCODING_KOI8_R);
5197 ENCODING1(
"CP863", PM_ENCODING_IBM863);
5198 ENCODING1(
"CP936", PM_ENCODING_GBK);
5199 ENCODING1(
"CP949", PM_ENCODING_CP949);
5200 ENCODING1(
"CP950", PM_ENCODING_CP950);
5201 ENCODING1(
"CP951", PM_ENCODING_CP951);
5202 ENCODING1(
"CP1250", PM_ENCODING_WINDOWS_1250);
5203 ENCODING1(
"CP1251", PM_ENCODING_WINDOWS_1251);
5204 ENCODING1(
"CP1252", PM_ENCODING_WINDOWS_1252);
5205 ENCODING1(
"CP1253", PM_ENCODING_WINDOWS_1253);
5206 ENCODING1(
"CP1254", PM_ENCODING_WINDOWS_1254);
5207 ENCODING1(
"CP1255", PM_ENCODING_WINDOWS_1255);
5208 ENCODING1(
"CP1256", PM_ENCODING_WINDOWS_1256);
5209 ENCODING1(
"CP1257", PM_ENCODING_WINDOWS_1257);
5210 ENCODING1(
"CP1258", PM_ENCODING_WINDOWS_1258);
5211 ENCODING1(
"CP51932", PM_ENCODING_CP51932);
5215 ENCODING2(
"EUC-JP",
"eucJP", PM_ENCODING_EUC_JP);
5216#ifndef PRISM_ENCODING_EXCLUDE_FULL
5217 ENCODING2(
"eucJP-ms",
"euc-jp-ms", PM_ENCODING_EUC_JP_MS);
5218 ENCODING2(
"EUC-JIS-2004",
"EUC-JISX0213", PM_ENCODING_EUC_JIS_2004);
5219 ENCODING2(
"EUC-KR",
"eucKR", PM_ENCODING_EUC_KR);
5220 ENCODING2(
"EUC-CN",
"eucCN", PM_ENCODING_GB2312);
5221 ENCODING2(
"EUC-TW",
"eucTW", PM_ENCODING_EUC_TW);
5222 ENCODING1(
"Emacs-Mule", PM_ENCODING_EMACS_MULE);
5226#ifndef PRISM_ENCODING_EXCLUDE_FULL
5227 ENCODING1(
"GBK", PM_ENCODING_GBK);
5228 ENCODING1(
"GB12345", PM_ENCODING_GB12345);
5229 ENCODING1(
"GB18030", PM_ENCODING_GB18030);
5230 ENCODING1(
"GB1988", PM_ENCODING_GB1988);
5231 ENCODING1(
"GB2312", PM_ENCODING_GB2312);
5235#ifndef PRISM_ENCODING_EXCLUDE_FULL
5236 ENCODING1(
"IBM437", PM_ENCODING_IBM437);
5237 ENCODING1(
"IBM720", PM_ENCODING_IBM720);
5238 ENCODING1(
"IBM737", PM_ENCODING_IBM737);
5239 ENCODING1(
"IBM775", PM_ENCODING_IBM775);
5240 ENCODING1(
"IBM850", PM_ENCODING_CP850);
5241 ENCODING1(
"IBM852", PM_ENCODING_IBM852);
5242 ENCODING1(
"IBM855", PM_ENCODING_IBM855);
5243 ENCODING1(
"IBM857", PM_ENCODING_IBM857);
5244 ENCODING1(
"IBM860", PM_ENCODING_IBM860);
5245 ENCODING1(
"IBM861", PM_ENCODING_IBM861);
5246 ENCODING1(
"IBM862", PM_ENCODING_IBM862);
5247 ENCODING1(
"IBM863", PM_ENCODING_IBM863);
5248 ENCODING1(
"IBM864", PM_ENCODING_IBM864);
5249 ENCODING1(
"IBM865", PM_ENCODING_IBM865);
5250 ENCODING1(
"IBM866", PM_ENCODING_IBM866);
5251 ENCODING1(
"IBM869", PM_ENCODING_IBM869);
5252 ENCODING2(
"ISO-8859-1",
"ISO8859-1", PM_ENCODING_ISO_8859_1);
5253 ENCODING2(
"ISO-8859-2",
"ISO8859-2", PM_ENCODING_ISO_8859_2);
5254 ENCODING2(
"ISO-8859-3",
"ISO8859-3", PM_ENCODING_ISO_8859_3);
5255 ENCODING2(
"ISO-8859-4",
"ISO8859-4", PM_ENCODING_ISO_8859_4);
5256 ENCODING2(
"ISO-8859-5",
"ISO8859-5", PM_ENCODING_ISO_8859_5);
5257 ENCODING2(
"ISO-8859-6",
"ISO8859-6", PM_ENCODING_ISO_8859_6);
5258 ENCODING2(
"ISO-8859-7",
"ISO8859-7", PM_ENCODING_ISO_8859_7);
5259 ENCODING2(
"ISO-8859-8",
"ISO8859-8", PM_ENCODING_ISO_8859_8);
5260 ENCODING2(
"ISO-8859-9",
"ISO8859-9", PM_ENCODING_ISO_8859_9);
5261 ENCODING2(
"ISO-8859-10",
"ISO8859-10", PM_ENCODING_ISO_8859_10);
5262 ENCODING2(
"ISO-8859-11",
"ISO8859-11", PM_ENCODING_ISO_8859_11);
5263 ENCODING2(
"ISO-8859-13",
"ISO8859-13", PM_ENCODING_ISO_8859_13);
5264 ENCODING2(
"ISO-8859-14",
"ISO8859-14", PM_ENCODING_ISO_8859_14);
5265 ENCODING2(
"ISO-8859-15",
"ISO8859-15", PM_ENCODING_ISO_8859_15);
5266 ENCODING2(
"ISO-8859-16",
"ISO8859-16", PM_ENCODING_ISO_8859_16);
5270#ifndef PRISM_ENCODING_EXCLUDE_FULL
5271 ENCODING1(
"KOI8-R", PM_ENCODING_KOI8_R);
5272 ENCODING1(
"KOI8-U", PM_ENCODING_KOI8_U);
5276#ifndef PRISM_ENCODING_EXCLUDE_FULL
5277 ENCODING1(
"macCentEuro", PM_ENCODING_MAC_CENT_EURO);
5278 ENCODING1(
"macCroatian", PM_ENCODING_MAC_CROATIAN);
5279 ENCODING1(
"macCyrillic", PM_ENCODING_MAC_CYRILLIC);
5280 ENCODING1(
"macGreek", PM_ENCODING_MAC_GREEK);
5281 ENCODING1(
"macIceland", PM_ENCODING_MAC_ICELAND);
5282 ENCODING1(
"MacJapanese", PM_ENCODING_MAC_JAPANESE);
5283 ENCODING1(
"MacJapan", PM_ENCODING_MAC_JAPANESE);
5284 ENCODING1(
"macRoman", PM_ENCODING_MAC_ROMAN);
5285 ENCODING1(
"macRomania", PM_ENCODING_MAC_ROMANIA);
5286 ENCODING1(
"macThai", PM_ENCODING_MAC_THAI);
5287 ENCODING1(
"macTurkish", PM_ENCODING_MAC_TURKISH);
5288 ENCODING1(
"macUkraine", PM_ENCODING_MAC_UKRAINE);
5292 ENCODING1(
"PCK", PM_ENCODING_WINDOWS_31J);
5295 ENCODING1(
"SJIS", PM_ENCODING_WINDOWS_31J);
5296#ifndef PRISM_ENCODING_EXCLUDE_FULL
5297 ENCODING1(
"Shift_JIS", PM_ENCODING_SHIFT_JIS);
5298 ENCODING1(
"SJIS-DoCoMo", PM_ENCODING_SJIS_DOCOMO);
5299 ENCODING1(
"SJIS-KDDI", PM_ENCODING_SJIS_KDDI);
5300 ENCODING1(
"SJIS-SoftBank", PM_ENCODING_SJIS_SOFTBANK);
5301 ENCODING1(
"stateless-ISO-2022-JP", PM_ENCODING_STATELESS_ISO_2022_JP);
5302 ENCODING1(
"stateless-ISO-2022-JP-KDDI", PM_ENCODING_STATELESS_ISO_2022_JP_KDDI);
5306#ifndef PRISM_ENCODING_EXCLUDE_FULL
5307 ENCODING1(
"TIS-620", PM_ENCODING_TIS_620);
5311 ENCODING1(
"US-ASCII", PM_ENCODING_US_ASCII);
5312#ifndef PRISM_ENCODING_EXCLUDE_FULL
5313 ENCODING2(
"UTF8-MAC",
"UTF-8-HFS", PM_ENCODING_UTF8_MAC);
5314 ENCODING1(
"UTF8-DoCoMo", PM_ENCODING_UTF8_DOCOMO);
5315 ENCODING1(
"UTF8-KDDI", PM_ENCODING_UTF8_KDDI);
5316 ENCODING1(
"UTF8-SoftBank", PM_ENCODING_UTF8_SOFTBANK);
5320 ENCODING1(
"Windows-31J", PM_ENCODING_WINDOWS_31J);
5321#ifndef PRISM_ENCODING_EXCLUDE_FULL
5322 ENCODING1(
"Windows-874", PM_ENCODING_WINDOWS_874);
5323 ENCODING1(
"Windows-1250", PM_ENCODING_WINDOWS_1250);
5324 ENCODING1(
"Windows-1251", PM_ENCODING_WINDOWS_1251);
5325 ENCODING1(
"Windows-1252", PM_ENCODING_WINDOWS_1252);
5326 ENCODING1(
"Windows-1253", PM_ENCODING_WINDOWS_1253);
5327 ENCODING1(
"Windows-1254", PM_ENCODING_WINDOWS_1254);
5328 ENCODING1(
"Windows-1255", PM_ENCODING_WINDOWS_1255);
5329 ENCODING1(
"Windows-1256", PM_ENCODING_WINDOWS_1256);
5330 ENCODING1(
"Windows-1257", PM_ENCODING_WINDOWS_1257);
5331 ENCODING1(
"Windows-1258", PM_ENCODING_WINDOWS_1258);
5335 ENCODING1(
"646", PM_ENCODING_US_ASCII);
VALUE type(ANYARGS)
ANYARGS-ed function type.
#define PRISM_UNUSED
GCC will warn if you specify a function or parameter that is unused at runtime.