3typedef uint32_t pm_unicode_codepoint_t;
5#define UNICODE_ALPHA_CODEPOINTS_LENGTH 1450
6static const pm_unicode_codepoint_t unicode_alpha_codepoints[UNICODE_ALPHA_CODEPOINTS_LENGTH] = {
734#define UNICODE_ALNUM_CODEPOINTS_LENGTH 1528
735static const pm_unicode_codepoint_t unicode_alnum_codepoints[UNICODE_ALNUM_CODEPOINTS_LENGTH] = {
1502#define UNICODE_ISUPPER_CODEPOINTS_LENGTH 1296
1503static const pm_unicode_codepoint_t unicode_isupper_codepoints[UNICODE_ISUPPER_CODEPOINTS_LENGTH] = {
2161const uint8_t pm_encoding_unicode_table[256] = {
2163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2167 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2168 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2169 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2170 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2174 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2175 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2176 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
2177 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2178 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
2186pm_unicode_codepoint_match(pm_unicode_codepoint_t codepoint,
const pm_unicode_codepoint_t *codepoints,
size_t size) {
2190 while (start < end) {
2191 size_t middle = start + (end - start) / 2;
2192 if ((middle % 2) != 0) middle--;
2194 if (codepoint >= codepoints[middle] && codepoint <= codepoints[middle + 1]) {
2198 if (codepoint < codepoints[middle]) {
2231static const uint8_t pm_utf_8_dfa[] = {
2232 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,
2233 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,
2234 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,
2235 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,
2236 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,
2237 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,
2238 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,
2239 0xa,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x4,0x3,0x3,
2240 0xb,0x6,0x6,0x6,0x5,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,
2241 0x0,0x1,0x2,0x3,0x5,0x8,0x7,0x1,0x1,0x1,0x4,0x6,0x1,0x1,0x1,0x1,
2242 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,
2243 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,
2244 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,
2245 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,
2253static pm_unicode_codepoint_t
2254pm_utf_8_codepoint(
const uint8_t *b, ptrdiff_t n,
size_t *width) {
2256 size_t maximum = (size_t) n;
2261 for (
size_t index = 0; index < 4 && index < maximum; index++) {
2262 uint32_t
byte = b[index];
2263 uint32_t
type = pm_utf_8_dfa[byte];
2265 codepoint = (state != 0) ?
2266 (
byte & 0x3fu) | (codepoint << 6) :
2267 (0xffu >>
type) & (byte);
2269 state = pm_utf_8_dfa[256 + (state * 16) + type];
2272 return (pm_unicode_codepoint_t) codepoint;
2281pm_encoding_utf_8_char_width(
const uint8_t *b, ptrdiff_t n) {
2283 pm_utf_8_codepoint(b, n, &width);
2292pm_encoding_utf_8_alpha_char(
const uint8_t *b, ptrdiff_t n) {
2298 pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2300 if (codepoint <= 0xFF) {
2303 return pm_unicode_codepoint_match(codepoint, unicode_alpha_codepoints, UNICODE_ALPHA_CODEPOINTS_LENGTH) ? width : 0;
2312pm_encoding_utf_8_alnum_char(
const uint8_t *b, ptrdiff_t n) {
2318 pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2320 if (codepoint <= 0xFF) {
2323 return pm_unicode_codepoint_match(codepoint, unicode_alnum_codepoints, UNICODE_ALNUM_CODEPOINTS_LENGTH) ? width : 0;
2332pm_encoding_utf_8_isupper_char(
const uint8_t *b, ptrdiff_t n) {
2338 pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2340 if (codepoint <= 0xFF) {
2343 return pm_unicode_codepoint_match(codepoint, unicode_isupper_codepoints, UNICODE_ISUPPER_CODEPOINTS_LENGTH) ? true :
false;
2347static pm_unicode_codepoint_t
2348pm_cesu_8_codepoint(
const uint8_t *b, ptrdiff_t n,
size_t *width) {
2351 return (pm_unicode_codepoint_t) b[0];
2354 if (n > 1 && b[0] >= 0xC2 && b[0] <= 0xDF && b[1] >= 0x80 && b[1] <= 0xBF) {
2358 return (pm_unicode_codepoint_t) (((b[0] & 0x1F) << 6) | (b[1] & 0x3F));
2361 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) {
2365 return (pm_unicode_codepoint_t) (0x10000 + (((b[1] & 0xF) << 16) | ((b[2] & 0x3F) << 10) | ((b[4] & 0xF) << 6) | (b[5] & 0x3F)));
2368 if (n > 2 && b[0] == 0xED && b[1] >= 0xA0 && b[1] <= 0xBF) {
2372 return (pm_unicode_codepoint_t) (0x10000 + (((b[0] & 0x03) << 16) | ((b[1] & 0x3F) << 10) | (b[2] & 0x3F)));
2375 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) {
2379 return (pm_unicode_codepoint_t) (((b[0] & 0xF) << 12) | ((b[1] & 0x3F) << 6) | (b[2] & 0x3F));
2387pm_encoding_cesu_8_char_width(
const uint8_t *b, ptrdiff_t n) {
2389 pm_cesu_8_codepoint(b, n, &width);
2394pm_encoding_cesu_8_alpha_char(
const uint8_t *b, ptrdiff_t n) {
2400 pm_unicode_codepoint_t codepoint = pm_cesu_8_codepoint(b, n, &width);
2402 if (codepoint <= 0xFF) {
2405 return pm_unicode_codepoint_match(codepoint, unicode_alpha_codepoints, UNICODE_ALPHA_CODEPOINTS_LENGTH) ? width : 0;
2410pm_encoding_cesu_8_alnum_char(
const uint8_t *b, ptrdiff_t n) {
2416 pm_unicode_codepoint_t codepoint = pm_cesu_8_codepoint(b, n, &width);
2418 if (codepoint <= 0xFF) {
2421 return pm_unicode_codepoint_match(codepoint, unicode_alnum_codepoints, UNICODE_ALNUM_CODEPOINTS_LENGTH) ? width : 0;
2426pm_encoding_cesu_8_isupper_char(
const uint8_t *b, ptrdiff_t n) {
2432 pm_unicode_codepoint_t codepoint = pm_cesu_8_codepoint(b, n, &width);
2434 if (codepoint <= 0xFF) {
2437 return pm_unicode_codepoint_match(codepoint, unicode_isupper_codepoints, UNICODE_ISUPPER_CODEPOINTS_LENGTH) ? true :
false;
2441#undef UNICODE_ALPHA_CODEPOINTS_LENGTH
2442#undef UNICODE_ALNUM_CODEPOINTS_LENGTH
2443#undef UNICODE_ISUPPER_CODEPOINTS_LENGTH
2449static const uint8_t pm_encoding_ascii_table[256] = {
2451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2455 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2456 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2457 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2458 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2473static const uint8_t pm_encoding_cp850_table[256] = {
2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2478 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2479 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2480 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2481 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2482 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2497static const uint8_t pm_encoding_cp852_table[256] = {
2499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2502 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2503 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2504 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2505 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2506 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2521static const uint8_t pm_encoding_cp855_table[256] = {
2523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2526 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2527 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2528 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2529 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2530 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545static const uint8_t pm_encoding_gb1988_table[256] = {
2547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2550 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2551 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2552 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2553 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2554 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2569static const uint8_t pm_encoding_ibm437_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,
2593static const uint8_t pm_encoding_ibm720_table[256] = {
2595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2598 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2599 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2600 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2601 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2602 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2605 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,
2617static const uint8_t pm_encoding_ibm737_table[256] = {
2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2622 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2623 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2624 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2625 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2626 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2629 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,
2641static const uint8_t pm_encoding_ibm775_table[256] = {
2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2647 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2648 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2649 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2650 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653 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,
2665static const uint8_t pm_encoding_ibm852_table[256] = {
2667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2671 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2672 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2673 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2674 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2677 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,
2689static const uint8_t pm_encoding_ibm855_table[256] = {
2691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2694 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2695 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2696 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2697 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2698 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2701 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,
2713static const uint8_t pm_encoding_ibm857_table[256] = {
2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2719 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2720 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2721 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2722 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2725 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,
2737static const uint8_t pm_encoding_ibm860_table[256] = {
2739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2742 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2743 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2744 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2745 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2746 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2749 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,
2761static const uint8_t pm_encoding_ibm861_table[256] = {
2763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2767 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2768 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2769 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2770 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 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,
2785static const uint8_t pm_encoding_ibm862_table[256] = {
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2791 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2792 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2793 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2794 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2797 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,
2809static const uint8_t pm_encoding_ibm863_table[256] = {
2811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2815 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2816 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2817 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2818 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2821 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,
2833static const uint8_t pm_encoding_ibm864_table[256] = {
2835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2838 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2839 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2840 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2841 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2842 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 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,
2857static const uint8_t pm_encoding_ibm865_table[256] = {
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2863 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2864 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2865 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2866 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2869 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,
2881static const uint8_t pm_encoding_ibm866_table[256] = {
2883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2886 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2887 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2888 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2889 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2890 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 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,
2905static const uint8_t pm_encoding_ibm869_table[256] = {
2907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2911 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2912 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2913 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2914 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 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,
2929static const uint8_t pm_encoding_iso_8859_1_table[256] = {
2931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2934 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2935 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2936 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2937 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2938 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2942 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2943 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2944 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
2945 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2946 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
2953static const uint8_t pm_encoding_iso_8859_2_table[256] = {
2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2958 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2959 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2960 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2961 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2962 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2965 0, 7, 0, 7, 0, 7, 7, 0, 0, 7, 7, 7, 7, 0, 7, 7,
2966 0, 3, 0, 3, 0, 3, 3, 0, 0, 3, 3, 3, 3, 0, 3, 3,
2967 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2968 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
2969 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2970 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
2977static const uint8_t pm_encoding_iso_8859_3_table[256] = {
2979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2983 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2984 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
2985 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2986 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
2987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2989 0, 7, 0, 0, 0, 0, 7, 0, 0, 7, 7, 7, 7, 0, 0, 7,
2990 0, 3, 0, 0, 0, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 3,
2991 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2992 0, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
2993 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2994 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3001static const uint8_t pm_encoding_iso_8859_4_table[256] = {
3003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3007 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3008 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3009 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3010 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3013 0, 7, 3, 7, 0, 7, 7, 0, 0, 7, 7, 7, 7, 0, 7, 0,
3014 0, 3, 0, 3, 0, 3, 3, 0, 0, 3, 3, 3, 3, 7, 3, 3,
3015 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3016 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3017 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3018 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3025static const uint8_t pm_encoding_iso_8859_5_table[256] = {
3027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3031 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3032 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3033 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3034 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3037 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7,
3038 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3039 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3040 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3041 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3042 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3,
3049static const uint8_t pm_encoding_iso_8859_6_table[256] = {
3051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3054 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3055 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3056 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3057 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3058 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3061 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, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3064 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3065 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3066 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3073static const uint8_t pm_encoding_iso_8859_7_table[256] = {
3075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3078 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3079 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3080 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3081 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3082 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3086 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 0, 7, 0, 7, 7,
3087 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3088 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3,
3089 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3090 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
3097static const uint8_t pm_encoding_iso_8859_8_table[256] = {
3099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3102 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3103 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3104 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3105 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3106 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3110 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3113 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3114 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3121static const uint8_t pm_encoding_iso_8859_9_table[256] = {
3123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3126 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3127 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3128 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3129 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3130 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3134 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3135 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3136 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3137 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3138 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3145static const uint8_t pm_encoding_iso_8859_10_table[256] = {
3147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3150 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3151 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3152 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3153 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3154 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3157 0, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 0, 7, 7,
3158 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 0, 3, 3,
3159 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3160 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3161 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3162 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3169static const uint8_t pm_encoding_iso_8859_11_table[256] = {
3171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3175 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3176 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3177 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3178 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3181 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3182 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3183 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3184 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3,
3185 3, 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, 3, 0, 0, 0, 0,
3193static const uint8_t pm_encoding_iso_8859_13_table[256] = {
3195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3199 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3200 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3201 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3202 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3205 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7,
3206 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 3, 0, 0, 0, 0, 3,
3207 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3208 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3209 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3210 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3217static const uint8_t pm_encoding_iso_8859_14_table[256] = {
3219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3222 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3223 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3224 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3225 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3226 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3229 0, 7, 3, 0, 7, 3, 7, 0, 7, 0, 7, 3, 7, 0, 0, 7,
3230 7, 3, 7, 3, 7, 3, 0, 7, 3, 3, 3, 7, 3, 7, 3, 3,
3231 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3232 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3233 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3234 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3241static const uint8_t pm_encoding_iso_8859_15_table[256] = {
3243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3246 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3247 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3248 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3249 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3250 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3253 0, 0, 0, 0, 0, 0, 7, 0, 3, 0, 3, 0, 0, 0, 0, 0,
3254 0, 0, 0, 0, 7, 3, 0, 0, 3, 0, 3, 0, 7, 3, 7, 0,
3255 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3256 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3257 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3258 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3265static const uint8_t pm_encoding_iso_8859_16_table[256] = {
3267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3270 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3271 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3272 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3273 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3274 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3277 0, 7, 3, 7, 0, 0, 7, 0, 3, 0, 7, 0, 7, 0, 3, 7,
3278 0, 0, 7, 3, 7, 0, 0, 0, 3, 3, 3, 0, 7, 3, 7, 3,
3279 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3280 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3,
3281 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3282 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3289static const uint8_t pm_encoding_koi8_r_table[256] = {
3291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3294 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3295 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3296 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3297 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3298 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3301 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3302 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3303 3, 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 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3306 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3313static const uint8_t pm_encoding_koi8_u_table[256] = {
3315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3319 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3320 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3321 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3322 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3325 0, 0, 0, 3, 3, 0, 3, 3, 0, 0, 0, 0, 0, 3, 0, 0,
3326 0, 0, 0, 7, 7, 0, 7, 7, 0, 0, 0, 0, 0, 7, 0, 0,
3327 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3328 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 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, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3337static const uint8_t pm_encoding_mac_cent_euro_table[256] = {
3339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3343 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3344 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3345 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3346 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3349 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3361static const uint8_t pm_encoding_mac_croatian_table[256] = {
3363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3366 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3367 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3368 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3369 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3370 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3373 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3385static const uint8_t pm_encoding_mac_cyrillic_table[256] = {
3387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3391 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3392 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3393 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3394 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3397 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3409static const uint8_t pm_encoding_mac_greek_table[256] = {
3411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3414 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3415 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3416 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3417 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3418 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3421 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3433static const uint8_t pm_encoding_mac_iceland_table[256] = {
3435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3438 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3439 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3440 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3441 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3442 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3445 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3457static const uint8_t pm_encoding_mac_roman_table[256] = {
3459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3462 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3463 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3464 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3465 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3466 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3469 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,
3481static const uint8_t pm_encoding_mac_romania_table[256] = {
3483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3486 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3487 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3488 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3489 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3490 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3493 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,
3505static const uint8_t pm_encoding_mac_thai_table[256] = {
3507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3510 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3511 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3512 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3513 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3514 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 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,
3529static const uint8_t pm_encoding_tis_620_table[256] = {
3531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3534 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3535 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3536 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3537 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3538 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3541 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3542 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3543 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3544 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3,
3545 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3546 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
3553static const uint8_t pm_encoding_mac_turkish_table[256] = {
3555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3558 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3559 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3560 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3561 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3562 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3565 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,
3577static const uint8_t pm_encoding_mac_ukraine_table[256] = {
3579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3582 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3583 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3584 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3585 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3586 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3589 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,
3601static const uint8_t pm_encoding_windows_1250_table[256] = {
3603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3606 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3607 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3608 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3609 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3610 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7,
3612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 3, 3, 3,
3613 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7,
3614 0, 0, 0, 3, 0, 3, 0, 0, 0, 3, 3, 0, 7, 0, 3, 3,
3615 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3616 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3617 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3618 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3625static const uint8_t pm_encoding_windows_1251_table[256] = {
3627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3630 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3631 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3632 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3633 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3634 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3635 7, 7, 0, 3, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7,
3636 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 3, 3, 3,
3637 0, 7, 3, 7, 0, 7, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7,
3638 0, 0, 7, 3, 3, 3, 0, 0, 3, 0, 3, 0, 3, 7, 3, 3,
3639 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3640 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3641 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3642 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3649static const uint8_t pm_encoding_windows_1252_table[256] = {
3651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3655 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3656 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3657 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3658 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 7, 0,
3660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 3, 7,
3661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3662 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3663 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3664 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 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, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3673static const uint8_t pm_encoding_windows_1253_table[256] = {
3675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3678 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3679 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3680 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3681 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3682 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3685 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3686 0, 0, 0, 0, 0, 3, 7, 0, 7, 7, 7, 0, 7, 0, 7, 7,
3687 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3688 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3,
3689 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3690 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
3697static const uint8_t pm_encoding_windows_1254_table[256] = {
3699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3702 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3703 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3704 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3705 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3706 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0,
3708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 7,
3709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3710 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3711 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3712 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3713 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3714 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3,
3721static const uint8_t pm_encoding_windows_1255_table[256] = {
3723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3726 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3727 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3728 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3729 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3730 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3734 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3737 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3738 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3745static const uint8_t pm_encoding_windows_1256_table[256] = {
3747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3750 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3751 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3752 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3753 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3754 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3759 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3760 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3761 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3762 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3769static const uint8_t pm_encoding_windows_1257_table[256] = {
3771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3774 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3775 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3776 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3777 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3778 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3781 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7,
3782 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 3, 0, 0, 0, 0, 3,
3783 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3784 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3,
3785 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3786 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0,
3793static const uint8_t pm_encoding_windows_1258_table[256] = {
3795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3798 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3799 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3800 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3801 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3802 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3805 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3817static const uint8_t pm_encoding_windows_874_table[256] = {
3819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3822 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
3823 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3824 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0,
3825 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3826 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
3827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3837#define PRISM_ENCODING_TABLE(name) \
3838 static size_t pm_encoding_ ##name ## _alpha_char(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) { \
3839 return (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_ALPHABETIC_BIT); \
3841 static size_t pm_encoding_ ##name ## _alnum_char(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) { \
3842 return (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_ALPHANUMERIC_BIT) ? 1 : 0; \
3844 static bool pm_encoding_ ##name ## _isupper_char(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) { \
3845 return (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_UPPERCASE_BIT); \
3848PRISM_ENCODING_TABLE(cp850)
3849PRISM_ENCODING_TABLE(cp852)
3850PRISM_ENCODING_TABLE(cp855)
3851PRISM_ENCODING_TABLE(gb1988)
3852PRISM_ENCODING_TABLE(ibm437)
3853PRISM_ENCODING_TABLE(ibm720)
3854PRISM_ENCODING_TABLE(ibm737)
3855PRISM_ENCODING_TABLE(ibm775)
3856PRISM_ENCODING_TABLE(ibm852)
3857PRISM_ENCODING_TABLE(ibm855)
3858PRISM_ENCODING_TABLE(ibm857)
3859PRISM_ENCODING_TABLE(ibm860)
3860PRISM_ENCODING_TABLE(ibm861)
3861PRISM_ENCODING_TABLE(ibm862)
3862PRISM_ENCODING_TABLE(ibm863)
3863PRISM_ENCODING_TABLE(ibm864)
3864PRISM_ENCODING_TABLE(ibm865)
3865PRISM_ENCODING_TABLE(ibm866)
3866PRISM_ENCODING_TABLE(ibm869)
3867PRISM_ENCODING_TABLE(iso_8859_1)
3868PRISM_ENCODING_TABLE(iso_8859_2)
3869PRISM_ENCODING_TABLE(iso_8859_3)
3870PRISM_ENCODING_TABLE(iso_8859_4)
3871PRISM_ENCODING_TABLE(iso_8859_5)
3872PRISM_ENCODING_TABLE(iso_8859_6)
3873PRISM_ENCODING_TABLE(iso_8859_7)
3874PRISM_ENCODING_TABLE(iso_8859_8)
3875PRISM_ENCODING_TABLE(iso_8859_9)
3876PRISM_ENCODING_TABLE(iso_8859_10)
3877PRISM_ENCODING_TABLE(iso_8859_11)
3878PRISM_ENCODING_TABLE(iso_8859_13)
3879PRISM_ENCODING_TABLE(iso_8859_14)
3880PRISM_ENCODING_TABLE(iso_8859_15)
3881PRISM_ENCODING_TABLE(iso_8859_16)
3882PRISM_ENCODING_TABLE(koi8_r)
3883PRISM_ENCODING_TABLE(koi8_u)
3884PRISM_ENCODING_TABLE(mac_cent_euro)
3885PRISM_ENCODING_TABLE(mac_croatian)
3886PRISM_ENCODING_TABLE(mac_cyrillic)
3887PRISM_ENCODING_TABLE(mac_greek)
3888PRISM_ENCODING_TABLE(mac_iceland)
3889PRISM_ENCODING_TABLE(mac_roman)
3890PRISM_ENCODING_TABLE(mac_romania)
3891PRISM_ENCODING_TABLE(mac_thai)
3892PRISM_ENCODING_TABLE(mac_turkish)
3893PRISM_ENCODING_TABLE(mac_ukraine)
3894PRISM_ENCODING_TABLE(tis_620)
3895PRISM_ENCODING_TABLE(windows_1250)
3896PRISM_ENCODING_TABLE(windows_1251)
3897PRISM_ENCODING_TABLE(windows_1252)
3898PRISM_ENCODING_TABLE(windows_1253)
3899PRISM_ENCODING_TABLE(windows_1254)
3900PRISM_ENCODING_TABLE(windows_1255)
3901PRISM_ENCODING_TABLE(windows_1256)
3902PRISM_ENCODING_TABLE(windows_1257)
3903PRISM_ENCODING_TABLE(windows_1258)
3904PRISM_ENCODING_TABLE(windows_874)
3906#undef PRISM_ENCODING_TABLE
3914 return *b < 0x80 ? 1 : 0;
3932pm_encoding_ascii_alpha_char_7bit(
const uint8_t *b, ptrdiff_t n) {
3933 return (*b < 0x80) ? pm_encoding_ascii_alpha_char(b, n) : 0;
3951pm_encoding_ascii_alnum_char_7bit(
const uint8_t *b, ptrdiff_t n) {
3952 return (*b < 0x80) ? pm_encoding_ascii_alnum_char(b, n) : 0;
3970pm_encoding_ascii_isupper_char_7bit(
const uint8_t *b, ptrdiff_t n) {
3971 return (*b < 0x80) && pm_encoding_ascii_isupper_char(b, n);
3988pm_encoding_big5_char_width(
const uint8_t *b, ptrdiff_t n) {
3995 if ((n > 1) && (b[0] >= 0xA1 && b[0] <= 0xFE) && ((b[1] >= 0x40 && b[1] <= 0x7E) || (b[1] >= 0xA1 && b[1] <= 0xFE))) {
4007pm_encoding_cp949_char_width(
const uint8_t *b, ptrdiff_t n) {
4014 if ((n > 1) && (b[0] >= 0x81 && b[0] <= 0xfe) && (b[1] >= 0x41 && b[1] <= 0xfe)) {
4026pm_encoding_emacs_mule_char_width(
const uint8_t *b, ptrdiff_t n) {
4033 if ((n > 1) && (b[0] >= 0x81 && b[0] <= 0x8F) && (b[1] >= 0xA0)) {
4041 ((b[0] >= 0x90 && b[0] <= 0x99) && (b[1] >= 0xA0)) ||
4042 ((b[0] == 0x9A || b[0] == 0x9B) && (b[1] >= 0xE0 && b[1] <= 0xEF))
4053 ((b[0] == 0x9C) && (b[1] >= 0xF0) && (b[1] <= 0xF4)) ||
4054 ((b[0] == 0x9D) && (b[1] >= 0xF5) && (b[1] <= 0xFE))
4056 (b[2] >= 0xA0) && (b[3] >= 0xA0)
4069pm_encoding_euc_jp_char_width(
const uint8_t *b, ptrdiff_t n) {
4076 if ((n > 1) && ((b[0] == 0x8E) || (b[0] >= 0xA1 && b[0] <= 0xFE)) && (b[1] >= 0xA1 && b[1] <= 0xFE)) {
4081 if ((n > 2) && (b[0] == 0x8F) && (b[1] >= 0xA1 && b[2] <= 0xFE) && (b[2] >= 0xA1 && b[2] <= 0xFE)) {
4093pm_encoding_euc_kr_char_width(
const uint8_t *b, ptrdiff_t n) {
4100 if ((n > 1) && (b[0] >= 0xA1 && b[0] <= 0xFE) && (b[1] >= 0xA1 && b[1] <= 0xFE)) {
4112pm_encoding_euc_tw_char_width(
const uint8_t *b, ptrdiff_t n) {
4119 if ((n > 1) && (b[0] >= 0xA1) && (b[0] <= 0xFE) && (b[1] >= 0xA1) && (b[1] <= 0xFE)) {
4124 if ((n > 3) && (b[0] == 0x8E) && (b[1] >= 0xA1) && (b[1] <= 0xB0) && (b[2] >= 0xA1) && (b[2] <= 0xFE) && (b[3] >= 0xA1) && (b[3] <= 0xFE)) {
4136pm_encoding_gb18030_char_width(
const uint8_t *b, ptrdiff_t n) {
4143 if ((n > 1) && (b[0] >= 0x81 && b[0] <= 0xFE) && (b[1] >= 0x40 && b[1] <= 0xFE && b[1] != 0x7F)) {
4148 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))) {
4160pm_encoding_gbk_char_width(
const uint8_t *b, ptrdiff_t n) {
4170 ((b[0] >= 0xA1 && b[0] <= 0xA9) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4171 ((b[0] >= 0xB0 && b[0] <= 0xF7) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4172 ((b[0] >= 0x81 && b[0] <= 0xA0) && (b[1] >= 0x40 && b[1] <= 0xFE) && (b[1] != 0x7F)) ||
4173 ((b[0] >= 0xAA && b[0] <= 0xFE) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) ||
4174 ((b[0] >= 0xA8 && b[0] <= 0xA9) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) ||
4175 ((b[0] >= 0xAA && b[0] <= 0xAF) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4176 ((b[0] >= 0xF8 && b[0] <= 0xFE) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
4177 ((b[0] >= 0xA1 && b[0] <= 0xA7) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F))
4192 return ((*b >= 0x20 && *b <= 0x7E) || (*b >= 0x80)) ? 1 : 0;
4200pm_encoding_shift_jis_char_width(
const uint8_t *b, ptrdiff_t n) {
4202 if (*b < 0x80 || (*b >= 0xA1 && *b <= 0xDF)) {
4207 if ((n > 1) && ((b[0] >= 0x81 && b[0] <= 0x9F) || (b[0] >= 0xE0 && b[0] <= 0xFC)) && (b[1] >= 0x40 && b[1] <= 0xFC)) {
4218 [PM_ENCODING_UTF_8] = {
4220 .char_width = pm_encoding_utf_8_char_width,
4221 .alnum_char = pm_encoding_utf_8_alnum_char,
4222 .alpha_char = pm_encoding_utf_8_alpha_char,
4223 .isupper_char = pm_encoding_utf_8_isupper_char,
4226 [PM_ENCODING_ASCII_8BIT] = {
4227 .name =
"ASCII-8BIT",
4228 .char_width = pm_encoding_single_char_width,
4229 .alnum_char = pm_encoding_ascii_alnum_char,
4230 .alpha_char = pm_encoding_ascii_alpha_char,
4231 .isupper_char = pm_encoding_ascii_isupper_char,
4234 [PM_ENCODING_BIG5] = {
4236 .char_width = pm_encoding_big5_char_width,
4237 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4238 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4239 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4242 [PM_ENCODING_BIG5_HKSCS] = {
4243 .name =
"Big5-HKSCS",
4244 .char_width = pm_encoding_big5_char_width,
4245 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4246 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4247 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4250 [PM_ENCODING_BIG5_UAO] = {
4252 .char_width = pm_encoding_big5_char_width,
4253 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4254 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4255 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4258 [PM_ENCODING_CESU_8] = {
4260 .char_width = pm_encoding_cesu_8_char_width,
4261 .alnum_char = pm_encoding_cesu_8_alnum_char,
4262 .alpha_char = pm_encoding_cesu_8_alpha_char,
4263 .isupper_char = pm_encoding_cesu_8_isupper_char,
4266 [PM_ENCODING_CP51932] = {
4268 .char_width = pm_encoding_euc_jp_char_width,
4269 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4270 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4271 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4274 [PM_ENCODING_CP850] = {
4276 .char_width = pm_encoding_single_char_width,
4277 .alnum_char = pm_encoding_cp850_alnum_char,
4278 .alpha_char = pm_encoding_cp850_alpha_char,
4279 .isupper_char = pm_encoding_cp850_isupper_char,
4282 [PM_ENCODING_CP852] = {
4284 .char_width = pm_encoding_single_char_width,
4285 .alnum_char = pm_encoding_cp852_alnum_char,
4286 .alpha_char = pm_encoding_cp852_alpha_char,
4287 .isupper_char = pm_encoding_cp852_isupper_char,
4290 [PM_ENCODING_CP855] = {
4292 .char_width = pm_encoding_single_char_width,
4293 .alnum_char = pm_encoding_cp855_alnum_char,
4294 .alpha_char = pm_encoding_cp855_alpha_char,
4295 .isupper_char = pm_encoding_cp855_isupper_char,
4298 [PM_ENCODING_CP949] = {
4300 .char_width = pm_encoding_cp949_char_width,
4301 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4302 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4303 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4306 [PM_ENCODING_CP950] = {
4308 .char_width = pm_encoding_big5_char_width,
4309 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4310 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4311 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4314 [PM_ENCODING_CP951] = {
4316 .char_width = pm_encoding_big5_char_width,
4317 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4318 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4319 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4322 [PM_ENCODING_EMACS_MULE] = {
4323 .name =
"Emacs-Mule",
4324 .char_width = pm_encoding_emacs_mule_char_width,
4325 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4326 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4327 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4330 [PM_ENCODING_EUC_JP] = {
4332 .char_width = pm_encoding_euc_jp_char_width,
4333 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4334 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4335 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4338 [PM_ENCODING_EUC_JP_MS] = {
4340 .char_width = pm_encoding_euc_jp_char_width,
4341 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4342 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4343 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4346 [PM_ENCODING_EUC_JIS_2004] = {
4347 .name =
"EUC-JIS-2004",
4348 .char_width = pm_encoding_euc_jp_char_width,
4349 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4350 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4351 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4354 [PM_ENCODING_EUC_KR] = {
4356 .char_width = pm_encoding_euc_kr_char_width,
4357 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4358 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4359 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4362 [PM_ENCODING_EUC_TW] = {
4364 .char_width = pm_encoding_euc_tw_char_width,
4365 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4366 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4367 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4370 [PM_ENCODING_GB12345] = {
4372 .char_width = pm_encoding_euc_kr_char_width,
4373 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4374 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4375 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4378 [PM_ENCODING_GB18030] = {
4380 .char_width = pm_encoding_gb18030_char_width,
4381 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4382 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4383 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4386 [PM_ENCODING_GB1988] = {
4388 .char_width = pm_encoding_single_char_width,
4389 .alnum_char = pm_encoding_gb1988_alnum_char,
4390 .alpha_char = pm_encoding_gb1988_alpha_char,
4391 .isupper_char = pm_encoding_gb1988_isupper_char,
4394 [PM_ENCODING_GB2312] = {
4396 .char_width = pm_encoding_euc_kr_char_width,
4397 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4398 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4399 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4402 [PM_ENCODING_GBK] = {
4404 .char_width = pm_encoding_gbk_char_width,
4405 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4406 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4407 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4410 [PM_ENCODING_IBM437] = {
4412 .char_width = pm_encoding_single_char_width,
4413 .alnum_char = pm_encoding_ibm437_alnum_char,
4414 .alpha_char = pm_encoding_ibm437_alpha_char,
4415 .isupper_char = pm_encoding_ibm437_isupper_char,
4418 [PM_ENCODING_IBM720] = {
4420 .char_width = pm_encoding_single_char_width,
4421 .alnum_char = pm_encoding_ibm720_alnum_char,
4422 .alpha_char = pm_encoding_ibm720_alpha_char,
4423 .isupper_char = pm_encoding_ibm720_isupper_char,
4426 [PM_ENCODING_IBM737] = {
4428 .char_width = pm_encoding_single_char_width,
4429 .alnum_char = pm_encoding_ibm737_alnum_char,
4430 .alpha_char = pm_encoding_ibm737_alpha_char,
4431 .isupper_char = pm_encoding_ibm737_isupper_char,
4434 [PM_ENCODING_IBM775] = {
4436 .char_width = pm_encoding_single_char_width,
4437 .alnum_char = pm_encoding_ibm775_alnum_char,
4438 .alpha_char = pm_encoding_ibm775_alpha_char,
4439 .isupper_char = pm_encoding_ibm775_isupper_char,
4442 [PM_ENCODING_IBM852] = {
4444 .char_width = pm_encoding_single_char_width,
4445 .alnum_char = pm_encoding_ibm852_alnum_char,
4446 .alpha_char = pm_encoding_ibm852_alpha_char,
4447 .isupper_char = pm_encoding_ibm852_isupper_char,
4450 [PM_ENCODING_IBM855] = {
4452 .char_width = pm_encoding_single_char_width,
4453 .alnum_char = pm_encoding_ibm855_alnum_char,
4454 .alpha_char = pm_encoding_ibm855_alpha_char,
4455 .isupper_char = pm_encoding_ibm855_isupper_char,
4458 [PM_ENCODING_IBM857] = {
4460 .char_width = pm_encoding_single_char_width,
4461 .alnum_char = pm_encoding_ibm857_alnum_char,
4462 .alpha_char = pm_encoding_ibm857_alpha_char,
4463 .isupper_char = pm_encoding_ibm857_isupper_char,
4466 [PM_ENCODING_IBM860] = {
4468 .char_width = pm_encoding_single_char_width,
4469 .alnum_char = pm_encoding_ibm860_alnum_char,
4470 .alpha_char = pm_encoding_ibm860_alpha_char,
4471 .isupper_char = pm_encoding_ibm860_isupper_char,
4474 [PM_ENCODING_IBM861] = {
4476 .char_width = pm_encoding_single_char_width,
4477 .alnum_char = pm_encoding_ibm861_alnum_char,
4478 .alpha_char = pm_encoding_ibm861_alpha_char,
4479 .isupper_char = pm_encoding_ibm861_isupper_char,
4482 [PM_ENCODING_IBM862] = {
4484 .char_width = pm_encoding_single_char_width,
4485 .alnum_char = pm_encoding_ibm862_alnum_char,
4486 .alpha_char = pm_encoding_ibm862_alpha_char,
4487 .isupper_char = pm_encoding_ibm862_isupper_char,
4490 [PM_ENCODING_IBM863] = {
4492 .char_width = pm_encoding_single_char_width,
4493 .alnum_char = pm_encoding_ibm863_alnum_char,
4494 .alpha_char = pm_encoding_ibm863_alpha_char,
4495 .isupper_char = pm_encoding_ibm863_isupper_char,
4498 [PM_ENCODING_IBM864] = {
4500 .char_width = pm_encoding_single_char_width,
4501 .alnum_char = pm_encoding_ibm864_alnum_char,
4502 .alpha_char = pm_encoding_ibm864_alpha_char,
4503 .isupper_char = pm_encoding_ibm864_isupper_char,
4506 [PM_ENCODING_IBM865] = {
4508 .char_width = pm_encoding_single_char_width,
4509 .alnum_char = pm_encoding_ibm865_alnum_char,
4510 .alpha_char = pm_encoding_ibm865_alpha_char,
4511 .isupper_char = pm_encoding_ibm865_isupper_char,
4514 [PM_ENCODING_IBM866] = {
4516 .char_width = pm_encoding_single_char_width,
4517 .alnum_char = pm_encoding_ibm866_alnum_char,
4518 .alpha_char = pm_encoding_ibm866_alpha_char,
4519 .isupper_char = pm_encoding_ibm866_isupper_char,
4522 [PM_ENCODING_IBM869] = {
4524 .char_width = pm_encoding_single_char_width,
4525 .alnum_char = pm_encoding_ibm869_alnum_char,
4526 .alpha_char = pm_encoding_ibm869_alpha_char,
4527 .isupper_char = pm_encoding_ibm869_isupper_char,
4530 [PM_ENCODING_ISO_8859_1] = {
4531 .name =
"ISO-8859-1",
4532 .char_width = pm_encoding_single_char_width,
4533 .alnum_char = pm_encoding_iso_8859_1_alnum_char,
4534 .alpha_char = pm_encoding_iso_8859_1_alpha_char,
4535 .isupper_char = pm_encoding_iso_8859_1_isupper_char,
4538 [PM_ENCODING_ISO_8859_2] = {
4539 .name =
"ISO-8859-2",
4540 .char_width = pm_encoding_single_char_width,
4541 .alnum_char = pm_encoding_iso_8859_2_alnum_char,
4542 .alpha_char = pm_encoding_iso_8859_2_alpha_char,
4543 .isupper_char = pm_encoding_iso_8859_2_isupper_char,
4546 [PM_ENCODING_ISO_8859_3] = {
4547 .name =
"ISO-8859-3",
4548 .char_width = pm_encoding_single_char_width,
4549 .alnum_char = pm_encoding_iso_8859_3_alnum_char,
4550 .alpha_char = pm_encoding_iso_8859_3_alpha_char,
4551 .isupper_char = pm_encoding_iso_8859_3_isupper_char,
4554 [PM_ENCODING_ISO_8859_4] = {
4555 .name =
"ISO-8859-4",
4556 .char_width = pm_encoding_single_char_width,
4557 .alnum_char = pm_encoding_iso_8859_4_alnum_char,
4558 .alpha_char = pm_encoding_iso_8859_4_alpha_char,
4559 .isupper_char = pm_encoding_iso_8859_4_isupper_char,
4562 [PM_ENCODING_ISO_8859_5] = {
4563 .name =
"ISO-8859-5",
4564 .char_width = pm_encoding_single_char_width,
4565 .alnum_char = pm_encoding_iso_8859_5_alnum_char,
4566 .alpha_char = pm_encoding_iso_8859_5_alpha_char,
4567 .isupper_char = pm_encoding_iso_8859_5_isupper_char,
4570 [PM_ENCODING_ISO_8859_6] = {
4571 .name =
"ISO-8859-6",
4572 .char_width = pm_encoding_single_char_width,
4573 .alnum_char = pm_encoding_iso_8859_6_alnum_char,
4574 .alpha_char = pm_encoding_iso_8859_6_alpha_char,
4575 .isupper_char = pm_encoding_iso_8859_6_isupper_char,
4578 [PM_ENCODING_ISO_8859_7] = {
4579 .name =
"ISO-8859-7",
4580 .char_width = pm_encoding_single_char_width,
4581 .alnum_char = pm_encoding_iso_8859_7_alnum_char,
4582 .alpha_char = pm_encoding_iso_8859_7_alpha_char,
4583 .isupper_char = pm_encoding_iso_8859_7_isupper_char,
4586 [PM_ENCODING_ISO_8859_8] = {
4587 .name =
"ISO-8859-8",
4588 .char_width = pm_encoding_single_char_width,
4589 .alnum_char = pm_encoding_iso_8859_8_alnum_char,
4590 .alpha_char = pm_encoding_iso_8859_8_alpha_char,
4591 .isupper_char = pm_encoding_iso_8859_8_isupper_char,
4594 [PM_ENCODING_ISO_8859_9] = {
4595 .name =
"ISO-8859-9",
4596 .char_width = pm_encoding_single_char_width,
4597 .alnum_char = pm_encoding_iso_8859_9_alnum_char,
4598 .alpha_char = pm_encoding_iso_8859_9_alpha_char,
4599 .isupper_char = pm_encoding_iso_8859_9_isupper_char,
4602 [PM_ENCODING_ISO_8859_10] = {
4603 .name =
"ISO-8859-10",
4604 .char_width = pm_encoding_single_char_width,
4605 .alnum_char = pm_encoding_iso_8859_10_alnum_char,
4606 .alpha_char = pm_encoding_iso_8859_10_alpha_char,
4607 .isupper_char = pm_encoding_iso_8859_10_isupper_char,
4610 [PM_ENCODING_ISO_8859_11] = {
4611 .name =
"ISO-8859-11",
4612 .char_width = pm_encoding_single_char_width,
4613 .alnum_char = pm_encoding_iso_8859_11_alnum_char,
4614 .alpha_char = pm_encoding_iso_8859_11_alpha_char,
4615 .isupper_char = pm_encoding_iso_8859_11_isupper_char,
4618 [PM_ENCODING_ISO_8859_13] = {
4619 .name =
"ISO-8859-13",
4620 .char_width = pm_encoding_single_char_width,
4621 .alnum_char = pm_encoding_iso_8859_13_alnum_char,
4622 .alpha_char = pm_encoding_iso_8859_13_alpha_char,
4623 .isupper_char = pm_encoding_iso_8859_13_isupper_char,
4626 [PM_ENCODING_ISO_8859_14] = {
4627 .name =
"ISO-8859-14",
4628 .char_width = pm_encoding_single_char_width,
4629 .alnum_char = pm_encoding_iso_8859_14_alnum_char,
4630 .alpha_char = pm_encoding_iso_8859_14_alpha_char,
4631 .isupper_char = pm_encoding_iso_8859_14_isupper_char,
4634 [PM_ENCODING_ISO_8859_15] = {
4635 .name =
"ISO-8859-15",
4636 .char_width = pm_encoding_single_char_width,
4637 .alnum_char = pm_encoding_iso_8859_15_alnum_char,
4638 .alpha_char = pm_encoding_iso_8859_15_alpha_char,
4639 .isupper_char = pm_encoding_iso_8859_15_isupper_char,
4642 [PM_ENCODING_ISO_8859_16] = {
4643 .name =
"ISO-8859-16",
4644 .char_width = pm_encoding_single_char_width,
4645 .alnum_char = pm_encoding_iso_8859_16_alnum_char,
4646 .alpha_char = pm_encoding_iso_8859_16_alpha_char,
4647 .isupper_char = pm_encoding_iso_8859_16_isupper_char,
4650 [PM_ENCODING_KOI8_R] = {
4652 .char_width = pm_encoding_koi8_char_width,
4653 .alnum_char = pm_encoding_koi8_r_alnum_char,
4654 .alpha_char = pm_encoding_koi8_r_alpha_char,
4655 .isupper_char = pm_encoding_koi8_r_isupper_char,
4658 [PM_ENCODING_KOI8_U] = {
4660 .char_width = pm_encoding_koi8_char_width,
4661 .alnum_char = pm_encoding_koi8_u_alnum_char,
4662 .alpha_char = pm_encoding_koi8_u_alpha_char,
4663 .isupper_char = pm_encoding_koi8_u_isupper_char,
4666 [PM_ENCODING_MAC_CENT_EURO] = {
4667 .name =
"macCentEuro",
4668 .char_width = pm_encoding_single_char_width,
4669 .alnum_char = pm_encoding_mac_cent_euro_alnum_char,
4670 .alpha_char = pm_encoding_mac_cent_euro_alpha_char,
4671 .isupper_char = pm_encoding_mac_cent_euro_isupper_char,
4674 [PM_ENCODING_MAC_CROATIAN] = {
4675 .name =
"macCroatian",
4676 .char_width = pm_encoding_single_char_width,
4677 .alnum_char = pm_encoding_mac_croatian_alnum_char,
4678 .alpha_char = pm_encoding_mac_croatian_alpha_char,
4679 .isupper_char = pm_encoding_mac_croatian_isupper_char,
4682 [PM_ENCODING_MAC_CYRILLIC] = {
4683 .name =
"macCyrillic",
4684 .char_width = pm_encoding_single_char_width,
4685 .alnum_char = pm_encoding_mac_cyrillic_alnum_char,
4686 .alpha_char = pm_encoding_mac_cyrillic_alpha_char,
4687 .isupper_char = pm_encoding_mac_cyrillic_isupper_char,
4690 [PM_ENCODING_MAC_GREEK] = {
4692 .char_width = pm_encoding_single_char_width,
4693 .alnum_char = pm_encoding_mac_greek_alnum_char,
4694 .alpha_char = pm_encoding_mac_greek_alpha_char,
4695 .isupper_char = pm_encoding_mac_greek_isupper_char,
4698 [PM_ENCODING_MAC_ICELAND] = {
4699 .name =
"macIceland",
4700 .char_width = pm_encoding_single_char_width,
4701 .alnum_char = pm_encoding_mac_iceland_alnum_char,
4702 .alpha_char = pm_encoding_mac_iceland_alpha_char,
4703 .isupper_char = pm_encoding_mac_iceland_isupper_char,
4706 [PM_ENCODING_MAC_JAPANESE] = {
4707 .name =
"MacJapanese",
4708 .char_width = pm_encoding_shift_jis_char_width,
4709 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4710 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4711 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4714 [PM_ENCODING_MAC_ROMAN] = {
4716 .char_width = pm_encoding_single_char_width,
4717 .alnum_char = pm_encoding_mac_roman_alnum_char,
4718 .alpha_char = pm_encoding_mac_roman_alpha_char,
4719 .isupper_char = pm_encoding_mac_roman_isupper_char,
4722 [PM_ENCODING_MAC_ROMANIA] = {
4723 .name =
"macRomania",
4724 .char_width = pm_encoding_single_char_width,
4725 .alnum_char = pm_encoding_mac_romania_alnum_char,
4726 .alpha_char = pm_encoding_mac_romania_alpha_char,
4727 .isupper_char = pm_encoding_mac_romania_isupper_char,
4730 [PM_ENCODING_MAC_THAI] = {
4732 .char_width = pm_encoding_single_char_width,
4733 .alnum_char = pm_encoding_mac_thai_alnum_char,
4734 .alpha_char = pm_encoding_mac_thai_alpha_char,
4735 .isupper_char = pm_encoding_mac_thai_isupper_char,
4738 [PM_ENCODING_MAC_TURKISH] = {
4739 .name =
"macTurkish",
4740 .char_width = pm_encoding_single_char_width,
4741 .alnum_char = pm_encoding_mac_turkish_alnum_char,
4742 .alpha_char = pm_encoding_mac_turkish_alpha_char,
4743 .isupper_char = pm_encoding_mac_turkish_isupper_char,
4746 [PM_ENCODING_MAC_UKRAINE] = {
4747 .name =
"macUkraine",
4748 .char_width = pm_encoding_single_char_width,
4749 .alnum_char = pm_encoding_mac_ukraine_alnum_char,
4750 .alpha_char = pm_encoding_mac_ukraine_alpha_char,
4751 .isupper_char = pm_encoding_mac_ukraine_isupper_char,
4754 [PM_ENCODING_SHIFT_JIS] = {
4755 .name =
"Shift_JIS",
4756 .char_width = pm_encoding_shift_jis_char_width,
4757 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4758 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4759 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4762 [PM_ENCODING_SJIS_DOCOMO] = {
4763 .name =
"SJIS-DoCoMo",
4764 .char_width = pm_encoding_shift_jis_char_width,
4765 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4766 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4767 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4770 [PM_ENCODING_SJIS_KDDI] = {
4771 .name =
"SJIS-KDDI",
4772 .char_width = pm_encoding_shift_jis_char_width,
4773 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4774 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4775 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4778 [PM_ENCODING_SJIS_SOFTBANK] = {
4779 .name =
"SJIS-SoftBank",
4780 .char_width = pm_encoding_shift_jis_char_width,
4781 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4782 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4783 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4786 [PM_ENCODING_STATELESS_ISO_2022_JP] = {
4787 .name =
"stateless-ISO-2022-JP",
4788 .char_width = pm_encoding_emacs_mule_char_width,
4789 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4790 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4791 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4794 [PM_ENCODING_STATELESS_ISO_2022_JP_KDDI] = {
4795 .name =
"stateless-ISO-2022-JP-KDDI",
4796 .char_width = pm_encoding_emacs_mule_char_width,
4797 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4798 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4799 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4802 [PM_ENCODING_TIS_620] = {
4804 .char_width = pm_encoding_single_char_width,
4805 .alnum_char = pm_encoding_tis_620_alnum_char,
4806 .alpha_char = pm_encoding_tis_620_alpha_char,
4807 .isupper_char = pm_encoding_tis_620_isupper_char,
4810 [PM_ENCODING_US_ASCII] = {
4812 .char_width = pm_encoding_ascii_char_width,
4813 .alnum_char = pm_encoding_ascii_alnum_char,
4814 .alpha_char = pm_encoding_ascii_alpha_char,
4815 .isupper_char = pm_encoding_ascii_isupper_char,
4818 [PM_ENCODING_UTF8_MAC] = {
4820 .char_width = pm_encoding_utf_8_char_width,
4821 .alnum_char = pm_encoding_utf_8_alnum_char,
4822 .alpha_char = pm_encoding_utf_8_alpha_char,
4823 .isupper_char = pm_encoding_utf_8_isupper_char,
4826 [PM_ENCODING_UTF8_DOCOMO] = {
4827 .name =
"UTF8-DoCoMo",
4828 .char_width = pm_encoding_utf_8_char_width,
4829 .alnum_char = pm_encoding_utf_8_alnum_char,
4830 .alpha_char = pm_encoding_utf_8_alpha_char,
4831 .isupper_char = pm_encoding_utf_8_isupper_char,
4834 [PM_ENCODING_UTF8_KDDI] = {
4835 .name =
"UTF8-KDDI",
4836 .char_width = pm_encoding_utf_8_char_width,
4837 .alnum_char = pm_encoding_utf_8_alnum_char,
4838 .alpha_char = pm_encoding_utf_8_alpha_char,
4839 .isupper_char = pm_encoding_utf_8_isupper_char,
4842 [PM_ENCODING_UTF8_SOFTBANK] = {
4843 .name =
"UTF8-SoftBank",
4844 .char_width = pm_encoding_utf_8_char_width,
4845 .alnum_char = pm_encoding_utf_8_alnum_char,
4846 .alpha_char = pm_encoding_utf_8_alpha_char,
4847 .isupper_char = pm_encoding_utf_8_isupper_char,
4850 [PM_ENCODING_WINDOWS_1250] = {
4851 .name =
"Windows-1250",
4852 .char_width = pm_encoding_single_char_width,
4853 .alnum_char = pm_encoding_windows_1250_alnum_char,
4854 .alpha_char = pm_encoding_windows_1250_alpha_char,
4855 .isupper_char = pm_encoding_windows_1250_isupper_char,
4858 [PM_ENCODING_WINDOWS_1251] = {
4859 .name =
"Windows-1251",
4860 .char_width = pm_encoding_single_char_width,
4861 .alnum_char = pm_encoding_windows_1251_alnum_char,
4862 .alpha_char = pm_encoding_windows_1251_alpha_char,
4863 .isupper_char = pm_encoding_windows_1251_isupper_char,
4866 [PM_ENCODING_WINDOWS_1252] = {
4867 .name =
"Windows-1252",
4868 .char_width = pm_encoding_single_char_width,
4869 .alnum_char = pm_encoding_windows_1252_alnum_char,
4870 .alpha_char = pm_encoding_windows_1252_alpha_char,
4871 .isupper_char = pm_encoding_windows_1252_isupper_char,
4874 [PM_ENCODING_WINDOWS_1253] = {
4875 .name =
"Windows-1253",
4876 .char_width = pm_encoding_single_char_width,
4877 .alnum_char = pm_encoding_windows_1253_alnum_char,
4878 .alpha_char = pm_encoding_windows_1253_alpha_char,
4879 .isupper_char = pm_encoding_windows_1253_isupper_char,
4882 [PM_ENCODING_WINDOWS_1254] = {
4883 .name =
"Windows-1254",
4884 .char_width = pm_encoding_single_char_width,
4885 .alnum_char = pm_encoding_windows_1254_alnum_char,
4886 .alpha_char = pm_encoding_windows_1254_alpha_char,
4887 .isupper_char = pm_encoding_windows_1254_isupper_char,
4890 [PM_ENCODING_WINDOWS_1255] = {
4891 .name =
"Windows-1255",
4892 .char_width = pm_encoding_single_char_width,
4893 .alnum_char = pm_encoding_windows_1255_alnum_char,
4894 .alpha_char = pm_encoding_windows_1255_alpha_char,
4895 .isupper_char = pm_encoding_windows_1255_isupper_char,
4898 [PM_ENCODING_WINDOWS_1256] = {
4899 .name =
"Windows-1256",
4900 .char_width = pm_encoding_single_char_width,
4901 .alnum_char = pm_encoding_windows_1256_alnum_char,
4902 .alpha_char = pm_encoding_windows_1256_alpha_char,
4903 .isupper_char = pm_encoding_windows_1256_isupper_char,
4906 [PM_ENCODING_WINDOWS_1257] = {
4907 .name =
"Windows-1257",
4908 .char_width = pm_encoding_single_char_width,
4909 .alnum_char = pm_encoding_windows_1257_alnum_char,
4910 .alpha_char = pm_encoding_windows_1257_alpha_char,
4911 .isupper_char = pm_encoding_windows_1257_isupper_char,
4914 [PM_ENCODING_WINDOWS_1258] = {
4915 .name =
"Windows-1258",
4916 .char_width = pm_encoding_single_char_width,
4917 .alnum_char = pm_encoding_windows_1258_alnum_char,
4918 .alpha_char = pm_encoding_windows_1258_alpha_char,
4919 .isupper_char = pm_encoding_windows_1258_isupper_char,
4922 [PM_ENCODING_WINDOWS_31J] = {
4923 .name =
"Windows-31J",
4924 .char_width = pm_encoding_shift_jis_char_width,
4925 .alnum_char = pm_encoding_ascii_alnum_char_7bit,
4926 .alpha_char = pm_encoding_ascii_alpha_char_7bit,
4927 .isupper_char = pm_encoding_ascii_isupper_char_7bit,
4930 [PM_ENCODING_WINDOWS_874] = {
4931 .name =
"Windows-874",
4932 .char_width = pm_encoding_single_char_width,
4933 .alnum_char = pm_encoding_windows_874_alnum_char,
4934 .alpha_char = pm_encoding_windows_874_alpha_char,
4935 .isupper_char = pm_encoding_windows_874_isupper_char,
4945pm_encoding_find(
const uint8_t *start,
const uint8_t *end) {
4946 size_t width = (size_t) (end - start);
4951 if ((start + 5 <= end) && (pm_strncasecmp(start, (
const uint8_t *)
"UTF-8", 5) == 0)) {
4954 if (width == 9 && (pm_strncasecmp(start + 5, (
const uint8_t *)
"-HFS", 4) == 0)) {
4955 return &pm_encodings[PM_ENCODING_UTF8_MAC];
4964#define ENCODING1(name, encoding) if (width == sizeof(name) - 1 && pm_strncasecmp(start, (const uint8_t *) name, width) == 0) return &pm_encodings[encoding];
4965#define ENCODING2(name1, name2, encoding) ENCODING1(name1, encoding) ENCODING1(name2, encoding)
4970 ENCODING1(
"ASCII", PM_ENCODING_US_ASCII);
4971 ENCODING1(
"ASCII-8BIT", PM_ENCODING_ASCII_8BIT);
4972 ENCODING1(
"ANSI_X3.4-1968", PM_ENCODING_US_ASCII);
4975 ENCODING1(
"BINARY", PM_ENCODING_ASCII_8BIT);
4976 ENCODING1(
"Big5", PM_ENCODING_BIG5);
4977 ENCODING2(
"Big5-HKSCS",
"Big5-HKSCS:2008", PM_ENCODING_BIG5_HKSCS);
4978 ENCODING1(
"Big5-UAO", PM_ENCODING_BIG5_UAO);
4981 ENCODING1(
"CESU-8", PM_ENCODING_CESU_8);
4982 ENCODING1(
"CP437", PM_ENCODING_IBM437);
4983 ENCODING1(
"CP720", PM_ENCODING_IBM720);
4984 ENCODING1(
"CP737", PM_ENCODING_IBM737);
4985 ENCODING1(
"CP775", PM_ENCODING_IBM775);
4986 ENCODING1(
"CP850", PM_ENCODING_CP850);
4987 ENCODING1(
"CP852", PM_ENCODING_CP852);
4988 ENCODING1(
"CP855", PM_ENCODING_CP855);
4989 ENCODING1(
"CP857", PM_ENCODING_IBM857);
4990 ENCODING1(
"CP860", PM_ENCODING_IBM860);
4991 ENCODING1(
"CP861", PM_ENCODING_IBM861);
4992 ENCODING1(
"CP862", PM_ENCODING_IBM862);
4993 ENCODING1(
"CP864", PM_ENCODING_IBM864);
4994 ENCODING1(
"CP865", PM_ENCODING_IBM865);
4995 ENCODING1(
"CP866", PM_ENCODING_IBM866);
4996 ENCODING1(
"CP869", PM_ENCODING_IBM869);
4997 ENCODING1(
"CP874", PM_ENCODING_WINDOWS_874);
4998 ENCODING1(
"CP878", PM_ENCODING_KOI8_R);
4999 ENCODING1(
"CP863", PM_ENCODING_IBM863);
5000 ENCODING2(
"CP932",
"csWindows31J", PM_ENCODING_WINDOWS_31J);
5001 ENCODING1(
"CP936", PM_ENCODING_GBK);
5002 ENCODING1(
"CP949", PM_ENCODING_CP949);
5003 ENCODING1(
"CP950", PM_ENCODING_CP950);
5004 ENCODING1(
"CP951", PM_ENCODING_CP951);
5005 ENCODING1(
"CP1250", PM_ENCODING_WINDOWS_1250);
5006 ENCODING1(
"CP1251", PM_ENCODING_WINDOWS_1251);
5007 ENCODING1(
"CP1252", PM_ENCODING_WINDOWS_1252);
5008 ENCODING1(
"CP1253", PM_ENCODING_WINDOWS_1253);
5009 ENCODING1(
"CP1254", PM_ENCODING_WINDOWS_1254);
5010 ENCODING1(
"CP1255", PM_ENCODING_WINDOWS_1255);
5011 ENCODING1(
"CP1256", PM_ENCODING_WINDOWS_1256);
5012 ENCODING1(
"CP1257", PM_ENCODING_WINDOWS_1257);
5013 ENCODING1(
"CP1258", PM_ENCODING_WINDOWS_1258);
5014 ENCODING1(
"CP51932", PM_ENCODING_CP51932);
5015 ENCODING1(
"CP65001", PM_ENCODING_UTF_8);
5018 ENCODING2(
"EUC-JP",
"eucJP", PM_ENCODING_EUC_JP);
5019 ENCODING2(
"eucJP-ms",
"euc-jp-ms", PM_ENCODING_EUC_JP_MS);
5020 ENCODING2(
"EUC-JIS-2004",
"EUC-JISX0213", PM_ENCODING_EUC_JIS_2004);
5021 ENCODING2(
"EUC-KR",
"eucKR", PM_ENCODING_EUC_KR);
5022 ENCODING2(
"EUC-CN",
"eucCN", PM_ENCODING_GB2312);
5023 ENCODING2(
"EUC-TW",
"eucTW", PM_ENCODING_EUC_TW);
5024 ENCODING1(
"Emacs-Mule", PM_ENCODING_EMACS_MULE);
5025 ENCODING1(
"external", PM_ENCODING_UTF_8);
5028 ENCODING1(
"filesystem", PM_ENCODING_UTF_8);
5031 ENCODING1(
"GBK", PM_ENCODING_GBK);
5032 ENCODING1(
"GB12345", PM_ENCODING_GB12345);
5033 ENCODING1(
"GB18030", PM_ENCODING_GB18030);
5034 ENCODING1(
"GB1988", PM_ENCODING_GB1988);
5035 ENCODING1(
"GB2312", PM_ENCODING_GB2312);
5038 ENCODING1(
"IBM437", PM_ENCODING_IBM437);
5039 ENCODING1(
"IBM720", PM_ENCODING_IBM720);
5040 ENCODING1(
"IBM737", PM_ENCODING_IBM737);
5041 ENCODING1(
"IBM775", PM_ENCODING_IBM775);
5042 ENCODING1(
"IBM850", PM_ENCODING_CP850);
5043 ENCODING1(
"IBM852", PM_ENCODING_IBM852);
5044 ENCODING1(
"IBM855", PM_ENCODING_IBM855);
5045 ENCODING1(
"IBM857", PM_ENCODING_IBM857);
5046 ENCODING1(
"IBM860", PM_ENCODING_IBM860);
5047 ENCODING1(
"IBM861", PM_ENCODING_IBM861);
5048 ENCODING1(
"IBM862", PM_ENCODING_IBM862);
5049 ENCODING1(
"IBM863", PM_ENCODING_IBM863);
5050 ENCODING1(
"IBM864", PM_ENCODING_IBM864);
5051 ENCODING1(
"IBM865", PM_ENCODING_IBM865);
5052 ENCODING1(
"IBM866", PM_ENCODING_IBM866);
5053 ENCODING1(
"IBM869", PM_ENCODING_IBM869);
5054 ENCODING2(
"ISO-8859-1",
"ISO8859-1", PM_ENCODING_ISO_8859_1);
5055 ENCODING2(
"ISO-8859-2",
"ISO8859-2", PM_ENCODING_ISO_8859_2);
5056 ENCODING2(
"ISO-8859-3",
"ISO8859-3", PM_ENCODING_ISO_8859_3);
5057 ENCODING2(
"ISO-8859-4",
"ISO8859-4", PM_ENCODING_ISO_8859_4);
5058 ENCODING2(
"ISO-8859-5",
"ISO8859-5", PM_ENCODING_ISO_8859_5);
5059 ENCODING2(
"ISO-8859-6",
"ISO8859-6", PM_ENCODING_ISO_8859_6);
5060 ENCODING2(
"ISO-8859-7",
"ISO8859-7", PM_ENCODING_ISO_8859_7);
5061 ENCODING2(
"ISO-8859-8",
"ISO8859-8", PM_ENCODING_ISO_8859_8);
5062 ENCODING2(
"ISO-8859-9",
"ISO8859-9", PM_ENCODING_ISO_8859_9);
5063 ENCODING2(
"ISO-8859-10",
"ISO8859-10", PM_ENCODING_ISO_8859_10);
5064 ENCODING2(
"ISO-8859-11",
"ISO8859-11", PM_ENCODING_ISO_8859_11);
5065 ENCODING2(
"ISO-8859-13",
"ISO8859-13", PM_ENCODING_ISO_8859_13);
5066 ENCODING2(
"ISO-8859-14",
"ISO8859-14", PM_ENCODING_ISO_8859_14);
5067 ENCODING2(
"ISO-8859-15",
"ISO8859-15", PM_ENCODING_ISO_8859_15);
5068 ENCODING2(
"ISO-8859-16",
"ISO8859-16", PM_ENCODING_ISO_8859_16);
5071 ENCODING1(
"KOI8-R", PM_ENCODING_KOI8_R);
5072 ENCODING1(
"KOI8-U", PM_ENCODING_KOI8_U);
5075 ENCODING1(
"locale", PM_ENCODING_UTF_8);
5078 ENCODING1(
"macCentEuro", PM_ENCODING_MAC_CENT_EURO);
5079 ENCODING1(
"macCroatian", PM_ENCODING_MAC_CROATIAN);
5080 ENCODING1(
"macCyrillic", PM_ENCODING_MAC_CYRILLIC);
5081 ENCODING1(
"macGreek", PM_ENCODING_MAC_GREEK);
5082 ENCODING1(
"macIceland", PM_ENCODING_MAC_ICELAND);
5083 ENCODING1(
"MacJapanese", PM_ENCODING_MAC_JAPANESE);
5084 ENCODING1(
"MacJapan", PM_ENCODING_MAC_JAPANESE);
5085 ENCODING1(
"macRoman", PM_ENCODING_MAC_ROMAN);
5086 ENCODING1(
"macRomania", PM_ENCODING_MAC_ROMANIA);
5087 ENCODING1(
"macThai", PM_ENCODING_MAC_THAI);
5088 ENCODING1(
"macTurkish", PM_ENCODING_MAC_TURKISH);
5089 ENCODING1(
"macUkraine", PM_ENCODING_MAC_UKRAINE);
5092 ENCODING1(
"PCK", PM_ENCODING_WINDOWS_31J);
5095 ENCODING1(
"Shift_JIS", PM_ENCODING_SHIFT_JIS);
5096 ENCODING1(
"SJIS", PM_ENCODING_WINDOWS_31J);
5097 ENCODING1(
"SJIS-DoCoMo", PM_ENCODING_SJIS_DOCOMO);
5098 ENCODING1(
"SJIS-KDDI", PM_ENCODING_SJIS_KDDI);
5099 ENCODING1(
"SJIS-SoftBank", PM_ENCODING_SJIS_SOFTBANK);
5100 ENCODING1(
"stateless-ISO-2022-JP", PM_ENCODING_STATELESS_ISO_2022_JP);
5101 ENCODING1(
"stateless-ISO-2022-JP-KDDI", PM_ENCODING_STATELESS_ISO_2022_JP_KDDI);
5104 ENCODING1(
"TIS-620", PM_ENCODING_TIS_620);
5107 ENCODING1(
"US-ASCII", PM_ENCODING_US_ASCII);
5108 ENCODING2(
"UTF8-MAC",
"UTF-8-HFS", PM_ENCODING_UTF8_MAC);
5109 ENCODING1(
"UTF8-DoCoMo", PM_ENCODING_UTF8_DOCOMO);
5110 ENCODING1(
"UTF8-KDDI", PM_ENCODING_UTF8_KDDI);
5111 ENCODING1(
"UTF8-SoftBank", PM_ENCODING_UTF8_SOFTBANK);
5114 ENCODING1(
"Windows-31J", PM_ENCODING_WINDOWS_31J);
5115 ENCODING1(
"Windows-874", PM_ENCODING_WINDOWS_874);
5116 ENCODING1(
"Windows-1250", PM_ENCODING_WINDOWS_1250);
5117 ENCODING1(
"Windows-1251", PM_ENCODING_WINDOWS_1251);
5118 ENCODING1(
"Windows-1252", PM_ENCODING_WINDOWS_1252);
5119 ENCODING1(
"Windows-1253", PM_ENCODING_WINDOWS_1253);
5120 ENCODING1(
"Windows-1254", PM_ENCODING_WINDOWS_1254);
5121 ENCODING1(
"Windows-1255", PM_ENCODING_WINDOWS_1255);
5122 ENCODING1(
"Windows-1256", PM_ENCODING_WINDOWS_1256);
5123 ENCODING1(
"Windows-1257", PM_ENCODING_WINDOWS_1257);
5124 ENCODING1(
"Windows-1258", PM_ENCODING_WINDOWS_1258);
5127 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.