3typedef uint32_t pm_unicode_codepoint_t;
5#define UNICODE_ALPHA_CODEPOINTS_LENGTH 1508
6static const pm_unicode_codepoint_t unicode_alpha_codepoints[UNICODE_ALPHA_CODEPOINTS_LENGTH] = {
763#define UNICODE_ALNUM_CODEPOINTS_LENGTH 1598
764static const pm_unicode_codepoint_t unicode_alnum_codepoints[UNICODE_ALNUM_CODEPOINTS_LENGTH] = {
1566#define UNICODE_ISUPPER_CODEPOINTS_LENGTH 1320
1567static const pm_unicode_codepoint_t unicode_isupper_codepoints[UNICODE_ISUPPER_CODEPOINTS_LENGTH] = {
2237const uint8_t pm_encoding_unicode_table[256] = {
2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2242 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2243 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2244 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2245 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2246 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2250 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2251 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2252 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
2253 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2254 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
2262pm_unicode_codepoint_match(pm_unicode_codepoint_t codepoint,
const pm_unicode_codepoint_t *codepoints,
size_t size) {
2266 while (start < end) {
2267 size_t middle = start + (end - start) / 2;
2268 if ((middle % 2) != 0) middle--;
2270 if (codepoint >= codepoints[middle] && codepoint <= codepoints[middle + 1]) {
2274 if (codepoint < codepoints[middle]) {
2307static const uint8_t pm_utf_8_dfa[] = {
2308 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,
2309 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,
2310 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,
2311 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,
2312 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,
2313 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,
2314 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,
2315 0xa,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x4,0x3,0x3,
2316 0xb,0x6,0x6,0x6,0x5,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,
2317 0x0,0x1,0x2,0x3,0x5,0x8,0x7,0x1,0x1,0x1,0x4,0x6,0x1,0x1,0x1,0x1,
2318 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,
2319 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,
2320 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,
2321 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,
2329static pm_unicode_codepoint_t
2330pm_utf_8_codepoint(
const uint8_t *b, ptrdiff_t n,
size_t *width) {
2333 size_t maximum = (n > 4) ? 4 : ((size_t) n);
2337 for (
size_t index = 0; index < maximum; index++) {
2338 uint32_t
byte = b[index];
2339 uint32_t
type = pm_utf_8_dfa[byte];
2341 codepoint = (state != 0) ?
2342 (
byte & 0x3fu) | (codepoint << 6) :
2343 (0xffu >>
type) & (byte);
2345 state = pm_utf_8_dfa[256 + (state * 16) +
type];
2348 return (pm_unicode_codepoint_t) codepoint;
2360pm_encoding_utf_8_char_width(
const uint8_t *b, ptrdiff_t n) {
2363 size_t maximum = (n > 4) ? 4 : ((size_t) n);
2366 for (
size_t index = 0; index < maximum; index++) {
2367 state = pm_utf_8_dfa[256 + (state * 16) + pm_utf_8_dfa[b[index]]];
2368 if (state == 0)
return index + 1;
2379pm_encoding_utf_8_alpha_char(
const uint8_t *b, ptrdiff_t n) {
2389 pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2391 if (codepoint <= 0xFF) {
2394 return pm_unicode_codepoint_match(codepoint, unicode_alpha_codepoints, UNICODE_ALPHA_CODEPOINTS_LENGTH) ? width : 0;
2403pm_encoding_utf_8_alnum_char(
const uint8_t *b, ptrdiff_t n) {
2413 pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2415 if (codepoint <= 0xFF) {
2418 return pm_unicode_codepoint_match(codepoint, unicode_alnum_codepoints, UNICODE_ALNUM_CODEPOINTS_LENGTH) ? width : 0;
2427pm_encoding_utf_8_isupper_char(
const uint8_t *b, ptrdiff_t n) {
2437 pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2439 if (codepoint <= 0xFF) {
2442 return pm_unicode_codepoint_match(codepoint, unicode_isupper_codepoints, UNICODE_ISUPPER_CODEPOINTS_LENGTH) ? true :
false;
2446#ifndef PRISM_ENCODING_EXCLUDE_FULL
2448static pm_unicode_codepoint_t
2449pm_cesu_8_codepoint(
const uint8_t *b, ptrdiff_t n,
size_t *width) {
2451 if ((n > 0) && (b[0] < 0x80)) {
2453 return (pm_unicode_codepoint_t) b[0];
2456 if (n > 1 && b[0] >= 0xC2 && b[0] <= 0xDF && b[1] >= 0x80 && b[1] <= 0xBF) {
2460 return (pm_unicode_codepoint_t) (((b[0] & 0x1F) << 6) | (b[1] & 0x3F));
2463 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) {
2467 return (pm_unicode_codepoint_t) (0x10000 + (((b[1] & 0xF) << 16) | ((b[2] & 0x3F) << 10) | ((b[4] & 0xF) << 6) | (b[5] & 0x3F)));
2470 if (n > 2 && b[0] == 0xED && b[1] >= 0xA0 && b[1] <= 0xBF) {
2474 return (pm_unicode_codepoint_t) (0x10000 + (((b[0] & 0x03) << 16) | ((b[1] & 0x3F) << 10) | (b[2] & 0x3F)));
2477 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) {
2481 return (pm_unicode_codepoint_t) (((b[0] & 0xF) << 12) | ((b[1] & 0x3F) << 6) | (b[2] & 0x3F));
2489pm_encoding_cesu_8_char_width(
const uint8_t *b, ptrdiff_t n) {
2495 pm_cesu_8_codepoint(b, n, &width);
2500pm_encoding_cesu_8_alpha_char(
const uint8_t *b, ptrdiff_t n) {
2510 pm_unicode_codepoint_t codepoint = pm_cesu_8_codepoint(b, n, &width);
2512 if (codepoint <= 0xFF) {
2515 return pm_unicode_codepoint_match(codepoint, unicode_alpha_codepoints, UNICODE_ALPHA_CODEPOINTS_LENGTH) ? width : 0;
2520pm_encoding_cesu_8_alnum_char(
const uint8_t *b, ptrdiff_t n) {
2530 pm_unicode_codepoint_t codepoint = pm_cesu_8_codepoint(b, n, &width);
2532 if (codepoint <= 0xFF) {
2535 return pm_unicode_codepoint_match(codepoint, unicode_alnum_codepoints, UNICODE_ALNUM_CODEPOINTS_LENGTH) ? width : 0;
2540pm_encoding_cesu_8_isupper_char(
const uint8_t *b, ptrdiff_t n) {
2550 pm_unicode_codepoint_t codepoint = pm_cesu_8_codepoint(b, n, &width);
2552 if (codepoint <= 0xFF) {
2555 return pm_unicode_codepoint_match(codepoint, unicode_isupper_codepoints, UNICODE_ISUPPER_CODEPOINTS_LENGTH) ? true :
false;
2561#undef UNICODE_ALPHA_CODEPOINTS_LENGTH
2562#undef UNICODE_ALNUM_CODEPOINTS_LENGTH
2563#undef UNICODE_ISUPPER_CODEPOINTS_LENGTH
2569static const uint8_t pm_encoding_ascii_table[256] = {
2571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2574 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2575 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2576 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2577 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2578 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2589#ifndef PRISM_ENCODING_EXCLUDE_FULL
2595static const uint8_t pm_encoding_cp850_table[256] = {
2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2600 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2601 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2602 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2603 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2604 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2619static const uint8_t pm_encoding_cp852_table[256] = {
2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2624 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2625 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2626 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2627 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2628 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2643static const uint8_t pm_encoding_cp855_table[256] = {
2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2649 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2650 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2651 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2652 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2667static const uint8_t pm_encoding_gb1988_table[256] = {
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2673 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2674 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2675 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2676 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2691static const uint8_t pm_encoding_ibm437_table[256] = {
2693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2697 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2698 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2699 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2700 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2715static const uint8_t pm_encoding_ibm720_table[256] = {
2717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2721 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2722 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2723 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2724 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2739static const uint8_t pm_encoding_ibm737_table[256] = {
2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2744 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2745 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2746 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2747 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2748 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2763static const uint8_t pm_encoding_ibm775_table[256] = {
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2769 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2770 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2771 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2772 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2787static const uint8_t pm_encoding_ibm852_table[256] = {
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2793 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2794 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2795 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2796 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2811static const uint8_t pm_encoding_ibm855_table[256] = {
2813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2816 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2817 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2818 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2819 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2820 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2835static const uint8_t pm_encoding_ibm857_table[256] = {
2837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2840 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2841 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2842 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2843 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2844 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2859static const uint8_t pm_encoding_ibm860_table[256] = {
2861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2865 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2866 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2867 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2868 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2883static const uint8_t pm_encoding_ibm861_table[256] = {
2885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2888 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2889 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2890 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2891 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2892 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2907static const uint8_t pm_encoding_ibm862_table[256] = {
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2912 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2913 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2914 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2915 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2916 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2931static const uint8_t pm_encoding_ibm863_table[256] = {
2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2936 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2937 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2938 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2939 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2940 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2955static const uint8_t pm_encoding_ibm864_table[256] = {
2957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2961 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2962 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2963 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2964 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
2979static const uint8_t pm_encoding_ibm865_table[256] = {
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2984 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2985 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2986 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2987 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2988 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2993 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3003static const uint8_t pm_encoding_ibm866_table[256] = {
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3009 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3010 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3011 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3012 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3027static const uint8_t pm_encoding_ibm869_table[256] = {
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3032 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3033 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3034 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3035 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3036 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3051static const uint8_t pm_encoding_iso_8859_1_table[256] = {
3053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3055 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3056 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3057 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3058 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3059 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3060 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3064 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3065 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3066 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3067 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3068 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3075static const uint8_t pm_encoding_iso_8859_2_table[256] = {
3077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3080 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3081 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3082 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3083 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3084 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3087 0, 7, 0, 7, 0, 7, 7, 0, 0, 7, 7, 7, 7, 0, 7, 7,
3088 0, 3, 0, 3, 0, 3, 3, 0, 0, 3, 3, 3, 3, 0, 3, 3,
3089 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3090 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3091 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3092 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3099static const uint8_t pm_encoding_iso_8859_3_table[256] = {
3101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3104 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3105 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3106 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3107 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3108 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3111 0, 7, 0, 0, 0, 0, 7, 0, 0, 7, 7, 7, 7, 0, 0, 7,
3112 0, 3, 0, 0, 0, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 3,
3113 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3114 0, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3115 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3116 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3123static const uint8_t pm_encoding_iso_8859_4_table[256] = {
3125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3128 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3129 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3130 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3131 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3132 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3135 0, 7, 3, 7, 0, 7, 7, 0, 0, 7, 7, 7, 7, 0, 7, 0,
3136 0, 3, 0, 3, 0, 3, 3, 0, 0, 3, 3, 3, 3, 7, 3, 3,
3137 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3138 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3139 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3140 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3147static const uint8_t pm_encoding_iso_8859_5_table[256] = {
3149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3153 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3154 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3155 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3156 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3159 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7,
3160 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3161 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3162 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3163 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3164 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3,
3171static const uint8_t pm_encoding_iso_8859_6_table[256] = {
3173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3177 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3178 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3179 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3180 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3185 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3186 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3187 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3188 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3195static const uint8_t pm_encoding_iso_8859_7_table[256] = {
3197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3201 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3202 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3203 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3204 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3208 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 0, 7, 0, 7, 7,
3209 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3210 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3,
3211 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3212 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
3219static const uint8_t pm_encoding_iso_8859_8_table[256] = {
3221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3224 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3225 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3226 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3227 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3228 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3232 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3235 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3236 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3243static const uint8_t pm_encoding_iso_8859_9_table[256] = {
3245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3248 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3249 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3250 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3251 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3252 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3256 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3257 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3258 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3259 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3260 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3267static const uint8_t pm_encoding_iso_8859_10_table[256] = {
3269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3272 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3273 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3274 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3275 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3276 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3279 0, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 0, 7, 7,
3280 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 0, 3, 3,
3281 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3282 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3283 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3284 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3291static const uint8_t pm_encoding_iso_8859_11_table[256] = {
3293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3296 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3297 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3298 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3299 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3300 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3303 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3304 3, 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, 3, 3, 3, 3, 3,
3306 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3,
3307 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3308 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
3315static const uint8_t pm_encoding_iso_8859_13_table[256] = {
3317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3321 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3322 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3323 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3324 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3327 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7,
3328 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 3, 0, 0, 0, 0, 3,
3329 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3330 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3331 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3332 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3339static const uint8_t pm_encoding_iso_8859_14_table[256] = {
3341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3345 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3346 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3347 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3348 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3351 0, 7, 3, 0, 7, 3, 7, 0, 7, 0, 7, 3, 7, 0, 0, 7,
3352 7, 3, 7, 3, 7, 3, 0, 7, 3, 3, 3, 7, 3, 7, 3, 3,
3353 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3354 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3355 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3356 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3363static const uint8_t pm_encoding_iso_8859_15_table[256] = {
3365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3368 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3369 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3370 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3371 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3372 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3375 0, 0, 0, 0, 0, 0, 7, 0, 3, 0, 3, 0, 0, 0, 0, 0,
3376 0, 0, 0, 0, 7, 3, 0, 0, 3, 0, 3, 0, 7, 3, 7, 0,
3377 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3378 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3379 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3380 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3387static const uint8_t pm_encoding_iso_8859_16_table[256] = {
3389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3393 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3394 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3395 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3396 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3399 0, 7, 3, 7, 0, 0, 7, 0, 3, 0, 7, 0, 7, 0, 3, 7,
3400 0, 0, 7, 3, 7, 0, 0, 0, 3, 3, 3, 0, 7, 3, 7, 3,
3401 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3402 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3403 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3404 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3411static const uint8_t pm_encoding_koi8_r_table[256] = {
3413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3416 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3417 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3418 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3419 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3420 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3423 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3424 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3425 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3426 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3427 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3428 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3435static const uint8_t pm_encoding_koi8_u_table[256] = {
3437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3440 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3441 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3442 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3443 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3444 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3447 0, 0, 0, 3, 3, 0, 3, 3, 0, 0, 0, 0, 0, 3, 0, 0,
3448 0, 0, 0, 7, 7, 0, 7, 7, 0, 0, 0, 0, 0, 7, 0, 0,
3449 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3450 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3451 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3452 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3459static const uint8_t pm_encoding_mac_cent_euro_table[256] = {
3461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3464 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3465 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3466 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3467 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3468 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3483static const uint8_t pm_encoding_mac_croatian_table[256] = {
3485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3488 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3489 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3490 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3491 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3492 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3507static const uint8_t pm_encoding_mac_cyrillic_table[256] = {
3509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3513 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3514 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3515 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3516 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3531static const uint8_t pm_encoding_mac_greek_table[256] = {
3533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3536 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3537 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3538 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3539 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3540 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3555static const uint8_t pm_encoding_mac_iceland_table[256] = {
3557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3560 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3561 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3562 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3563 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3564 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3579static const uint8_t pm_encoding_mac_roman_table[256] = {
3581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3584 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3585 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3586 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3587 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3588 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3603static const uint8_t pm_encoding_mac_romania_table[256] = {
3605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3608 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3609 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3610 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3611 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3612 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3627static const uint8_t pm_encoding_mac_thai_table[256] = {
3629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3632 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3633 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3634 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3635 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3636 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3651static const uint8_t pm_encoding_tis_620_table[256] = {
3653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3657 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3658 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3659 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3660 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3663 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3664 3, 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, 3, 3, 3, 3, 3,
3666 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3,
3667 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3668 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
3675static const uint8_t pm_encoding_mac_turkish_table[256] = {
3677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3680 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3681 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3682 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3683 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3684 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3699static const uint8_t pm_encoding_mac_ukraine_table[256] = {
3701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3704 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3705 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3706 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3707 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3708 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3723static const uint8_t pm_encoding_windows_1250_table[256] = {
3725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3728 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3729 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3730 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3731 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3732 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7,
3734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 3, 3, 3,
3735 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7,
3736 0, 0, 0, 3, 0, 3, 0, 0, 0, 3, 3, 0, 7, 0, 3, 3,
3737 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3738 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3739 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3740 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3747static const uint8_t pm_encoding_windows_1251_table[256] = {
3749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3752 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3753 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3754 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3755 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3756 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3757 7, 7, 0, 3, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7,
3758 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 3, 3, 3,
3759 0, 7, 3, 7, 0, 7, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7,
3760 0, 0, 7, 3, 3, 3, 0, 0, 3, 0, 3, 0, 3, 7, 3, 3,
3761 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3762 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3763 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3764 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3771static const uint8_t pm_encoding_windows_1252_table[256] = {
3773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3776 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3777 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3778 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3779 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3780 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 7, 0,
3782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 3, 7,
3783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3784 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3785 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3786 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3787 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3788 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3795static const uint8_t pm_encoding_windows_1253_table[256] = {
3797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3800 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3801 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3802 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3803 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3804 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3807 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3808 0, 0, 0, 0, 0, 3, 7, 0, 7, 7, 7, 0, 7, 0, 7, 7,
3809 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3810 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3,
3811 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3812 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
3819static const uint8_t pm_encoding_windows_1254_table[256] = {
3821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3824 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3825 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3826 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3827 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3828 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0,
3830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 7,
3831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3832 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3833 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3834 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3835 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3836 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3843static const uint8_t pm_encoding_windows_1255_table[256] = {
3845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3848 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3849 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3850 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3851 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3852 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3856 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3859 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3860 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3867static const uint8_t pm_encoding_windows_1256_table[256] = {
3869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3873 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3874 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3875 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3876 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3881 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3882 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3883 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3884 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3891static const uint8_t pm_encoding_windows_1257_table[256] = {
3893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3896 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3897 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3898 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3899 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3900 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3903 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7,
3904 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 3, 0, 0, 0, 0, 3,
3905 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3906 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3907 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3908 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3915static const uint8_t pm_encoding_windows_1258_table[256] = {
3917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3920 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3921 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3922 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3923 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3924 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3939static const uint8_t pm_encoding_windows_874_table[256] = {
3941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3944 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3945 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3946 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3947 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3948 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
3959#define PRISM_ENCODING_TABLE(name) \
3960 static size_t pm_encoding_ ##name ## _alpha_char(const uint8_t *b, ptrdiff_t n) { \
3961 return ((n > 0) && (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_ALPHABETIC_BIT)); \
3963 static size_t pm_encoding_ ##name ## _alnum_char(const uint8_t *b, ptrdiff_t n) { \
3964 return ((n > 0) && (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_ALPHANUMERIC_BIT)) ? 1 : 0; \
3966 static bool pm_encoding_ ##name ## _isupper_char(const uint8_t *b, ptrdiff_t n) { \
3967 return ((n > 0) && (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_UPPERCASE_BIT)); \
3970PRISM_ENCODING_TABLE(cp850)
3971PRISM_ENCODING_TABLE(cp852)
3972PRISM_ENCODING_TABLE(cp855)
3973PRISM_ENCODING_TABLE(gb1988)
3974PRISM_ENCODING_TABLE(ibm437)
3975PRISM_ENCODING_TABLE(ibm720)
3976PRISM_ENCODING_TABLE(ibm737)
3977PRISM_ENCODING_TABLE(ibm775)
3978PRISM_ENCODING_TABLE(ibm852)
3979PRISM_ENCODING_TABLE(ibm855)
3980PRISM_ENCODING_TABLE(ibm857)
3981PRISM_ENCODING_TABLE(ibm860)
3982PRISM_ENCODING_TABLE(ibm861)
3983PRISM_ENCODING_TABLE(ibm862)
3984PRISM_ENCODING_TABLE(ibm863)
3985PRISM_ENCODING_TABLE(ibm864)
3986PRISM_ENCODING_TABLE(ibm865)
3987PRISM_ENCODING_TABLE(ibm866)
3988PRISM_ENCODING_TABLE(ibm869)
3989PRISM_ENCODING_TABLE(iso_8859_1)
3990PRISM_ENCODING_TABLE(iso_8859_2)
3991PRISM_ENCODING_TABLE(iso_8859_3)
3992PRISM_ENCODING_TABLE(iso_8859_4)
3993PRISM_ENCODING_TABLE(iso_8859_5)
3994PRISM_ENCODING_TABLE(iso_8859_6)
3995PRISM_ENCODING_TABLE(iso_8859_7)
3996PRISM_ENCODING_TABLE(iso_8859_8)
3997PRISM_ENCODING_TABLE(iso_8859_9)
3998PRISM_ENCODING_TABLE(iso_8859_10)
3999PRISM_ENCODING_TABLE(iso_8859_11)
4000PRISM_ENCODING_TABLE(iso_8859_13)
4001PRISM_ENCODING_TABLE(iso_8859_14)
4002PRISM_ENCODING_TABLE(iso_8859_15)
4003PRISM_ENCODING_TABLE(iso_8859_16)
4004PRISM_ENCODING_TABLE(koi8_r)
4005PRISM_ENCODING_TABLE(koi8_u)
4006PRISM_ENCODING_TABLE(mac_cent_euro)
4007PRISM_ENCODING_TABLE(mac_croatian)
4008PRISM_ENCODING_TABLE(mac_cyrillic)
4009PRISM_ENCODING_TABLE(mac_greek)
4010PRISM_ENCODING_TABLE(mac_iceland)
4011PRISM_ENCODING_TABLE(mac_roman)
4012PRISM_ENCODING_TABLE(mac_romania)
4013PRISM_ENCODING_TABLE(mac_thai)
4014PRISM_ENCODING_TABLE(mac_turkish)
4015PRISM_ENCODING_TABLE(mac_ukraine)
4016PRISM_ENCODING_TABLE(tis_620)
4017PRISM_ENCODING_TABLE(windows_1250)
4018PRISM_ENCODING_TABLE(windows_1251)
4019PRISM_ENCODING_TABLE(windows_1252)
4020PRISM_ENCODING_TABLE(windows_1253)
4021PRISM_ENCODING_TABLE(windows_1254)
4022PRISM_ENCODING_TABLE(windows_1255)
4023PRISM_ENCODING_TABLE(windows_1256)
4024PRISM_ENCODING_TABLE(windows_1257)
4025PRISM_ENCODING_TABLE(windows_1258)
4026PRISM_ENCODING_TABLE(windows_874)
4028#undef PRISM_ENCODING_TABLE
4036pm_encoding_ascii_char_width(
const uint8_t *b, ptrdiff_t n) {
4037 return ((n > 0) && (*b < 0x80)) ? 1 : 0;
4045pm_encoding_ascii_alpha_char(
const uint8_t *b, ptrdiff_t n) {
4055pm_encoding_ascii_alpha_char_7bit(
const uint8_t *b, ptrdiff_t n) {
4056 return ((n > 0) && (*b < 0x80)) ? pm_encoding_ascii_alpha_char(b, n) : 0;
4064pm_encoding_ascii_alnum_char(
const uint8_t *b, ptrdiff_t n) {
4074pm_encoding_ascii_alnum_char_7bit(
const uint8_t *b, ptrdiff_t n) {
4075 return ((n > 0) && (*b < 0x80)) ? pm_encoding_ascii_alnum_char(b, n) : 0;
4083pm_encoding_ascii_isupper_char(
const uint8_t *b, ptrdiff_t n) {
4101pm_encoding_euc_jp_char_width(
const uint8_t *b, ptrdiff_t n) {
4103 if ((n > 0) && (*b < 0x80)) {
4108 if ((n > 1) && ((b[0] == 0x8E) || (b[0] >= 0xA1 && b[0] <= 0xFE)) && (b[1] >= 0xA1 && b[1] <= 0xFE)) {
4113 if ((n > 2) && (b[0] == 0x8F) && (b[1] >= 0xA1 && b[2] <= 0xFE) && (b[2] >= 0xA1 && b[2] <= 0xFE)) {
4125pm_encoding_euc_jp_isupper_char(
const uint8_t *b, ptrdiff_t n) {
4126 size_t width = pm_encoding_euc_jp_char_width(b, n);
4129 return pm_encoding_ascii_isupper_char(b, n);
4130 }
else if (width == 2) {
4132 (b[0] == 0xA3 && b[1] >= 0xC1 && b[1] <= 0xDA) ||
4133 (b[0] == 0xA6 && b[1] >= 0xA1 && b[1] <= 0xB8) ||
4134 (b[0] == 0xA7 && b[1] >= 0xA1 && b[1] <= 0xC1)
4146pm_encoding_shift_jis_char_width(
const uint8_t *b, ptrdiff_t n) {
4151 if (b[0] < 0x80 || (b[0] >= 0xA1 && b[0] <= 0xDF)) {
4156 if ((n > 1) && ((b[0] >= 0x81 && b[0] <= 0x9F) || (b[0] >= 0xE0 && b[0] <= 0xFC)) && (b[1] >= 0x40 && b[1] <= 0xFC && b[1] != 0x7F)) {
4168pm_encoding_shift_jis_alnum_char(
const uint8_t *b, ptrdiff_t n) {
4169 size_t width = pm_encoding_shift_jis_char_width(b, n);
4170 return width == 1 ? ((b[0] >= 0x80) || pm_encoding_ascii_alnum_char(b, n)) : width;
4178pm_encoding_shift_jis_alpha_char(
const uint8_t *b, ptrdiff_t n) {
4179 size_t width = pm_encoding_shift_jis_char_width(b, n);
4180 return width == 1 ? ((b[0] >= 0x80) || pm_encoding_ascii_alpha_char(b, n)) : width;
4188pm_encoding_shift_jis_isupper_char(
const uint8_t *b, ptrdiff_t n) {
4189 size_t width = pm_encoding_shift_jis_char_width(b, n);
4192 return pm_encoding_ascii_isupper_char(b, n);
4193 }
else if (width == 2) {
4195 ((b[0] == 0x82) && (b[1] >= 0x60 && b[1] <= 0x79)) ||
4196 ((b[0] == 0x83) && (b[1] >= 0x9F && b[1] <= 0xB6)) ||
4197 ((b[0] == 0x84) && (b[1] >= 0x40 && b[1] <= 0x60))
4204#ifndef PRISM_ENCODING_EXCLUDE_FULL
4212pm_encoding_ascii_isupper_char_7bit(
const uint8_t *b, ptrdiff_t n) {
4213 return (n > 0) && (*b < 0x80) && pm_encoding_ascii_isupper_char(b, n);
4221pm_encoding_big5_char_width(
const uint8_t *b, ptrdiff_t n) {
4223 if ((n > 0) && (*b < 0x80)) {
4228 if ((n > 1) && (b[0] >= 0xA1 && b[0] <= 0xFE) && ((b[1] >= 0x40 && b[1] <= 0x7E) || (b[1] >= 0xA1 && b[1] <= 0xFE))) {
4240pm_encoding_cp949_char_width(
const uint8_t *b, ptrdiff_t n) {
4242 if ((n > 0) && (*b <= 0x80)) {
4247 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))) {
4259pm_encoding_emacs_mule_char_width(
const uint8_t *b, ptrdiff_t n) {
4261 if ((n > 0) && (*b < 0x80)) {
4266 if ((n > 1) && (b[0] >= 0x81 && b[0] <= 0x8F) && (b[1] >= 0xA0)) {
4274 ((b[0] >= 0x90 && b[0] <= 0x99) && (b[1] >= 0xA0)) ||
4275 ((b[0] == 0x9A || b[0] == 0x9B) && (b[1] >= 0xE0 && b[1] <= 0xEF))
4286 ((b[0] == 0x9C) && (b[1] >= 0xF0) && (b[1] <= 0xF4)) ||
4287 ((b[0] == 0x9D) && (b[1] >= 0xF5) && (b[1] <= 0xFE))
4289 (b[2] >= 0xA0) && (b[3] >= 0xA0)
4302pm_encoding_euc_kr_char_width(
const uint8_t *b, ptrdiff_t n) {
4304 if ((n > 0) && (*b < 0x80)) {
4309 if ((n > 1) && (b[0] >= 0xA1 && b[0] <= 0xFE) && (b[1] >= 0xA1 && b[1] <= 0xFE)) {
4321pm_encoding_euc_tw_char_width(
const uint8_t *b, ptrdiff_t n) {
4323 if ((n > 0) && (*b < 0x80)) {
4328 if ((n > 1) && (b[0] >= 0xA1) && (b[0] <= 0xFE) && (b[1] >= 0xA1) && (b[1] <= 0xFE)) {
4333 if ((n > 3) && (b[0] == 0x8E) && (b[1] >= 0xA1) && (b[1] <= 0xB0) && (b[2] >= 0xA1) && (b[2] <= 0xFE) && (b[3] >= 0xA1) && (b[3] <= 0xFE)) {
4345pm_encoding_gb18030_char_width(
const uint8_t *b, ptrdiff_t n) {
4347 if ((n > 0) && (*b < 0x80)) {
4352 if ((n > 1) && (b[0] >= 0x81 && b[0] <= 0xFE) && (b[1] >= 0x40 && b[1] <= 0xFE && b[1] != 0x7F)) {
4357 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))) {
4369pm_encoding_gbk_char_width(
const uint8_t *b, ptrdiff_t n) {
4371 if ((n > 0) && (*b <= 0x80)) {
4379 ((b[0] >= 0xA1 && b[0] <= 0xA9) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4380 ((b[0] >= 0xB0 && b[0] <= 0xF7) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4381 ((b[0] >= 0x81 && b[0] <= 0xA0) && (b[1] >= 0x40 && b[1] <= 0xFE) && (b[1] != 0x7F)) ||
4382 ((b[0] >= 0xAA && b[0] <= 0xFE) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) ||
4383 ((b[0] >= 0xA8 && b[0] <= 0xA9) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) ||
4384 ((b[0] >= 0xAA && b[0] <= 0xAF) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4385 ((b[0] >= 0xF8 && b[0] <= 0xFE) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4386 ((b[0] >= 0xA1 && b[0] <= 0xA7) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F))
4401 [PM_ENCODING_UTF_8] = {
4403 .char_width = pm_encoding_utf_8_char_width,
4404 .alnum_char = pm_encoding_utf_8_alnum_char,
4405 .alpha_char = pm_encoding_utf_8_alpha_char,
4406 .isupper_char = pm_encoding_utf_8_isupper_char,
4409 [PM_ENCODING_US_ASCII] = {
4411 .char_width = pm_encoding_ascii_char_width,
4412 .alnum_char = pm_encoding_ascii_alnum_char,
4413 .alpha_char = pm_encoding_ascii_alpha_char,
4414 .isupper_char = pm_encoding_ascii_isupper_char,
4417 [PM_ENCODING_ASCII_8BIT] = {
4418 .name =
"ASCII-8BIT",
4419 .char_width = pm_encoding_single_char_width,
4420 .alnum_char = pm_encoding_ascii_alnum_char,
4421 .alpha_char = pm_encoding_ascii_alpha_char,
4422 .isupper_char = pm_encoding_ascii_isupper_char,
4425 [PM_ENCODING_EUC_JP] = {
4427 .char_width = pm_encoding_euc_jp_char_width,
4428 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4429 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4430 .isupper_char = pm_encoding_euc_jp_isupper_char,
4433 [PM_ENCODING_WINDOWS_31J] = {
4434 .name =
"Windows-31J",
4435 .char_width = pm_encoding_shift_jis_char_width,
4436 .alnum_char = pm_encoding_shift_jis_alnum_char,
4437 .alpha_char = pm_encoding_shift_jis_alpha_char,
4438 .isupper_char = pm_encoding_shift_jis_isupper_char,
4442#ifndef PRISM_ENCODING_EXCLUDE_FULL
4443 [PM_ENCODING_BIG5] = {
4445 .char_width = pm_encoding_big5_char_width,
4446 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4447 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4448 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4451 [PM_ENCODING_BIG5_HKSCS] = {
4452 .name =
"Big5-HKSCS",
4453 .char_width = pm_encoding_big5_char_width,
4454 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4455 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4456 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4459 [PM_ENCODING_BIG5_UAO] = {
4461 .char_width = pm_encoding_big5_char_width,
4462 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4463 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4464 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4467 [PM_ENCODING_CESU_8] = {
4469 .char_width = pm_encoding_cesu_8_char_width,
4470 .alnum_char = pm_encoding_cesu_8_alnum_char,
4471 .alpha_char = pm_encoding_cesu_8_alpha_char,
4472 .isupper_char = pm_encoding_cesu_8_isupper_char,
4475 [PM_ENCODING_CP51932] = {
4477 .char_width = pm_encoding_euc_jp_char_width,
4478 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4479 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4480 .isupper_char = pm_encoding_euc_jp_isupper_char,
4483 [PM_ENCODING_CP850] = {
4485 .char_width = pm_encoding_single_char_width,
4486 .alnum_char = pm_encoding_cp850_alnum_char,
4487 .alpha_char = pm_encoding_cp850_alpha_char,
4488 .isupper_char = pm_encoding_cp850_isupper_char,
4491 [PM_ENCODING_CP852] = {
4493 .char_width = pm_encoding_single_char_width,
4494 .alnum_char = pm_encoding_cp852_alnum_char,
4495 .alpha_char = pm_encoding_cp852_alpha_char,
4496 .isupper_char = pm_encoding_cp852_isupper_char,
4499 [PM_ENCODING_CP855] = {
4501 .char_width = pm_encoding_single_char_width,
4502 .alnum_char = pm_encoding_cp855_alnum_char,
4503 .alpha_char = pm_encoding_cp855_alpha_char,
4504 .isupper_char = pm_encoding_cp855_isupper_char,
4507 [PM_ENCODING_CP949] = {
4509 .char_width = pm_encoding_cp949_char_width,
4510 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4511 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4512 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4515 [PM_ENCODING_CP950] = {
4517 .char_width = pm_encoding_big5_char_width,
4518 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4519 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4520 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4523 [PM_ENCODING_CP951] = {
4525 .char_width = pm_encoding_big5_char_width,
4526 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4527 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4528 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4531 [PM_ENCODING_EMACS_MULE] = {
4532 .name =
"Emacs-Mule",
4533 .char_width = pm_encoding_emacs_mule_char_width,
4534 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4535 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4536 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4539 [PM_ENCODING_EUC_JP_MS] = {
4541 .char_width = pm_encoding_euc_jp_char_width,
4542 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4543 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4544 .isupper_char = pm_encoding_euc_jp_isupper_char,
4547 [PM_ENCODING_EUC_JIS_2004] = {
4548 .name =
"EUC-JIS-2004",
4549 .char_width = pm_encoding_euc_jp_char_width,
4550 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4551 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4552 .isupper_char = pm_encoding_euc_jp_isupper_char,
4555 [PM_ENCODING_EUC_KR] = {
4557 .char_width = pm_encoding_euc_kr_char_width,
4558 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4559 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4560 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4563 [PM_ENCODING_EUC_TW] = {
4565 .char_width = pm_encoding_euc_tw_char_width,
4566 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4567 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4568 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4571 [PM_ENCODING_GB12345] = {
4573 .char_width = pm_encoding_euc_kr_char_width,
4574 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4575 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4576 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4579 [PM_ENCODING_GB18030] = {
4581 .char_width = pm_encoding_gb18030_char_width,
4582 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4583 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4584 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4587 [PM_ENCODING_GB1988] = {
4589 .char_width = pm_encoding_single_char_width,
4590 .alnum_char = pm_encoding_gb1988_alnum_char,
4591 .alpha_char = pm_encoding_gb1988_alpha_char,
4592 .isupper_char = pm_encoding_gb1988_isupper_char,
4595 [PM_ENCODING_GB2312] = {
4597 .char_width = pm_encoding_euc_kr_char_width,
4598 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4599 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4600 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4603 [PM_ENCODING_GBK] = {
4605 .char_width = pm_encoding_gbk_char_width,
4606 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4607 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4608 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4611 [PM_ENCODING_IBM437] = {
4613 .char_width = pm_encoding_single_char_width,
4614 .alnum_char = pm_encoding_ibm437_alnum_char,
4615 .alpha_char = pm_encoding_ibm437_alpha_char,
4616 .isupper_char = pm_encoding_ibm437_isupper_char,
4619 [PM_ENCODING_IBM720] = {
4621 .char_width = pm_encoding_single_char_width,
4622 .alnum_char = pm_encoding_ibm720_alnum_char,
4623 .alpha_char = pm_encoding_ibm720_alpha_char,
4624 .isupper_char = pm_encoding_ibm720_isupper_char,
4627 [PM_ENCODING_IBM737] = {
4629 .char_width = pm_encoding_single_char_width,
4630 .alnum_char = pm_encoding_ibm737_alnum_char,
4631 .alpha_char = pm_encoding_ibm737_alpha_char,
4632 .isupper_char = pm_encoding_ibm737_isupper_char,
4635 [PM_ENCODING_IBM775] = {
4637 .char_width = pm_encoding_single_char_width,
4638 .alnum_char = pm_encoding_ibm775_alnum_char,
4639 .alpha_char = pm_encoding_ibm775_alpha_char,
4640 .isupper_char = pm_encoding_ibm775_isupper_char,
4643 [PM_ENCODING_IBM852] = {
4645 .char_width = pm_encoding_single_char_width,
4646 .alnum_char = pm_encoding_ibm852_alnum_char,
4647 .alpha_char = pm_encoding_ibm852_alpha_char,
4648 .isupper_char = pm_encoding_ibm852_isupper_char,
4651 [PM_ENCODING_IBM855] = {
4653 .char_width = pm_encoding_single_char_width,
4654 .alnum_char = pm_encoding_ibm855_alnum_char,
4655 .alpha_char = pm_encoding_ibm855_alpha_char,
4656 .isupper_char = pm_encoding_ibm855_isupper_char,
4659 [PM_ENCODING_IBM857] = {
4661 .char_width = pm_encoding_single_char_width,
4662 .alnum_char = pm_encoding_ibm857_alnum_char,
4663 .alpha_char = pm_encoding_ibm857_alpha_char,
4664 .isupper_char = pm_encoding_ibm857_isupper_char,
4667 [PM_ENCODING_IBM860] = {
4669 .char_width = pm_encoding_single_char_width,
4670 .alnum_char = pm_encoding_ibm860_alnum_char,
4671 .alpha_char = pm_encoding_ibm860_alpha_char,
4672 .isupper_char = pm_encoding_ibm860_isupper_char,
4675 [PM_ENCODING_IBM861] = {
4677 .char_width = pm_encoding_single_char_width,
4678 .alnum_char = pm_encoding_ibm861_alnum_char,
4679 .alpha_char = pm_encoding_ibm861_alpha_char,
4680 .isupper_char = pm_encoding_ibm861_isupper_char,
4683 [PM_ENCODING_IBM862] = {
4685 .char_width = pm_encoding_single_char_width,
4686 .alnum_char = pm_encoding_ibm862_alnum_char,
4687 .alpha_char = pm_encoding_ibm862_alpha_char,
4688 .isupper_char = pm_encoding_ibm862_isupper_char,
4691 [PM_ENCODING_IBM863] = {
4693 .char_width = pm_encoding_single_char_width,
4694 .alnum_char = pm_encoding_ibm863_alnum_char,
4695 .alpha_char = pm_encoding_ibm863_alpha_char,
4696 .isupper_char = pm_encoding_ibm863_isupper_char,
4699 [PM_ENCODING_IBM864] = {
4701 .char_width = pm_encoding_single_char_width,
4702 .alnum_char = pm_encoding_ibm864_alnum_char,
4703 .alpha_char = pm_encoding_ibm864_alpha_char,
4704 .isupper_char = pm_encoding_ibm864_isupper_char,
4707 [PM_ENCODING_IBM865] = {
4709 .char_width = pm_encoding_single_char_width,
4710 .alnum_char = pm_encoding_ibm865_alnum_char,
4711 .alpha_char = pm_encoding_ibm865_alpha_char,
4712 .isupper_char = pm_encoding_ibm865_isupper_char,
4715 [PM_ENCODING_IBM866] = {
4717 .char_width = pm_encoding_single_char_width,
4718 .alnum_char = pm_encoding_ibm866_alnum_char,
4719 .alpha_char = pm_encoding_ibm866_alpha_char,
4720 .isupper_char = pm_encoding_ibm866_isupper_char,
4723 [PM_ENCODING_IBM869] = {
4725 .char_width = pm_encoding_single_char_width,
4726 .alnum_char = pm_encoding_ibm869_alnum_char,
4727 .alpha_char = pm_encoding_ibm869_alpha_char,
4728 .isupper_char = pm_encoding_ibm869_isupper_char,
4731 [PM_ENCODING_ISO_8859_1] = {
4732 .name =
"ISO-8859-1",
4733 .char_width = pm_encoding_single_char_width,
4734 .alnum_char = pm_encoding_iso_8859_1_alnum_char,
4735 .alpha_char = pm_encoding_iso_8859_1_alpha_char,
4736 .isupper_char = pm_encoding_iso_8859_1_isupper_char,
4739 [PM_ENCODING_ISO_8859_2] = {
4740 .name =
"ISO-8859-2",
4741 .char_width = pm_encoding_single_char_width,
4742 .alnum_char = pm_encoding_iso_8859_2_alnum_char,
4743 .alpha_char = pm_encoding_iso_8859_2_alpha_char,
4744 .isupper_char = pm_encoding_iso_8859_2_isupper_char,
4747 [PM_ENCODING_ISO_8859_3] = {
4748 .name =
"ISO-8859-3",
4749 .char_width = pm_encoding_single_char_width,
4750 .alnum_char = pm_encoding_iso_8859_3_alnum_char,
4751 .alpha_char = pm_encoding_iso_8859_3_alpha_char,
4752 .isupper_char = pm_encoding_iso_8859_3_isupper_char,
4755 [PM_ENCODING_ISO_8859_4] = {
4756 .name =
"ISO-8859-4",
4757 .char_width = pm_encoding_single_char_width,
4758 .alnum_char = pm_encoding_iso_8859_4_alnum_char,
4759 .alpha_char = pm_encoding_iso_8859_4_alpha_char,
4760 .isupper_char = pm_encoding_iso_8859_4_isupper_char,
4763 [PM_ENCODING_ISO_8859_5] = {
4764 .name =
"ISO-8859-5",
4765 .char_width = pm_encoding_single_char_width,
4766 .alnum_char = pm_encoding_iso_8859_5_alnum_char,
4767 .alpha_char = pm_encoding_iso_8859_5_alpha_char,
4768 .isupper_char = pm_encoding_iso_8859_5_isupper_char,
4771 [PM_ENCODING_ISO_8859_6] = {
4772 .name =
"ISO-8859-6",
4773 .char_width = pm_encoding_single_char_width,
4774 .alnum_char = pm_encoding_iso_8859_6_alnum_char,
4775 .alpha_char = pm_encoding_iso_8859_6_alpha_char,
4776 .isupper_char = pm_encoding_iso_8859_6_isupper_char,
4779 [PM_ENCODING_ISO_8859_7] = {
4780 .name =
"ISO-8859-7",
4781 .char_width = pm_encoding_single_char_width,
4782 .alnum_char = pm_encoding_iso_8859_7_alnum_char,
4783 .alpha_char = pm_encoding_iso_8859_7_alpha_char,
4784 .isupper_char = pm_encoding_iso_8859_7_isupper_char,
4787 [PM_ENCODING_ISO_8859_8] = {
4788 .name =
"ISO-8859-8",
4789 .char_width = pm_encoding_single_char_width,
4790 .alnum_char = pm_encoding_iso_8859_8_alnum_char,
4791 .alpha_char = pm_encoding_iso_8859_8_alpha_char,
4792 .isupper_char = pm_encoding_iso_8859_8_isupper_char,
4795 [PM_ENCODING_ISO_8859_9] = {
4796 .name =
"ISO-8859-9",
4797 .char_width = pm_encoding_single_char_width,
4798 .alnum_char = pm_encoding_iso_8859_9_alnum_char,
4799 .alpha_char = pm_encoding_iso_8859_9_alpha_char,
4800 .isupper_char = pm_encoding_iso_8859_9_isupper_char,
4803 [PM_ENCODING_ISO_8859_10] = {
4804 .name =
"ISO-8859-10",
4805 .char_width = pm_encoding_single_char_width,
4806 .alnum_char = pm_encoding_iso_8859_10_alnum_char,
4807 .alpha_char = pm_encoding_iso_8859_10_alpha_char,
4808 .isupper_char = pm_encoding_iso_8859_10_isupper_char,
4811 [PM_ENCODING_ISO_8859_11] = {
4812 .name =
"ISO-8859-11",
4813 .char_width = pm_encoding_single_char_width,
4814 .alnum_char = pm_encoding_iso_8859_11_alnum_char,
4815 .alpha_char = pm_encoding_iso_8859_11_alpha_char,
4816 .isupper_char = pm_encoding_iso_8859_11_isupper_char,
4819 [PM_ENCODING_ISO_8859_13] = {
4820 .name =
"ISO-8859-13",
4821 .char_width = pm_encoding_single_char_width,
4822 .alnum_char = pm_encoding_iso_8859_13_alnum_char,
4823 .alpha_char = pm_encoding_iso_8859_13_alpha_char,
4824 .isupper_char = pm_encoding_iso_8859_13_isupper_char,
4827 [PM_ENCODING_ISO_8859_14] = {
4828 .name =
"ISO-8859-14",
4829 .char_width = pm_encoding_single_char_width,
4830 .alnum_char = pm_encoding_iso_8859_14_alnum_char,
4831 .alpha_char = pm_encoding_iso_8859_14_alpha_char,
4832 .isupper_char = pm_encoding_iso_8859_14_isupper_char,
4835 [PM_ENCODING_ISO_8859_15] = {
4836 .name =
"ISO-8859-15",
4837 .char_width = pm_encoding_single_char_width,
4838 .alnum_char = pm_encoding_iso_8859_15_alnum_char,
4839 .alpha_char = pm_encoding_iso_8859_15_alpha_char,
4840 .isupper_char = pm_encoding_iso_8859_15_isupper_char,
4843 [PM_ENCODING_ISO_8859_16] = {
4844 .name =
"ISO-8859-16",
4845 .char_width = pm_encoding_single_char_width,
4846 .alnum_char = pm_encoding_iso_8859_16_alnum_char,
4847 .alpha_char = pm_encoding_iso_8859_16_alpha_char,
4848 .isupper_char = pm_encoding_iso_8859_16_isupper_char,
4851 [PM_ENCODING_KOI8_R] = {
4853 .char_width = pm_encoding_single_char_width,
4854 .alnum_char = pm_encoding_koi8_r_alnum_char,
4855 .alpha_char = pm_encoding_koi8_r_alpha_char,
4856 .isupper_char = pm_encoding_koi8_r_isupper_char,
4859 [PM_ENCODING_KOI8_U] = {
4861 .char_width = pm_encoding_single_char_width,
4862 .alnum_char = pm_encoding_koi8_u_alnum_char,
4863 .alpha_char = pm_encoding_koi8_u_alpha_char,
4864 .isupper_char = pm_encoding_koi8_u_isupper_char,
4867 [PM_ENCODING_MAC_CENT_EURO] = {
4868 .name =
"macCentEuro",
4869 .char_width = pm_encoding_single_char_width,
4870 .alnum_char = pm_encoding_mac_cent_euro_alnum_char,
4871 .alpha_char = pm_encoding_mac_cent_euro_alpha_char,
4872 .isupper_char = pm_encoding_mac_cent_euro_isupper_char,
4875 [PM_ENCODING_MAC_CROATIAN] = {
4876 .name =
"macCroatian",
4877 .char_width = pm_encoding_single_char_width,
4878 .alnum_char = pm_encoding_mac_croatian_alnum_char,
4879 .alpha_char = pm_encoding_mac_croatian_alpha_char,
4880 .isupper_char = pm_encoding_mac_croatian_isupper_char,
4883 [PM_ENCODING_MAC_CYRILLIC] = {
4884 .name =
"macCyrillic",
4885 .char_width = pm_encoding_single_char_width,
4886 .alnum_char = pm_encoding_mac_cyrillic_alnum_char,
4887 .alpha_char = pm_encoding_mac_cyrillic_alpha_char,
4888 .isupper_char = pm_encoding_mac_cyrillic_isupper_char,
4891 [PM_ENCODING_MAC_GREEK] = {
4893 .char_width = pm_encoding_single_char_width,
4894 .alnum_char = pm_encoding_mac_greek_alnum_char,
4895 .alpha_char = pm_encoding_mac_greek_alpha_char,
4896 .isupper_char = pm_encoding_mac_greek_isupper_char,
4899 [PM_ENCODING_MAC_ICELAND] = {
4900 .name =
"macIceland",
4901 .char_width = pm_encoding_single_char_width,
4902 .alnum_char = pm_encoding_mac_iceland_alnum_char,
4903 .alpha_char = pm_encoding_mac_iceland_alpha_char,
4904 .isupper_char = pm_encoding_mac_iceland_isupper_char,
4907 [PM_ENCODING_MAC_JAPANESE] = {
4908 .name =
"MacJapanese",
4909 .char_width = pm_encoding_shift_jis_char_width,
4910 .alnum_char = pm_encoding_shift_jis_alnum_char,
4911 .alpha_char = pm_encoding_shift_jis_alpha_char,
4912 .isupper_char = pm_encoding_shift_jis_isupper_char,
4915 [PM_ENCODING_MAC_ROMAN] = {
4917 .char_width = pm_encoding_single_char_width,
4918 .alnum_char = pm_encoding_mac_roman_alnum_char,
4919 .alpha_char = pm_encoding_mac_roman_alpha_char,
4920 .isupper_char = pm_encoding_mac_roman_isupper_char,
4923 [PM_ENCODING_MAC_ROMANIA] = {
4924 .name =
"macRomania",
4925 .char_width = pm_encoding_single_char_width,
4926 .alnum_char = pm_encoding_mac_romania_alnum_char,
4927 .alpha_char = pm_encoding_mac_romania_alpha_char,
4928 .isupper_char = pm_encoding_mac_romania_isupper_char,
4931 [PM_ENCODING_MAC_THAI] = {
4933 .char_width = pm_encoding_single_char_width,
4934 .alnum_char = pm_encoding_mac_thai_alnum_char,
4935 .alpha_char = pm_encoding_mac_thai_alpha_char,
4936 .isupper_char = pm_encoding_mac_thai_isupper_char,
4939 [PM_ENCODING_MAC_TURKISH] = {
4940 .name =
"macTurkish",
4941 .char_width = pm_encoding_single_char_width,
4942 .alnum_char = pm_encoding_mac_turkish_alnum_char,
4943 .alpha_char = pm_encoding_mac_turkish_alpha_char,
4944 .isupper_char = pm_encoding_mac_turkish_isupper_char,
4947 [PM_ENCODING_MAC_UKRAINE] = {
4948 .name =
"macUkraine",
4949 .char_width = pm_encoding_single_char_width,
4950 .alnum_char = pm_encoding_mac_ukraine_alnum_char,
4951 .alpha_char = pm_encoding_mac_ukraine_alpha_char,
4952 .isupper_char = pm_encoding_mac_ukraine_isupper_char,
4955 [PM_ENCODING_SHIFT_JIS] = {
4956 .name =
"Shift_JIS",
4957 .char_width = pm_encoding_shift_jis_char_width,
4958 .alnum_char = pm_encoding_shift_jis_alnum_char,
4959 .alpha_char = pm_encoding_shift_jis_alpha_char,
4960 .isupper_char = pm_encoding_shift_jis_isupper_char,
4963 [PM_ENCODING_SJIS_DOCOMO] = {
4964 .name =
"SJIS-DoCoMo",
4965 .char_width = pm_encoding_shift_jis_char_width,
4966 .alnum_char = pm_encoding_shift_jis_alnum_char,
4967 .alpha_char = pm_encoding_shift_jis_alpha_char,
4968 .isupper_char = pm_encoding_shift_jis_isupper_char,
4971 [PM_ENCODING_SJIS_KDDI] = {
4972 .name =
"SJIS-KDDI",
4973 .char_width = pm_encoding_shift_jis_char_width,
4974 .alnum_char = pm_encoding_shift_jis_alnum_char,
4975 .alpha_char = pm_encoding_shift_jis_alpha_char,
4976 .isupper_char = pm_encoding_shift_jis_isupper_char,
4979 [PM_ENCODING_SJIS_SOFTBANK] = {
4980 .name =
"SJIS-SoftBank",
4981 .char_width = pm_encoding_shift_jis_char_width,
4982 .alnum_char = pm_encoding_shift_jis_alnum_char,
4983 .alpha_char = pm_encoding_shift_jis_alpha_char,
4984 .isupper_char = pm_encoding_shift_jis_isupper_char,
4987 [PM_ENCODING_STATELESS_ISO_2022_JP] = {
4988 .name =
"stateless-ISO-2022-JP",
4989 .char_width = pm_encoding_emacs_mule_char_width,
4990 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4991 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4992 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4995 [PM_ENCODING_STATELESS_ISO_2022_JP_KDDI] = {
4996 .name =
"stateless-ISO-2022-JP-KDDI",
4997 .char_width = pm_encoding_emacs_mule_char_width,
4998 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4999 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
5000 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
5003 [PM_ENCODING_TIS_620] = {
5005 .char_width = pm_encoding_single_char_width,
5006 .alnum_char = pm_encoding_tis_620_alnum_char,
5007 .alpha_char = pm_encoding_tis_620_alpha_char,
5008 .isupper_char = pm_encoding_tis_620_isupper_char,
5011 [PM_ENCODING_UTF8_MAC] = {
5013 .char_width = pm_encoding_utf_8_char_width,
5014 .alnum_char = pm_encoding_utf_8_alnum_char,
5015 .alpha_char = pm_encoding_utf_8_alpha_char,
5016 .isupper_char = pm_encoding_utf_8_isupper_char,
5019 [PM_ENCODING_UTF8_DOCOMO] = {
5020 .name =
"UTF8-DoCoMo",
5021 .char_width = pm_encoding_utf_8_char_width,
5022 .alnum_char = pm_encoding_utf_8_alnum_char,
5023 .alpha_char = pm_encoding_utf_8_alpha_char,
5024 .isupper_char = pm_encoding_utf_8_isupper_char,
5027 [PM_ENCODING_UTF8_KDDI] = {
5028 .name =
"UTF8-KDDI",
5029 .char_width = pm_encoding_utf_8_char_width,
5030 .alnum_char = pm_encoding_utf_8_alnum_char,
5031 .alpha_char = pm_encoding_utf_8_alpha_char,
5032 .isupper_char = pm_encoding_utf_8_isupper_char,
5035 [PM_ENCODING_UTF8_SOFTBANK] = {
5036 .name =
"UTF8-SoftBank",
5037 .char_width = pm_encoding_utf_8_char_width,
5038 .alnum_char = pm_encoding_utf_8_alnum_char,
5039 .alpha_char = pm_encoding_utf_8_alpha_char,
5040 .isupper_char = pm_encoding_utf_8_isupper_char,
5043 [PM_ENCODING_WINDOWS_1250] = {
5044 .name =
"Windows-1250",
5045 .char_width = pm_encoding_single_char_width,
5046 .alnum_char = pm_encoding_windows_1250_alnum_char,
5047 .alpha_char = pm_encoding_windows_1250_alpha_char,
5048 .isupper_char = pm_encoding_windows_1250_isupper_char,
5051 [PM_ENCODING_WINDOWS_1251] = {
5052 .name =
"Windows-1251",
5053 .char_width = pm_encoding_single_char_width,
5054 .alnum_char = pm_encoding_windows_1251_alnum_char,
5055 .alpha_char = pm_encoding_windows_1251_alpha_char,
5056 .isupper_char = pm_encoding_windows_1251_isupper_char,
5059 [PM_ENCODING_WINDOWS_1252] = {
5060 .name =
"Windows-1252",
5061 .char_width = pm_encoding_single_char_width,
5062 .alnum_char = pm_encoding_windows_1252_alnum_char,
5063 .alpha_char = pm_encoding_windows_1252_alpha_char,
5064 .isupper_char = pm_encoding_windows_1252_isupper_char,
5067 [PM_ENCODING_WINDOWS_1253] = {
5068 .name =
"Windows-1253",
5069 .char_width = pm_encoding_single_char_width,
5070 .alnum_char = pm_encoding_windows_1253_alnum_char,
5071 .alpha_char = pm_encoding_windows_1253_alpha_char,
5072 .isupper_char = pm_encoding_windows_1253_isupper_char,
5075 [PM_ENCODING_WINDOWS_1254] = {
5076 .name =
"Windows-1254",
5077 .char_width = pm_encoding_single_char_width,
5078 .alnum_char = pm_encoding_windows_1254_alnum_char,
5079 .alpha_char = pm_encoding_windows_1254_alpha_char,
5080 .isupper_char = pm_encoding_windows_1254_isupper_char,
5083 [PM_ENCODING_WINDOWS_1255] = {
5084 .name =
"Windows-1255",
5085 .char_width = pm_encoding_single_char_width,
5086 .alnum_char = pm_encoding_windows_1255_alnum_char,
5087 .alpha_char = pm_encoding_windows_1255_alpha_char,
5088 .isupper_char = pm_encoding_windows_1255_isupper_char,
5091 [PM_ENCODING_WINDOWS_1256] = {
5092 .name =
"Windows-1256",
5093 .char_width = pm_encoding_single_char_width,
5094 .alnum_char = pm_encoding_windows_1256_alnum_char,
5095 .alpha_char = pm_encoding_windows_1256_alpha_char,
5096 .isupper_char = pm_encoding_windows_1256_isupper_char,
5099 [PM_ENCODING_WINDOWS_1257] = {
5100 .name =
"Windows-1257",
5101 .char_width = pm_encoding_single_char_width,
5102 .alnum_char = pm_encoding_windows_1257_alnum_char,
5103 .alpha_char = pm_encoding_windows_1257_alpha_char,
5104 .isupper_char = pm_encoding_windows_1257_isupper_char,
5107 [PM_ENCODING_WINDOWS_1258] = {
5108 .name =
"Windows-1258",
5109 .char_width = pm_encoding_single_char_width,
5110 .alnum_char = pm_encoding_windows_1258_alnum_char,
5111 .alpha_char = pm_encoding_windows_1258_alpha_char,
5112 .isupper_char = pm_encoding_windows_1258_isupper_char,
5115 [PM_ENCODING_WINDOWS_874] = {
5116 .name =
"Windows-874",
5117 .char_width = pm_encoding_single_char_width,
5118 .alnum_char = pm_encoding_windows_874_alnum_char,
5119 .alpha_char = pm_encoding_windows_874_alpha_char,
5120 .isupper_char = pm_encoding_windows_874_isupper_char,
5131pm_encoding_find(
const uint8_t *start,
const uint8_t *end) {
5132 size_t width = (size_t) (end - start);
5137 if ((start + 5 <= end) && (pm_strncasecmp(start, (
const uint8_t *)
"UTF-8", 5) == 0)) {
5138#ifndef PRISM_ENCODING_EXCLUDE_FULL
5141 if (width == 9 && (pm_strncasecmp(start + 5, (
const uint8_t *)
"-HFS", 4) == 0)) {
5142 return &pm_encodings[PM_ENCODING_UTF8_MAC];
5152#define ENCODING1(name, encoding) if (width == sizeof(name) - 1 && pm_strncasecmp(start, (const uint8_t *) name, width) == 0) return &pm_encodings[encoding];
5153#define ENCODING2(name1, name2, encoding) ENCODING1(name1, encoding) ENCODING1(name2, encoding)
5158 ENCODING1(
"ASCII", PM_ENCODING_US_ASCII);
5159 ENCODING1(
"ASCII-8BIT", PM_ENCODING_ASCII_8BIT);
5160 ENCODING1(
"ANSI_X3.4-1968", PM_ENCODING_US_ASCII);
5163 ENCODING1(
"BINARY", PM_ENCODING_ASCII_8BIT);
5164#ifndef PRISM_ENCODING_EXCLUDE_FULL
5165 ENCODING1(
"Big5", PM_ENCODING_BIG5);
5166 ENCODING2(
"Big5-HKSCS",
"Big5-HKSCS:2008", PM_ENCODING_BIG5_HKSCS);
5167 ENCODING1(
"Big5-UAO", PM_ENCODING_BIG5_UAO);
5171 ENCODING1(
"CP65001", PM_ENCODING_UTF_8);
5172 ENCODING2(
"CP932",
"csWindows31J", PM_ENCODING_WINDOWS_31J);
5173#ifndef PRISM_ENCODING_EXCLUDE_FULL
5174 ENCODING1(
"CESU-8", PM_ENCODING_CESU_8);
5175 ENCODING1(
"CP437", PM_ENCODING_IBM437);
5176 ENCODING1(
"CP720", PM_ENCODING_IBM720);
5177 ENCODING1(
"CP737", PM_ENCODING_IBM737);
5178 ENCODING1(
"CP775", PM_ENCODING_IBM775);
5179 ENCODING1(
"CP850", PM_ENCODING_CP850);
5180 ENCODING1(
"CP852", PM_ENCODING_CP852);
5181 ENCODING1(
"CP855", PM_ENCODING_CP855);
5182 ENCODING1(
"CP857", PM_ENCODING_IBM857);
5183 ENCODING1(
"CP860", PM_ENCODING_IBM860);
5184 ENCODING1(
"CP861", PM_ENCODING_IBM861);
5185 ENCODING1(
"CP862", PM_ENCODING_IBM862);
5186 ENCODING1(
"CP864", PM_ENCODING_IBM864);
5187 ENCODING1(
"CP865", PM_ENCODING_IBM865);
5188 ENCODING1(
"CP866", PM_ENCODING_IBM866);
5189 ENCODING1(
"CP869", PM_ENCODING_IBM869);
5190 ENCODING1(
"CP874", PM_ENCODING_WINDOWS_874);
5191 ENCODING1(
"CP878", PM_ENCODING_KOI8_R);
5192 ENCODING1(
"CP863", PM_ENCODING_IBM863);
5193 ENCODING1(
"CP936", PM_ENCODING_GBK);
5194 ENCODING1(
"CP949", PM_ENCODING_CP949);
5195 ENCODING1(
"CP950", PM_ENCODING_CP950);
5196 ENCODING1(
"CP951", PM_ENCODING_CP951);
5197 ENCODING1(
"CP1250", PM_ENCODING_WINDOWS_1250);
5198 ENCODING1(
"CP1251", PM_ENCODING_WINDOWS_1251);
5199 ENCODING1(
"CP1252", PM_ENCODING_WINDOWS_1252);
5200 ENCODING1(
"CP1253", PM_ENCODING_WINDOWS_1253);
5201 ENCODING1(
"CP1254", PM_ENCODING_WINDOWS_1254);
5202 ENCODING1(
"CP1255", PM_ENCODING_WINDOWS_1255);
5203 ENCODING1(
"CP1256", PM_ENCODING_WINDOWS_1256);
5204 ENCODING1(
"CP1257", PM_ENCODING_WINDOWS_1257);
5205 ENCODING1(
"CP1258", PM_ENCODING_WINDOWS_1258);
5206 ENCODING1(
"CP51932", PM_ENCODING_CP51932);
5210 ENCODING2(
"EUC-JP",
"eucJP", PM_ENCODING_EUC_JP);
5211#ifndef PRISM_ENCODING_EXCLUDE_FULL
5212 ENCODING2(
"eucJP-ms",
"euc-jp-ms", PM_ENCODING_EUC_JP_MS);
5213 ENCODING2(
"EUC-JIS-2004",
"EUC-JISX0213", PM_ENCODING_EUC_JIS_2004);
5214 ENCODING2(
"EUC-KR",
"eucKR", PM_ENCODING_EUC_KR);
5215 ENCODING2(
"EUC-CN",
"eucCN", PM_ENCODING_GB2312);
5216 ENCODING2(
"EUC-TW",
"eucTW", PM_ENCODING_EUC_TW);
5217 ENCODING1(
"Emacs-Mule", PM_ENCODING_EMACS_MULE);
5221#ifndef PRISM_ENCODING_EXCLUDE_FULL
5222 ENCODING1(
"GBK", PM_ENCODING_GBK);
5223 ENCODING1(
"GB12345", PM_ENCODING_GB12345);
5224 ENCODING1(
"GB18030", PM_ENCODING_GB18030);
5225 ENCODING1(
"GB1988", PM_ENCODING_GB1988);
5226 ENCODING1(
"GB2312", PM_ENCODING_GB2312);
5230#ifndef PRISM_ENCODING_EXCLUDE_FULL
5231 ENCODING1(
"IBM437", PM_ENCODING_IBM437);
5232 ENCODING1(
"IBM720", PM_ENCODING_IBM720);
5233 ENCODING1(
"IBM737", PM_ENCODING_IBM737);
5234 ENCODING1(
"IBM775", PM_ENCODING_IBM775);
5235 ENCODING1(
"IBM850", PM_ENCODING_CP850);
5236 ENCODING1(
"IBM852", PM_ENCODING_IBM852);
5237 ENCODING1(
"IBM855", PM_ENCODING_IBM855);
5238 ENCODING1(
"IBM857", PM_ENCODING_IBM857);
5239 ENCODING1(
"IBM860", PM_ENCODING_IBM860);
5240 ENCODING1(
"IBM861", PM_ENCODING_IBM861);
5241 ENCODING1(
"IBM862", PM_ENCODING_IBM862);
5242 ENCODING1(
"IBM863", PM_ENCODING_IBM863);
5243 ENCODING1(
"IBM864", PM_ENCODING_IBM864);
5244 ENCODING1(
"IBM865", PM_ENCODING_IBM865);
5245 ENCODING1(
"IBM866", PM_ENCODING_IBM866);
5246 ENCODING1(
"IBM869", PM_ENCODING_IBM869);
5247 ENCODING2(
"ISO-8859-1",
"ISO8859-1", PM_ENCODING_ISO_8859_1);
5248 ENCODING2(
"ISO-8859-2",
"ISO8859-2", PM_ENCODING_ISO_8859_2);
5249 ENCODING2(
"ISO-8859-3",
"ISO8859-3", PM_ENCODING_ISO_8859_3);
5250 ENCODING2(
"ISO-8859-4",
"ISO8859-4", PM_ENCODING_ISO_8859_4);
5251 ENCODING2(
"ISO-8859-5",
"ISO8859-5", PM_ENCODING_ISO_8859_5);
5252 ENCODING2(
"ISO-8859-6",
"ISO8859-6", PM_ENCODING_ISO_8859_6);
5253 ENCODING2(
"ISO-8859-7",
"ISO8859-7", PM_ENCODING_ISO_8859_7);
5254 ENCODING2(
"ISO-8859-8",
"ISO8859-8", PM_ENCODING_ISO_8859_8);
5255 ENCODING2(
"ISO-8859-9",
"ISO8859-9", PM_ENCODING_ISO_8859_9);
5256 ENCODING2(
"ISO-8859-10",
"ISO8859-10", PM_ENCODING_ISO_8859_10);
5257 ENCODING2(
"ISO-8859-11",
"ISO8859-11", PM_ENCODING_ISO_8859_11);
5258 ENCODING2(
"ISO-8859-13",
"ISO8859-13", PM_ENCODING_ISO_8859_13);
5259 ENCODING2(
"ISO-8859-14",
"ISO8859-14", PM_ENCODING_ISO_8859_14);
5260 ENCODING2(
"ISO-8859-15",
"ISO8859-15", PM_ENCODING_ISO_8859_15);
5261 ENCODING2(
"ISO-8859-16",
"ISO8859-16", PM_ENCODING_ISO_8859_16);
5265#ifndef PRISM_ENCODING_EXCLUDE_FULL
5266 ENCODING1(
"KOI8-R", PM_ENCODING_KOI8_R);
5267 ENCODING1(
"KOI8-U", PM_ENCODING_KOI8_U);
5271#ifndef PRISM_ENCODING_EXCLUDE_FULL
5272 ENCODING1(
"macCentEuro", PM_ENCODING_MAC_CENT_EURO);
5273 ENCODING1(
"macCroatian", PM_ENCODING_MAC_CROATIAN);
5274 ENCODING1(
"macCyrillic", PM_ENCODING_MAC_CYRILLIC);
5275 ENCODING1(
"macGreek", PM_ENCODING_MAC_GREEK);
5276 ENCODING1(
"macIceland", PM_ENCODING_MAC_ICELAND);
5277 ENCODING1(
"MacJapanese", PM_ENCODING_MAC_JAPANESE);
5278 ENCODING1(
"MacJapan", PM_ENCODING_MAC_JAPANESE);
5279 ENCODING1(
"macRoman", PM_ENCODING_MAC_ROMAN);
5280 ENCODING1(
"macRomania", PM_ENCODING_MAC_ROMANIA);
5281 ENCODING1(
"macThai", PM_ENCODING_MAC_THAI);
5282 ENCODING1(
"macTurkish", PM_ENCODING_MAC_TURKISH);
5283 ENCODING1(
"macUkraine", PM_ENCODING_MAC_UKRAINE);
5287 ENCODING1(
"PCK", PM_ENCODING_WINDOWS_31J);
5290 ENCODING1(
"SJIS", PM_ENCODING_WINDOWS_31J);
5291#ifndef PRISM_ENCODING_EXCLUDE_FULL
5292 ENCODING1(
"Shift_JIS", PM_ENCODING_SHIFT_JIS);
5293 ENCODING1(
"SJIS-DoCoMo", PM_ENCODING_SJIS_DOCOMO);
5294 ENCODING1(
"SJIS-KDDI", PM_ENCODING_SJIS_KDDI);
5295 ENCODING1(
"SJIS-SoftBank", PM_ENCODING_SJIS_SOFTBANK);
5296 ENCODING1(
"stateless-ISO-2022-JP", PM_ENCODING_STATELESS_ISO_2022_JP);
5297 ENCODING1(
"stateless-ISO-2022-JP-KDDI", PM_ENCODING_STATELESS_ISO_2022_JP_KDDI);
5301#ifndef PRISM_ENCODING_EXCLUDE_FULL
5302 ENCODING1(
"TIS-620", PM_ENCODING_TIS_620);
5306 ENCODING1(
"US-ASCII", PM_ENCODING_US_ASCII);
5307#ifndef PRISM_ENCODING_EXCLUDE_FULL
5308 ENCODING2(
"UTF8-MAC",
"UTF-8-HFS", PM_ENCODING_UTF8_MAC);
5309 ENCODING1(
"UTF8-DoCoMo", PM_ENCODING_UTF8_DOCOMO);
5310 ENCODING1(
"UTF8-KDDI", PM_ENCODING_UTF8_KDDI);
5311 ENCODING1(
"UTF8-SoftBank", PM_ENCODING_UTF8_SOFTBANK);
5315 ENCODING1(
"Windows-31J", PM_ENCODING_WINDOWS_31J);
5316#ifndef PRISM_ENCODING_EXCLUDE_FULL
5317 ENCODING1(
"Windows-874", PM_ENCODING_WINDOWS_874);
5318 ENCODING1(
"Windows-1250", PM_ENCODING_WINDOWS_1250);
5319 ENCODING1(
"Windows-1251", PM_ENCODING_WINDOWS_1251);
5320 ENCODING1(
"Windows-1252", PM_ENCODING_WINDOWS_1252);
5321 ENCODING1(
"Windows-1253", PM_ENCODING_WINDOWS_1253);
5322 ENCODING1(
"Windows-1254", PM_ENCODING_WINDOWS_1254);
5323 ENCODING1(
"Windows-1255", PM_ENCODING_WINDOWS_1255);
5324 ENCODING1(
"Windows-1256", PM_ENCODING_WINDOWS_1256);
5325 ENCODING1(
"Windows-1257", PM_ENCODING_WINDOWS_1257);
5326 ENCODING1(
"Windows-1258", PM_ENCODING_WINDOWS_1258);
5330 ENCODING1(
"646", PM_ENCODING_US_ASCII);
VALUE type(ANYARGS)
ANYARGS-ed function type.
#define PRISM_ATTRIBUTE_UNUSED
GCC will warn if you specify a function or parameter that is unused at runtime.
The encoding interface and implementations used by the parser.
#define PRISM_ENCODING_UPPERCASE_BIT
All of the lookup tables use the third bit of each embedded byte to indicate whether the codepoint is...
#define PM_ENCODING_UTF_8_ENTRY
This is the default UTF-8 encoding.
#define PRISM_ENCODING_ALPHABETIC_BIT
All of the lookup tables use the first bit of each embedded byte to indicate whether the codepoint is...
#define PRISM_ENCODING_ALPHANUMERIC_BIT
All of the lookup tables use the second bit of each embedded byte to indicate whether the codepoint i...
This struct defines the functions necessary to implement the encoding interface so we can determine h...
const char * name
The name of the encoding.