OSDN Git Service

* add help about --cp932inv
[nkf/nkf.git] / utf8tbl.c
index 3d17567..7969081 100644 (file)
--- a/utf8tbl.c
+++ b/utf8tbl.c
@@ -15,6 +15,23 @@ unsigned short euc_to_utf8_A1[] = {
  0xFF04, 0x00A2, 0x00A3, 0xFF05, 0xFF03, 0xFF06, 0xFF0A, 0xFF20,
  0x00A7, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7,
 };
+
+/* Microsoft UCS Mapping Compatible */
+unsigned short euc_to_utf8_A1_ms[] = {
+         0x3000, 0x3001, 0x3002, 0xFF0C, 0xFF0E, 0x30FB, 0xFF1A,
+ 0xFF1B, 0xFF1F, 0xFF01, 0x309B, 0x309C, 0x00B4, 0xFF40, 0x00A8,
+ 0xFF3E, 0xFFE3, 0xFF3F, 0x30FD, 0x30FE, 0x309D, 0x309E, 0x3003,
+ 0x4EDD, 0x3005, 0x3006, 0x3007, 0x30FC, 0x2015, 0x2010, 0xFF0F,
+ 0xFF3C, 0xFF5E, 0x2225, 0xFF5C, 0x2026, 0x2025, 0x2018, 0x2019,
+ 0x201C, 0x201D, 0xFF08, 0xFF09, 0x3014, 0x3015, 0xFF3B, 0xFF3D,
+ 0xFF5B, 0xFF5D, 0x3008, 0x3009, 0x300A, 0x300B, 0x300C, 0x300D,
+ 0x300E, 0x300F, 0x3010, 0x3011, 0xFF0B, 0xFF0D, 0x00B1, 0x00D7,
+ 0x00F7, 0xFF1D, 0x2260, 0xFF1C, 0xFF1E, 0x2266, 0x2267, 0x221E,
+ 0x2234, 0x2642, 0x2640, 0x00B0, 0x2032, 0x2033, 0x2103, 0xFFE5,
+ 0xFF04, 0xFFE0, 0xFFE1, 0xFF05, 0xFF03, 0xFF06, 0xFF0A, 0xFF20,
+ 0x00A7, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7,
+};
+
 unsigned short euc_to_utf8_A2[] = {
          0x25C6, 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC,
  0x203B, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013,      0,
@@ -29,6 +46,22 @@ unsigned short euc_to_utf8_A2[] = {
       0,      0, 0x212B, 0x2030, 0x266F, 0x266D, 0x266A, 0x2020,
  0x2021, 0x00B6,      0,      0,      0,      0, 0x25EF,
 };
+
+/* Microsoft UCS Mapping Compatible */
+unsigned short euc_to_utf8_A2_ms[] = {
+         0x25C6, 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC,
+ 0x203B, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0, 0x2208, 0x220B, 0x2286, 0x2287, 0x2282, 0x2283,
+ 0x222A, 0x2229,      0,      0,      0,      0,      0,      0,
+      0,      0, 0x2227, 0x2228, 0xFFE2, 0x21D2, 0x21D4, 0x2200,
+ 0x2203,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0, 0x2220, 0x22A5, 0x2312, 0x2202,
+ 0x2207, 0x2261, 0x2252, 0x226A, 0x226B, 0x221A, 0x223D, 0x221D,
+ 0x2235, 0x222B, 0x222C,      0,      0,      0,      0,      0,
+      0,      0, 0x212B, 0x2030, 0x266F, 0x266D, 0x266A, 0x2020,
+ 0x2021, 0x00B6,      0,      0,      0,      0, 0x25EF,
+};
 unsigned short euc_to_utf8_A3[] = {
               0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
@@ -113,6 +146,62 @@ unsigned short euc_to_utf8_A8[] = {
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,
 };
+unsigned short euc_to_utf8_A9[] = {
+         0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466,
+ 0x2467, 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E,
+ 0x246F, 0x2470, 0x2471, 0x2472, 0x2473,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0, 0x2474,
+ 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247A, 0x247B, 0x247C,
+ 0x247D, 0x247E, 0x247F, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484,
+ 0x2485, 0x2486, 0x2487,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0, 0x2776, 0x2777, 0x2778,
+ 0x2779, 0x277A, 0x277B, 0x277C, 0x277D, 0x277E,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0, 0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D,
+ 0x248E, 0x248F, 0x2490,      0,      0,      0,      0,
+};
+unsigned short euc_to_utf8_AA[] = {
+         0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166,
+ 0x2167, 0x2168, 0x2169, 0x216A, 0x216B,      0,      0,      0,
+      0,      0,      0,      0,      0, 0x2170, 0x2171, 0x2172,
+ 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217A,
+ 0x217B,      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, 0x249C, 0x249D, 0x249E,
+ 0x249F, 0x24A0, 0x24A1, 0x24A2, 0x24A3, 0x24A4, 0x24A5, 0x24A6,
+ 0x24A7, 0x24A8, 0x24A9, 0x24AA, 0x24AB, 0x24AC, 0x24AD, 0x24AE,
+ 0x24AF, 0x24B0, 0x24B1, 0x24B2, 0x24B3, 0x24B4, 0x24B5,      0,
+      0,      0,      0,      0,      0,      0,      0,
+};
+unsigned short euc_to_utf8_AB[] = {
+         0x339C, 0x339F, 0x339D, 0x33A0, 0x33A4,      0, 0x33A1,
+ 0x33A5, 0x339E, 0x33A2, 0x338E,      0, 0x338F, 0x33C4, 0x3396,
+ 0x3397, 0x2113, 0x3398, 0x33B3, 0x33B2, 0x33B1, 0x33B0, 0x2109,
+ 0x33D4, 0x33CB, 0x3390, 0x3385, 0x3386, 0x3387,      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,      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, 0x2116, 0x33CD, 0x2121,      0,
+};
+unsigned short euc_to_utf8_AC[] = {
+         0x2664, 0x2667, 0x2661, 0x2662, 0x2660, 0x2663, 0x2665,
+ 0x2666,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0, 0x3020, 0x260E, 0x3004,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0, 0x261E, 0x261C, 0x261D, 0x261F, 0x21C6, 0x21C4, 0x21C5,
+      0, 0x21E8, 0x21E6, 0x21E7, 0x21E9,      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,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,
+};
 unsigned short euc_to_utf8_AD[] = {
          0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466,
  0x2467, 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E,
@@ -125,7 +214,35 @@ unsigned short euc_to_utf8_AD[] = {
  0x301D, 0x301F, 0x2116, 0x33CD, 0x2121, 0x32A4, 0x32A5, 0x32A6,
  0x32A7, 0x32A8, 0x3231, 0x3232, 0x3239, 0x337E, 0x337D, 0x337C,
  0x2252, 0x2261, 0x222B, 0x222E, 0x2211, 0x221A, 0x22A5, 0x2220,
- 0x221F, 0x22BF, 0x2235, 0x2229, 0x222A,      0,      0,
+ 0x221F, 0x22BF, 0x2235, 0x2229, 0x222A,      0, 0x3299,
+};
+unsigned short euc_to_utf8_AE[] = {
+         0x3349, 0x3322, 0x334D, 0x3314, 0x3316, 0x3305, 0x3333,
+ 0x334E, 0x3303, 0x3336, 0x3318, 0x3315, 0x3327, 0x3351, 0x334A,
+ 0x3339, 0x3357, 0x330D, 0x3342, 0x3323, 0x3326, 0x333B, 0x332B,
+      0,      0,      0,      0,      0,      0,      0, 0x3300,
+ 0x331E, 0x332A, 0x3331, 0x3347,      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,      0,      0,      0, 0x337E,
+ 0x337D, 0x337C, 0x337B,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0, 0x337F,      0,      0,
+};
+unsigned short euc_to_utf8_AF[] = {
+         0x222E, 0x221F, 0x22BF,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0, 0x301D, 0x301F,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0, 0x3094,      0, 0x30F7, 0x30F8, 0x30F9, 0x30FA,      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,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,
 };
 unsigned short euc_to_utf8_B0[] = {
          0x4E9C, 0x5516, 0x5A03, 0x963F, 0x54C0, 0x611B, 0x6328,
@@ -1093,6 +1210,20 @@ unsigned short euc_to_utf8_F4[] = {
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,
 };
+unsigned short euc_to_utf8_F5[] = {
+              0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0, 0xFE33,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0, 0xFE31,      0,      0,
+      0,      0,      0,      0,      0, 0xFE30,      0,      0,
+      0,      0, 0xFE35, 0xFE36, 0xFE39, 0xFE3A,      0,      0,
+ 0xFE37, 0xFE38, 0xFE3F, 0xFE40, 0xFE3D, 0xFE3E, 0xFE41, 0xFE42,
+ 0xFE43, 0xFE44, 0xFE3B, 0xFE3C,      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,      0,      0,      0,
+};
 unsigned short euc_to_utf8_F9[] = {
          0x7E8A, 0x891C, 0x9348, 0x9288, 0x84DC, 0x4FC9, 0x70BB,
  0x6631, 0x68C8, 0x92F9, 0x66FB, 0x5F45, 0x4E28, 0x4EE1, 0x4EFC,
@@ -1161,13 +1292,13 @@ unsigned short euc_to_utf8_1byte[] = {
       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,      0,      0,      0,      0, 0x00A9, 0x2122,
 };
 unsigned short * euc_to_utf8_2bytes[] = {
                  euc_to_utf8_A1, euc_to_utf8_A2, euc_to_utf8_A3,
  euc_to_utf8_A4, euc_to_utf8_A5, euc_to_utf8_A6, euc_to_utf8_A7,
- euc_to_utf8_A8,              0,              0,              0,
             0, euc_to_utf8_AD,              0,              0,
+ euc_to_utf8_A8, euc_to_utf8_A9, euc_to_utf8_AA, euc_to_utf8_AB,
euc_to_utf8_AC, euc_to_utf8_AD, euc_to_utf8_AE, euc_to_utf8_AF,
  euc_to_utf8_B0, euc_to_utf8_B1, euc_to_utf8_B2, euc_to_utf8_B3,
  euc_to_utf8_B4, euc_to_utf8_B5, euc_to_utf8_B6, euc_to_utf8_B7,
  euc_to_utf8_B8, euc_to_utf8_B9, euc_to_utf8_BA, euc_to_utf8_BB,
@@ -1185,7 +1316,34 @@ unsigned short * euc_to_utf8_2bytes[] = {
  euc_to_utf8_E8, euc_to_utf8_E9, euc_to_utf8_EA, euc_to_utf8_EB,
  euc_to_utf8_EC, euc_to_utf8_ED, euc_to_utf8_EE, euc_to_utf8_EF,
  euc_to_utf8_F0, euc_to_utf8_F1, euc_to_utf8_F2, euc_to_utf8_F3,
- euc_to_utf8_F4,              0,              0,              0,
+ euc_to_utf8_F4, euc_to_utf8_F5,              0,              0,
+              0, euc_to_utf8_F9, euc_to_utf8_FA, euc_to_utf8_FB,
+ euc_to_utf8_FC,              0,              0,
+};
+/* Microsoft UCS Mapping Compatible */
+unsigned short * euc_to_utf8_2bytes_ms[] = {
+                 euc_to_utf8_A1_ms,euc_to_utf8_A2_ms, euc_to_utf8_A3,
+ euc_to_utf8_A4, euc_to_utf8_A5, euc_to_utf8_A6, euc_to_utf8_A7,
+ euc_to_utf8_A8, euc_to_utf8_A9, euc_to_utf8_AA, euc_to_utf8_AB,
+ euc_to_utf8_AC, euc_to_utf8_AD, euc_to_utf8_AE, euc_to_utf8_AF,
+ euc_to_utf8_B0, euc_to_utf8_B1, euc_to_utf8_B2, euc_to_utf8_B3,
+ euc_to_utf8_B4, euc_to_utf8_B5, euc_to_utf8_B6, euc_to_utf8_B7,
+ euc_to_utf8_B8, euc_to_utf8_B9, euc_to_utf8_BA, euc_to_utf8_BB,
+ euc_to_utf8_BC, euc_to_utf8_BD, euc_to_utf8_BE, euc_to_utf8_BF,
+ euc_to_utf8_C0, euc_to_utf8_C1, euc_to_utf8_C2, euc_to_utf8_C3,
+ euc_to_utf8_C4, euc_to_utf8_C5, euc_to_utf8_C6, euc_to_utf8_C7,
+ euc_to_utf8_C8, euc_to_utf8_C9, euc_to_utf8_CA, euc_to_utf8_CB,
+ euc_to_utf8_CC, euc_to_utf8_CD, euc_to_utf8_CE, euc_to_utf8_CF,
+ euc_to_utf8_D0, euc_to_utf8_D1, euc_to_utf8_D2, euc_to_utf8_D3,
+ euc_to_utf8_D4, euc_to_utf8_D5, euc_to_utf8_D6, euc_to_utf8_D7,
+ euc_to_utf8_D8, euc_to_utf8_D9, euc_to_utf8_DA, euc_to_utf8_DB,
+ euc_to_utf8_DC, euc_to_utf8_DD, euc_to_utf8_DE, euc_to_utf8_DF,
+ euc_to_utf8_E0, euc_to_utf8_E1, euc_to_utf8_E2, euc_to_utf8_E3,
+ euc_to_utf8_E4, euc_to_utf8_E5, euc_to_utf8_E6, euc_to_utf8_E7,
+ euc_to_utf8_E8, euc_to_utf8_E9, euc_to_utf8_EA, euc_to_utf8_EB,
+ euc_to_utf8_EC, euc_to_utf8_ED, euc_to_utf8_EE, euc_to_utf8_EF,
+ euc_to_utf8_F0, euc_to_utf8_F1, euc_to_utf8_F2, euc_to_utf8_F3,
+ euc_to_utf8_F4, euc_to_utf8_F5,              0,              0,
               0, euc_to_utf8_F9, euc_to_utf8_FA, euc_to_utf8_FB,
  euc_to_utf8_FC,              0,              0,
 };
@@ -1197,8 +1355,8 @@ unsigned short utf8_to_euc_C2[] = {
       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, 0x2171, 0x2172,      0,      0,      0, 0x2178,
- 0x212F,      0,      0,      0, 0x224C,      0,      0,      0,
0x0E20,      0, 0x2171, 0x2172,      0,      0,      0, 0x2178,
+ 0x212F, 0x0E7D,      0,      0, 0x224C,      0,      0,      0,
  0x216B, 0x215E,      0,      0, 0x212D,      0, 0x2279,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
 };
@@ -1255,7 +1413,7 @@ unsigned short utf8_to_euc_D1[] = {
 unsigned short utf8_to_euc_E280[] = {
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
- 0x213E,      0,      0,      0,      0, 0x213D, 0x2142,      0,
+ 0x213E,      0,      0,      0, 0x213D, 0x213D, 0x2142,      0,
  0x2146, 0x2147,      0,      0, 0x2148, 0x2149,      0,      0,
  0x2277, 0x2278,      0,      0,      0, 0x2145, 0x2144,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
@@ -1264,10 +1422,10 @@ unsigned short utf8_to_euc_E280[] = {
 };
 unsigned short utf8_to_euc_E284[] = {
       0,      0,      0, 0x216E,      0,      0,      0,      0,
+      0, 0x2B37,      0,      0,      0,      0,      0,      0,
+      0,      0,      0, 0x2B31,      0,      0, 0x2D62,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
-      0,      0,      0,      0,      0,      0, 0x2D62,      0,
-      0,      0,      0,      0,      0,      0,      0,      0,
-      0, 0x2D64,      0,      0,      0,      0,      0,      0,
+      0, 0x2D64, 0x0E7E,      0,      0,      0,      0,      0,
       0,      0,      0, 0x2272,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
@@ -1278,9 +1436,9 @@ unsigned short utf8_to_euc_E285[] = {
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
  0x2D35, 0x2D36, 0x2D37, 0x2D38, 0x2D39, 0x2D3A, 0x2D3B, 0x2D3C,
- 0x2D3D, 0x2D3E,      0,      0,      0,      0,      0,      0,
+ 0x2D3D, 0x2D3E, 0x2A2B, 0x2A2C,      0,      0,      0,      0,
  0x7C71, 0x7C72, 0x7C73, 0x7C74, 0x7C75, 0x7C76, 0x7C77, 0x7C78,
- 0x7C79, 0x7C7A,      0,      0,      0,      0,      0,      0,
+ 0x7C79, 0x7C7A, 0x2A3F, 0x2A40,      0,      0,      0,      0,
 };
 unsigned short utf8_to_euc_E286[] = {
       0,      0,      0,      0,      0,      0,      0,      0,
@@ -1293,12 +1451,12 @@ unsigned short utf8_to_euc_E286[] = {
       0,      0,      0,      0,      0,      0,      0,      0,
 };
 unsigned short utf8_to_euc_E287[] = {
-      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0, 0x2C4E, 0x2C4F, 0x2C4D,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0, 0x224D,      0, 0x224E,      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,      0, 0x2C52, 0x2C53,
0x2C51, 0x2C54,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
 };
@@ -1349,7 +1507,17 @@ unsigned short utf8_to_euc_E291[] = {
       0,      0,      0,      0,      0,      0,      0,      0,
  0x2D21, 0x2D22, 0x2D23, 0x2D24, 0x2D25, 0x2D26, 0x2D27, 0x2D28,
  0x2D29, 0x2D2A, 0x2D2B, 0x2D2C, 0x2D2D, 0x2D2E, 0x2D2F, 0x2D30,
- 0x2D31, 0x2D32, 0x2D33, 0x2D34,      0,      0,      0,      0,
+ 0x2D31, 0x2D32, 0x2D33, 0x2D34, 0x293F, 0x2940, 0x2941, 0x2942,
+ 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 0x294A,
+};
+unsigned short utf8_to_euc_E292[] = {
+ 0x294B, 0x294C, 0x294D, 0x294E, 0x294F, 0x2950, 0x2951, 0x2952,
+ 0x2972, 0x2973, 0x2974, 0x2975, 0x2976, 0x2977, 0x2978, 0x2979,
+ 0x297A,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0, 0x2A5D, 0x2A5E, 0x2A5F, 0x2A60,
+ 0x2A61, 0x2A62, 0x2A63, 0x2A64, 0x2A65, 0x2A66, 0x2A67, 0x2A68,
+ 0x2A69, 0x2A6A, 0x2A6B, 0x2A6C, 0x2A6D, 0x2A6E, 0x2A6F, 0x2A70,
+ 0x2A71, 0x2A72, 0x2A73, 0x2A74, 0x2A75, 0x2A76,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
 };
 unsigned short utf8_to_euc_E294[] = {
@@ -1394,9 +1562,9 @@ unsigned short utf8_to_euc_E297[] = {
 };
 unsigned short utf8_to_euc_E298[] = {
       0,      0,      0,      0,      0, 0x217A, 0x2179,      0,
+      0,      0,      0,      0,      0,      0, 0x2C36,      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, 0x2C4A, 0x2C4B, 0x2C49, 0x2C4C,
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
@@ -1407,17 +1575,27 @@ unsigned short utf8_to_euc_E299[] = {
       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,
0x2C25, 0x2C23, 0x2C24, 0x2C26, 0x2C21, 0x2C27, 0x2C28, 0x2C22,
       0,      0, 0x2276,      0,      0, 0x2275,      0, 0x2274,
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
 };
+unsigned short utf8_to_euc_E29D[] = {
+      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,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0, 0x295D, 0x295E,
+ 0x295F, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965,      0,
+};
 unsigned short utf8_to_euc_E380[] = {
- 0x2121, 0x2122, 0x2123, 0x2137,      0, 0x2139, 0x213A, 0x213B,
+ 0x2121, 0x2122, 0x2123, 0x2137, 0x2C37, 0x2139, 0x213A, 0x213B,
  0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159,
  0x215A, 0x215B, 0x2229, 0x222E, 0x214C, 0x214D,      0,      0,
       0,      0,      0,      0, 0x2141, 0x2D60,      0, 0x2D61,
     0,      0,      0,      0,      0,      0,      0,      0,
0x2C35,      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,
@@ -1435,7 +1613,7 @@ unsigned short utf8_to_euc_E381[] = {
 unsigned short utf8_to_euc_E382[] = {
  0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
  0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F,
- 0x2470, 0x2471, 0x2472, 0x2473,      0,      0,      0,      0,
+ 0x2470, 0x2471, 0x2472, 0x2473, 0x2F49,      0,      0,      0,
       0, 0x0E5E, 0x0E5F, 0x212B, 0x212C, 0x2135, 0x2136,      0,
       0, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527,
  0x2528, 0x2529, 0x252A, 0x252B, 0x252C, 0x252D, 0x252E, 0x252F,
@@ -1449,8 +1627,8 @@ unsigned short utf8_to_euc_E383[] = {
  0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, 0x255F,
  0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567,
  0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x256D, 0x256E, 0x256F,
- 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576,      0,
     0,      0,      0, 0x2126, 0x213C, 0x2133, 0x2134,      0,
+ 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, 0x2F4B,
0x2F4C, 0x2F4D, 0x2F4E, 0x2126, 0x213C, 0x2133, 0x2134,      0,
 };
 unsigned short utf8_to_euc_E388[] = {
       0,      0,      0,      0,      0,      0,      0,      0,
@@ -1458,54 +1636,64 @@ unsigned short utf8_to_euc_E388[] = {
       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,
     0, 0x2D6A, 0x2D6B,      0,      0,      0,      0,      0,
     0, 0x2D6C,      0,      0,      0,      0,      0,      0,
+      0,      0, 0x2D22, 0x2D23, 0x2D24, 0x2D25, 0x2D26, 0x2D27,
0x2D21, 0x2D6A, 0x2D6B, 0x2D34, 0x2D30, 0x2D35, 0x2D33, 0x2D29,
0x2D39, 0x2D6C, 0x2D2D, 0x2D32, 0x2D36, 0x2D37, 0x2D2F, 0x2D38,
 };
-unsigned short utf8_to_euc_E38A[] = {
+unsigned short utf8_to_euc_E389[] = {
+ 0x2D28,      0, 0x2D2A, 0x2D2B,      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,      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,
+};
+unsigned short utf8_to_euc_E38A[] = {
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0, 0x2D79,      0,
+ 0x2D7B, 0x2D7E,      0,      0,      0, 0x2D7A, 0x2D7C,      0,
       0,      0,      0,      0, 0x2D65, 0x2D66, 0x2D67, 0x2D68,
- 0x2D69,      0,      0,      0,      0,      0,      0,      0,
+ 0x2D69, 0x2D78,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
 };
 unsigned short utf8_to_euc_E38C[] = {
     0,      0,      0, 0x2D46,      0,      0,      0,      0,
0x2E3F,      0,      0, 0x2D46,      0, 0x2E26,      0,      0,
       0,      0,      0,      0,      0, 0x2D4A,      0,      0,
-      0,      0,      0,      0, 0x2D41,      0,      0,      0,
- 0x2D44,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0, 0x2D41, 0x2E2C, 0x2E25,      0,
+ 0x2D44,      0,      0,      0,      0,      0, 0x2E40,      0,
       0,      0, 0x2D42, 0x2D4C,      0,      0, 0x2D4B, 0x2D45,
-      0,      0,      0, 0x2D4D,      0,      0,      0,      0,
-      0,      0,      0,      0,      0,      0, 0x2D47,      0,
-      0,      0,      0, 0x2D4F,      0,      0,      0,      0,
+      0,      0, 0x2E41, 0x2D4D,      0,      0,      0,      0,
+      0, 0x2E42,      0, 0x2E27,      0,      0, 0x2D47,      0,
+      0, 0x2E30,      0, 0x2D4F,      0,      0,      0,      0,
 };
 unsigned short utf8_to_euc_E38D[] = {
-      0,      0,      0,      0,      0,      0,      0,      0,
-      0, 0x2D40, 0x2D4E,      0,      0, 0x2D43,      0,      0,
+      0,      0, 0x2E33,      0,      0,      0,      0, 0x2E43,
+      0, 0x2D40, 0x2D4E,      0,      0, 0x2D43, 0x2E28,      0,
       0, 0x2D48,      0,      0,      0,      0,      0, 0x2D49,
       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,
-      0,      0,      0, 0x2D5F, 0x2D6F, 0x2D6E, 0x2D6D,      0,
+      0,      0,      0, 0x2D5F, 0x2D6F, 0x2D6E, 0x2D6D, 0x2E7C,
 };
 unsigned short utf8_to_euc_E38E[] = {
-      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0, 0x2B3B, 0x2B3C, 0x2B3D,
       0,      0,      0,      0,      0,      0, 0x2D53, 0x2D54,
+ 0x2B3A,      0,      0,      0,      0,      0, 0x2B2F, 0x2B30,
+ 0x2B32,      0,      0,      0, 0x2D50, 0x2D51, 0x2D52, 0x2B22,
+ 0x2B24, 0x2D56, 0x2B2A,      0, 0x2B25, 0x2B28,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
-      0,      0,      0,      0, 0x2D50, 0x2D51, 0x2D52,      0,
-      0, 0x2D56,      0,      0,      0,      0,      0,      0,
-      0,      0,      0,      0,      0,      0,      0,      0,
-      0,      0,      0,      0,      0,      0,      0,      0,
+ 0x2B36, 0x2B35, 0x2B34, 0x2B33,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
 };
 unsigned short utf8_to_euc_E38F[] = {
       0,      0,      0,      0, 0x2D55,      0,      0,      0,
-      0,      0,      0,      0,      0, 0x2D63,      0,      0,
-      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0, 0x2B39,      0, 0x2D63,      0,      0,
+      0,      0,      0,      0, 0x2B38,      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,
@@ -4762,6 +4950,26 @@ unsigned short utf8_to_euc_EFA8[] = {
       0,      0,      0,      0,      0,      0,      0,      0,
       0,      0,      0,      0,      0,      0,      0,      0,
 };
+unsigned short utf8_to_euc_EFB8[] = {
+      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,
+      0,      0,      0,      0,      0,      0,      0,      0,
+      0,      0,      0,      0,      0,      0,      0,      0,
+ 0x7545, 0x753D,      0, 0x7532,      0, 0x754A, 0x754B, 0x7550,
+ 0x7551, 0x754C, 0x754D, 0x755A, 0x755B, 0x7554, 0x7555, 0x7552,
+};
+unsigned short utf8_to_euc_EFB9[] = {
+ 0x7553, 0x7556, 0x7557, 0x7558, 0x7559,      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,      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,
+};
 unsigned short utf8_to_euc_EFBC[] = {
       0, 0x212A, 0x7C7E, 0x2174, 0x2170, 0x2173, 0x2175, 0x7C7D,
  0x214A, 0x214B, 0x2176, 0x215C, 0x2124, 0x215D, 0x2125, 0x213F,
@@ -4807,10 +5015,10 @@ unsigned short * utf8_to_euc_E2[] = {
  utf8_to_euc_E284, utf8_to_euc_E285, utf8_to_euc_E286, utf8_to_euc_E287,
  utf8_to_euc_E288, utf8_to_euc_E289, utf8_to_euc_E28A,                0,
  utf8_to_euc_E28C,                0,                0,                0,
-                0, utf8_to_euc_E291,                0,                0,
+                0, utf8_to_euc_E291, utf8_to_euc_E292,                0,
  utf8_to_euc_E294, utf8_to_euc_E295, utf8_to_euc_E296, utf8_to_euc_E297,
  utf8_to_euc_E298, utf8_to_euc_E299,                0,                0,
-                0,                0,                0,                0,
+                0, utf8_to_euc_E29D,                0,                0,
                 0,                0,                0,                0,
                 0,                0,                0,                0,
                 0,                0,                0,                0,
@@ -4823,7 +5031,7 @@ unsigned short * utf8_to_euc_E2[] = {
 unsigned short * utf8_to_euc_E3[] = {
  utf8_to_euc_E380, utf8_to_euc_E381, utf8_to_euc_E382, utf8_to_euc_E383,
                 0,                0,                0,                0,
- utf8_to_euc_E388,                0, utf8_to_euc_E38A,                0,
+ utf8_to_euc_E388, utf8_to_euc_E389, utf8_to_euc_E38A,                0,
  utf8_to_euc_E38C, utf8_to_euc_E38D, utf8_to_euc_E38E, utf8_to_euc_E38F,
                 0,                0,                0,                0,
                 0,                0,                0,                0,
@@ -4961,7 +5169,7 @@ unsigned short * utf8_to_euc_EF[] = {
                 0,                0,                0,                0,
                 0,                0,                0,                0,
                 0,                0,                0,                0,
               0,                0,                0,                0,
utf8_to_euc_EFB8, utf8_to_euc_EFB9,                0,                0,
  utf8_to_euc_EFBC, utf8_to_euc_EFBD, utf8_to_euc_EFBE, utf8_to_euc_EFBF,
 };
 unsigned short * utf8_to_euc_2bytes[] = {
@@ -5107,5 +5315,59 @@ unsigned short shiftjis_cp932[3][189] = {
        0,      0,      0,      0,      0,
  },
 };
+unsigned short cp932inv[2][189] = {
+ {
+  0xFA5C, 0xFA5D, 0xFA5E, 0xFA5F, 0xFA60, 0xFA61, 0xFA62, 0xFA63,
+  0xFA64, 0xFA65, 0xFA66, 0xFA67, 0xFA68, 0xFA69, 0xFA6A, 0xFA6B,
+  0xFA6C, 0xFA6D, 0xFA6E, 0xFA6F, 0xFA70, 0xFA71, 0xFA72, 0xFA73,
+  0xFA74, 0xFA75, 0xFA76, 0xFA77, 0xFA78, 0xFA79, 0xFA7A, 0xFA7B,
+  0xFA7C, 0xFA7D, 0xFA7E, 0xFA80, 0xFA81, 0xFA82, 0xFA83, 0xFA84,
+  0xFA85, 0xFA86, 0xFA87, 0xFA88, 0xFA89, 0xFA8A, 0xFA8B, 0xFA8C,
+  0xFA8D, 0xFA8E, 0xFA8F, 0xFA90, 0xFA91, 0xFA92, 0xFA93, 0xFA94,
+  0xFA95, 0xFA96, 0xFA97, 0xFA98, 0xFA99, 0xFA9A, 0xFA9B,      0,
+  0xFA9C, 0xFA9D, 0xFA9E, 0xFA9F, 0xFAA0, 0xFAA1, 0xFAA2, 0xFAA3,
+  0xFAA4, 0xFAA5, 0xFAA6, 0xFAA7, 0xFAA8, 0xFAA9, 0xFAAA, 0xFAAB,
+  0xFAAC, 0xFAAD, 0xFAAE, 0xFAAF, 0xFAB0, 0xFAB1, 0xFAB2, 0xFAB3,
+  0xFAB4, 0xFAB5, 0xFAB6, 0xFAB7, 0xFAB8, 0xFAB9, 0xFABA, 0xFABB,
+  0xFABC, 0xFABD, 0xFABE, 0xFABF, 0xFAC0, 0xFAC1, 0xFAC2, 0xFAC3,
+  0xFAC4, 0xFAC5, 0xFAC6, 0xFAC7, 0xFAC8, 0xFAC9, 0xFACA, 0xFACB,
+  0xFACC, 0xFACD, 0xFACE, 0xFACF, 0xFAD0, 0xFAD1, 0xFAD2, 0xFAD3,
+  0xFAD4, 0xFAD5, 0xFAD6, 0xFAD7, 0xFAD8, 0xFAD9, 0xFADA, 0xFADB,
+  0xFADC, 0xFADD, 0xFADE, 0xFADF, 0xFAE0, 0xFAE1, 0xFAE2, 0xFAE3,
+  0xFAE4, 0xFAE5, 0xFAE6, 0xFAE7, 0xFAE8, 0xFAE9, 0xFAEA, 0xFAEB,
+  0xFAEC, 0xFAED, 0xFAEE, 0xFAEF, 0xFAF0, 0xFAF1, 0xFAF2, 0xFAF3,
+  0xFAF4, 0xFAF5, 0xFAF6, 0xFAF7, 0xFAF8, 0xFAF9, 0xFAFA, 0xFAFB,
+  0xFAFC, 0xFB40, 0xFB41, 0xFB42, 0xFB43, 0xFB44, 0xFB45, 0xFB46,
+  0xFB47, 0xFB48, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4C, 0xFB4D, 0xFB4E,
+  0xFB4F, 0xFB50, 0xFB51, 0xFB52, 0xFB53, 0xFB54, 0xFB55, 0xFB56,
+  0xFB57, 0xFB58, 0xFB59, 0xFB5A, 0xFB5B,
+ },
+ {
+  0xFB5C, 0xFB5D, 0xFB5E, 0xFB5F, 0xFB60, 0xFB61, 0xFB62, 0xFB63,
+  0xFB64, 0xFB65, 0xFB66, 0xFB67, 0xFB68, 0xFB69, 0xFB6A, 0xFB6B,
+  0xFB6C, 0xFB6D, 0xFB6E, 0xFB6F, 0xFB70, 0xFB71, 0xFB72, 0xFB73,
+  0xFB74, 0xFB75, 0xFB76, 0xFB77, 0xFB78, 0xFB79, 0xFB7A, 0xFB7B,
+  0xFB7C, 0xFB7D, 0xFB7E, 0xFB80, 0xFB81, 0xFB82, 0xFB83, 0xFB84,
+  0xFB85, 0xFB86, 0xFB87, 0xFB88, 0xFB89, 0xFB8A, 0xFB8B, 0xFB8C,
+  0xFB8D, 0xFB8E, 0xFB8F, 0xFB90, 0xFB91, 0xFB92, 0xFB93, 0xFB94,
+  0xFB95, 0xFB96, 0xFB97, 0xFB98, 0xFB99, 0xFB9A, 0xFB9B,      0,
+  0xFB9C, 0xFB9D, 0xFB9E, 0xFB9F, 0xFBA0, 0xFBA1, 0xFBA2, 0xFBA3,
+  0xFBA4, 0xFBA5, 0xFBA6, 0xFBA7, 0xFBA8, 0xFBA9, 0xFBAA, 0xFBAB,
+  0xFBAC, 0xFBAD, 0xFBAE, 0xFBAF, 0xFBB0, 0xFBB1, 0xFBB2, 0xFBB3,
+  0xFBB4, 0xFBB5, 0xFBB6, 0xFBB7, 0xFBB8, 0xFBB9, 0xFBBA, 0xFBBB,
+  0xFBBC, 0xFBBD, 0xFBBE, 0xFBBF, 0xFBC0, 0xFBC1, 0xFBC2, 0xFBC3,
+  0xFBC4, 0xFBC5, 0xFBC6, 0xFBC7, 0xFBC8, 0xFBC9, 0xFBCA, 0xFBCB,
+  0xFBCC, 0xFBCD, 0xFBCE, 0xFBCF, 0xFBD0, 0xFBD1, 0xFBD2, 0xFBD3,
+  0xFBD4, 0xFBD5, 0xFBD6, 0xFBD7, 0xFBD8, 0xFBD9, 0xFBDA, 0xFBDB,
+  0xFBDC, 0xFBDD, 0xFBDE, 0xFBDF, 0xFBE0, 0xFBE1, 0xFBE2, 0xFBE3,
+  0xFBE4, 0xFBE5, 0xFBE6, 0xFBE7, 0xFBE8, 0xFBE9, 0xFBEA, 0xFBEB,
+  0xFBEC, 0xFBED, 0xFBEE, 0xFBEF, 0xFBF0, 0xFBF1, 0xFBF2, 0xFBF3,
+  0xFBF4, 0xFBF5, 0xFBF6, 0xFBF7, 0xFBF8, 0xFBF9, 0xFBFA, 0xFBFB,
+  0xFBFC, 0xFC40, 0xFC41, 0xFC42, 0xFC43, 0xFC44, 0xFC45, 0xFC46,
+  0xFC47, 0xFC48, 0xFC49, 0xFC4A, 0xFC4B,      0,      0, 0xFA40,
+  0xFA41, 0xFA42, 0xFA43, 0xFA44, 0xFA45, 0xFA46, 0xFA47, 0xFA48,
+  0xFA49,      0, 0xFA55, 0xFA56, 0xFA57,
+ },
+};
 #endif /* SHIFTJIS_CP932_TRANS */
 ;