15467{
15470 static const WORD cvt1[] = {
15471
15472 0x0061,0x031A,
15473
15474 0x00E0,0x0317,
15475 0x00F8,0x0307,
15476 0x00FF,0x0001,0x0178,
15477
15478 0x0100,0x0130,
15479 0x0132,0x0106,
15480 0x0139,0x0110,
15481 0x014A,0x012E,
15482 0x0179,0x0106,
15483
15484 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA,
15485 0x01CD,0x0110,
15486 0x01DD,0x0001,0x018E,
15487 0x01DE,0x0112,
15488 0x01F3,0x0003,0x01F1,0x01F4,0x01F4,
15489 0x01F8,0x0128,
15490 0x0222,0x0112,
15491 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241,
15492 0x0246,0x010A,
15493
15494 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7,
15495
15496 0x037B,0x0003,0x03FD,0x03FE,0x03FF,
15497 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A,
15498 0x03B1,0x0311,
15499 0x03C2,0x0002,0x03A3,0x03A3,
15500 0x03C4,0x0308,
15501 0x03CC,0x0003,0x038C,0x038E,0x038F,
15502 0x03D8,0x0118,
15503 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA,
15504
15505 0x0430,0x0320,
15506 0x0450,0x0710,
15507 0x0460,0x0122,
15508 0x048A,0x0136,
15509 0x04C1,0x010E,
15510 0x04CF,0x0001,0x04C0,
15511 0x04D0,0x0144,
15512
15513 0x0561,0x0426,
15514
15515 0x0000
15516 };
15517 static const WORD cvt2[] = {
15518
15519 0x1D7D,0x0001,0x2C63,
15520
15521 0x1E00,0x0196,
15522 0x1EA0,0x015A,
15523
15524 0x1F00,0x0608,
15525 0x1F10,0x0606,
15526 0x1F20,0x0608,
15527 0x1F30,0x0608,
15528 0x1F40,0x0606,
15529 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F,
15530 0x1F60,0x0608,
15531 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB,
15532 0x1F80,0x0608,
15533 0x1F90,0x0608,
15534 0x1FA0,0x0608,
15535 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC,
15536 0x1FCC,0x0001,0x1FC3,
15537 0x1FD0,0x0602,
15538 0x1FE0,0x0602,
15539 0x1FE5,0x0001,0x1FEC,
15540 0x1FF3,0x0001,0x1FFC,
15541
15542 0x214E,0x0001,0x2132,
15543
15544 0x2170,0x0210,
15545 0x2184,0x0001,0x2183,
15546
15547 0x24D0,0x051A,
15548 0x2C30,0x042F,
15549
15550 0x2C60,0x0102,
15551 0x2C67,0x0106, 0x2C75,0x0102,
15552
15553 0x2C80,0x0164,
15554
15555 0x2D00,0x0826,
15556
15557 0xFF41,0x031A,
15558
15559 0x0000
15560 };
15561
15562
15563 if (uni < 0x10000) {
15565 p = uc < 0x1000 ? cvt1 : cvt2;
15566 for (;;) {
15567 bc = *p++;
15568 if (bc == 0 || uc < bc) break;
15569 nc = *p++;
cmd = nc >> 8; nc &= 0xFF;
15570 if (uc < bc + nc) {
15572 case 0: uc = p[uc - bc]; break;
15573 case 1: uc -= (uc - bc) & 1; break;
15574 case 2: uc -= 16; break;
15575 case 3: uc -= 32; break;
15576 case 4: uc -= 48; break;
15577 case 5: uc -= 26; break;
15578 case 6: uc += 8; break;
15579 case 7: uc -= 80; break;
15580 case 8: uc -= 0x1C60; break;
15581 }
15582 break;
15583 }
15584 if (
cmd == 0) p += nc;
15585 }
15586 uni = uc;
15587 }
15588
15589 return uni;
15590}
static ft_void_t ft_uint32_t * cmd