]> granicus.if.org Git - postgresql/commitdiff
Enhance multibyte support.
authorTatsuo Ishii <ishii@postgresql.org>
Sat, 20 May 2000 13:12:26 +0000 (13:12 +0000)
committerTatsuo Ishii <ishii@postgresql.org>
Sat, 20 May 2000 13:12:26 +0000 (13:12 +0000)
SJIS UDC (NEC selection IBM kanji) support contributed by Eiji Tokuya

src/backend/utils/mb/conv.c

index b274440e7f01236dbe8bd1f5d3ac86f4620da01e..7ee42f0e336f155fd008192da80c3545487f87e7 100644 (file)
@@ -2,9 +2,11 @@
  * conversion between client encoding and server internal encoding
  * (currently mule internal code (mic) is used)
  * Tatsuo Ishii
+ *
  * WIN1250 client encoding support contributed by Pavel Behal
+ * SJIS UDC (NEC selection IBM kanji) support contributed by Eiji Tokuya
  *
- * $Id: conv.c,v 1.14 2000/04/12 17:16:06 momjian Exp $
+ * $Id: conv.c,v 1.15 2000/05/20 13:12:26 ishii Exp $
  *
  *
  */
 /*
  * conversion table between SJIS UDC (IBM kanji) and EUC_JP
  */
+/* Eiji Tokuya patched begin */
 static struct
 {
-       int                     sjis;                   /* SJIS UDC (IBM kanji) */
+       unsigned short int nec;         /* SJIS UDC (NEC selection IBM kanji) */
+       unsigned short int sjis;        /* SJIS UDC (IBM kanji) */
        int                     euc;                    /* EUC_JP */
-}                      ibmkanji[] =
-
-{
-       {
-               0xfa40, 0x8ff3f3
-       },
-       {
-               0xfa41, 0x8ff3f4
-       },
-       {
-               0xfa42, 0x8ff3f5
-       },
-       {
-               0xfa43, 0x8ff3f6
-       },
-       {
-               0xfa44, 0x8ff3f7
-       },
-       {
-               0xfa45, 0x8ff3f8
-       },
-       {
-               0xfa46, 0x8ff3f9
-       },
-       {
-               0xfa47, 0x8ff3fa
-       },
-       {
-               0xfa48, 0x8ff3fb
-       },
-       {
-               0xfa49, 0x8ff3fc
-       },
-       {
-               0xfa4a, 0x8ff3fd
-       },
-       {
-               0xfa4b, 0x8ff3fe
-       },
-       {
-               0xfa4c, 0x8ff4a1
-       },
-       {
-               0xfa4d, 0x8ff4a2
-       },
-       {
-               0xfa4e, 0x8ff4a3
-       },
-       {
-               0xfa4f, 0x8ff4a4
-       },
-       {
-               0xfa50, 0x8ff4a5
-       },
-       {
-               0xfa51, 0x8ff4a6
-       },
-       {
-               0xfa52, 0x8ff4a7
-       },
-       {
-               0xfa53, 0x8ff4a8
-       },
-       {
-               0xfa54, 0xa2cc
-       },
-       {
-               0xfa55, 0x8fa2c3
-       },
-       {
-               0xfa56, 0x8ff4a9
-       },
-       {
-               0xfa57, 0x8ff4aa
-       },
-       {
-               0xfa58, 0x8ff4ab
-       },
-       {
-               0xfa59, 0x8ff4ac
-       },
-       {
-               0xfa5a, 0x8ff4ad
-       },
-       {
-               0xfa5b, 0xa2e8
-       },
-       {
-               0xfa5c, 0x8fd4e3
-       },
-       {
-               0xfa5d, 0x8fdcdf
-       },
-       {
-               0xfa5e, 0x8fe4e9
-       },
-       {
-               0xfa5f, 0x8fe3f8
-       },
-       {
-               0xfa60, 0x8fd9a1
-       },
-       {
-               0xfa61, 0x8fb1bb
-       },
-       {
-               0xfa62, 0x8ff4ae
-       },
-       {
-               0xfa63, 0x8fc2ad
-       },
-       {
-               0xfa64, 0x8fc3fc
-       },
-       {
-               0xfa65, 0x8fe4d0
-       },
-       {
-               0xfa66, 0x8fc2bf
-       },
-       {
-               0xfa67, 0x8fbcf4
-       },
-       {
-               0xfa68, 0x8fb0a9
-       },
-       {
-               0xfa69, 0x8fb0c8
-       },
-       {
-               0xfa6a, 0x8ff4af
-       },
-       {
-               0xfa6b, 0x8fb0d2
-       },
-       {
-               0xfa6c, 0x8fb0d4
-       },
-       {
-               0xfa6d, 0x8fb0e3
-       },
-       {
-               0xfa6e, 0x8fb0ee
-       },
-       {
-               0xfa6f, 0x8fb1a7
-       },
-       {
-               0xfa70, 0x8fb1a3
-       },
-       {
-               0xfa71, 0x8fb1ac
-       },
-       {
-               0xfa72, 0x8fb1a9
-       },
-       {
-               0xfa73, 0x8fb1be
-       },
-       {
-               0xfa74, 0x8fb1df
-       },
-       {
-               0xfa75, 0x8fb1d8
-       },
-       {
-               0xfa76, 0x8fb1c8
-       },
-       {
-               0xfa77, 0x8fb1d7
-       },
-       {
-               0xfa78, 0x8fb1e3
-       },
-       {
-               0xfa79, 0x8fb1f4
-       },
-       {
-               0xfa7a, 0x8fb1e1
-       },
-       {
-               0xfa7b, 0x8fb2a3
-       },
-       {
-               0xfa7c, 0x8ff4b0
-       },
-       {
-               0xfa7d, 0x8fb2bb
-       },
-       {
-               0xfa7e, 0x8fb2e6
-       },
-       {
-               0xfa80, 0x8fb2ed
-       },
-       {
-               0xfa81, 0x8fb2f5
-       },
-       {
-               0xfa82, 0x8fb2fc
-       },
-       {
-               0xfa83, 0x8ff4b1
-       },
-       {
-               0xfa84, 0x8fb3b5
-       },
-       {
-               0xfa85, 0x8fb3d8
-       },
-       {
-               0xfa86, 0x8fb3db
-       },
-       {
-               0xfa87, 0x8fb3e5
-       },
-       {
-               0xfa88, 0x8fb3ee
-       },
-       {
-               0xfa89, 0x8fb3fb
-       },
-       {
-               0xfa8a, 0x8ff4b2
-       },
-       {
-               0xfa8b, 0x8ff4b3
-       },
-       {
-               0xfa8c, 0x8fb4c0
-       },
-       {
-               0xfa8d, 0x8fb4c7
-       },
-       {
-               0xfa8e, 0x8fb4d0
-       },
-       {
-               0xfa8f, 0x8fb4de
-       },
-       {
-               0xfa90, 0x8ff4b4
-       },
-       {
-               0xfa91, 0x8fb5aa
-       },
-       {
-               0xfa92, 0x8ff4b5
-       },
-       {
-               0xfa93, 0x8fb5af
-       },
-       {
-               0xfa94, 0x8fb5c4
-       },
-       {
-               0xfa95, 0x8fb5e8
-       },
-       {
-               0xfa96, 0x8ff4b6
-       },
-       {
-               0xfa97, 0x8fb7c2
-       },
-       {
-               0xfa98, 0x8fb7e4
-       },
-       {
-               0xfa99, 0x8fb7e8
-       },
-       {
-               0xfa9a, 0x8fb7e7
-       },
-       {
-               0xfa9b, 0x8ff4b7
-       },
-       {
-               0xfa9c, 0x8ff4b8
-       },
-       {
-               0xfa9d, 0x8ff4b9
-       },
-       {
-               0xfa9e, 0x8fb8ce
-       },
-       {
-               0xfa9f, 0x8fb8e1
-       },
-       {
-               0xfaa0, 0x8fb8f5
-       },
-       {
-               0xfaa1, 0x8fb8f7
-       },
-       {
-               0xfaa2, 0x8fb8f8
-       },
-       {
-               0xfaa3, 0x8fb8fc
-       },
-       {
-               0xfaa4, 0x8fb9af
-       },
-       {
-               0xfaa5, 0x8fb9b7
-       },
-       {
-               0xfaa6, 0x8fbabe
-       },
-       {
-               0xfaa7, 0x8fbadb
-       },
-       {
-               0xfaa8, 0x8fcdaa
-       },
-       {
-               0xfaa9, 0x8fbae1
-       },
-       {
-               0xfaaa, 0x8ff4ba
-       },
-       {
-               0xfaab, 0x8fbaeb
-       },
-       {
-               0xfaac, 0x8fbbb3
-       },
-       {
-               0xfaad, 0x8fbbb8
-       },
-       {
-               0xfaae, 0x8ff4bb
-       },
-       {
-               0xfaaf, 0x8fbbca
-       },
-       {
-               0xfab0, 0x8ff4bc
-       },
-       {
-               0xfab1, 0x8ff4bd
-       },
-       {
-               0xfab2, 0x8fbbd0
-       },
-       {
-               0xfab3, 0x8fbbde
-       },
-       {
-               0xfab4, 0x8fbbf4
-       },
-       {
-               0xfab5, 0x8fbbf5
-       },
-       {
-               0xfab6, 0x8fbbf9
-       },
-       {
-               0xfab7, 0x8fbce4
-       },
-       {
-               0xfab8, 0x8fbced
-       },
-       {
-               0xfab9, 0x8fbcfe
-       },
-       {
-               0xfaba, 0x8ff4be
-       },
-       {
-               0xfabb, 0x8fbdc2
-       },
-       {
-               0xfabc, 0x8fbde7
-       },
-       {
-               0xfabd, 0x8ff4bf
-       },
-       {
-               0xfabe, 0x8fbdf0
-       },
-       {
-               0xfabf, 0x8fbeb0
-       },
-       {
-               0xfac0, 0x8fbeac
-       },
-       {
-               0xfac1, 0x8ff4c0
-       },
-       {
-               0xfac2, 0x8fbeb3
-       },
-       {
-               0xfac3, 0x8fbebd
-       },
-       {
-               0xfac4, 0x8fbecd
-       },
-       {
-               0xfac5, 0x8fbec9
-       },
-       {
-               0xfac6, 0x8fbee4
-       },
-       {
-               0xfac7, 0x8fbfa8
-       },
-       {
-               0xfac8, 0x8fbfc9
-       },
-       {
-               0xfac9, 0x8fc0c4
-       },
-       {
-               0xfaca, 0x8fc0e4
-       },
-       {
-               0xfacb, 0x8fc0f4
-       },
-       {
-               0xfacc, 0x8fc1a6
-       },
-       {
-               0xfacd, 0x8ff4c1
-       },
-       {
-               0xface, 0x8fc1f5
-       },
-       {
-               0xfacf, 0x8fc1fc
-       },
-       {
-               0xfad0, 0x8ff4c2
-       },
-       {
-               0xfad1, 0x8fc1f8
-       },
-       {
-               0xfad2, 0x8fc2ab
-       },
-       {
-               0xfad3, 0x8fc2a1
-       },
-       {
-               0xfad4, 0x8fc2a5
-       },
-       {
-               0xfad5, 0x8ff4c3
-       },
-       {
-               0xfad6, 0x8fc2b8
-       },
-       {
-               0xfad7, 0x8fc2ba
-       },
-       {
-               0xfad8, 0x8ff4c4
-       },
-       {
-               0xfad9, 0x8fc2c4
-       },
-       {
-               0xfada, 0x8fc2d2
-       },
-       {
-               0xfadb, 0x8fc2d7
-       },
-       {
-               0xfadc, 0x8fc2db
-       },
-       {
-               0xfadd, 0x8fc2de
-       },
-       {
-               0xfade, 0x8fc2ed
-       },
-       {
-               0xfadf, 0x8fc2f0
-       },
-       {
-               0xfae0, 0x8ff4c5
-       },
-       {
-               0xfae1, 0x8fc3a1
-       },
-       {
-               0xfae2, 0x8fc3b5
-       },
-       {
-               0xfae3, 0x8fc3c9
-       },
-       {
-               0xfae4, 0x8fc3b9
-       },
-       {
-               0xfae5, 0x8ff4c6
-       },
-       {
-               0xfae6, 0x8fc3d8
-       },
-       {
-               0xfae7, 0x8fc3fe
-       },
-       {
-               0xfae8, 0x8ff4c7
-       },
-       {
-               0xfae9, 0x8fc4cc
-       },
-       {
-               0xfaea, 0x8ff4c8
-       },
-       {
-               0xfaeb, 0x8fc4d9
-       },
-       {
-               0xfaec, 0x8fc4ea
-       },
-       {
-               0xfaed, 0x8fc4fd
-       },
-       {
-               0xfaee, 0x8ff4c9
-       },
-       {
-               0xfaef, 0x8fc5a7
-       },
-       {
-               0xfaf0, 0x8fc5b5
-       },
-       {
-               0xfaf1, 0x8fc5b6
-       },
-       {
-               0xfaf2, 0x8ff4ca
-       },
-       {
-               0xfaf3, 0x8fc5d5
-       },
-       {
-               0xfaf4, 0x8fc6b8
-       },
-       {
-               0xfaf5, 0x8fc6d7
-       },
-       {
-               0xfaf6, 0x8fc6e0
-       },
-       {
-               0xfaf7, 0x8fc6ea
-       },
-       {
-               0xfaf8, 0x8fc6e3
-       },
-       {
-               0xfaf9, 0x8fc7a1
-       },
-       {
-               0xfafa, 0x8fc7ab
-       },
-       {
-               0xfafb, 0x8fc7c7
-       },
-       {
-               0xfafc, 0x8fc7c3
-       },
-       {
-               0xfb40, 0x8fc7cb
-       },
-       {
-               0xfb41, 0x8fc7cf
-       },
-       {
-               0xfb42, 0x8fc7d9
-       },
-       {
-               0xfb43, 0x8ff4cb
-       },
-       {
-               0xfb44, 0x8ff4cc
-       },
-       {
-               0xfb45, 0x8fc7e6
-       },
-       {
-               0xfb46, 0x8fc7ee
-       },
-       {
-               0xfb47, 0x8fc7fc
-       },
-       {
-               0xfb48, 0x8fc7eb
-       },
-       {
-               0xfb49, 0x8fc7f0
-       },
-       {
-               0xfb4a, 0x8fc8b1
-       },
-       {
-               0xfb4b, 0x8fc8e5
-       },
-       {
-               0xfb4c, 0x8fc8f8
-       },
-       {
-               0xfb4d, 0x8fc9a6
-       },
-       {
-               0xfb4e, 0x8fc9ab
-       },
-       {
-               0xfb4f, 0x8fc9ad
-       },
-       {
-               0xfb50, 0x8ff4cd
-       },
-       {
-               0xfb51, 0x8fc9ca
-       },
-       {
-               0xfb52, 0x8fc9d3
-       },
-       {
-               0xfb53, 0x8fc9e9
-       },
-       {
-               0xfb54, 0x8fc9e3
-       },
-       {
-               0xfb55, 0x8fc9fc
-       },
-       {
-               0xfb56, 0x8fc9f4
-       },
-       {
-               0xfb57, 0x8fc9f5
-       },
-       {
-               0xfb58, 0x8ff4ce
-       },
-       {
-               0xfb59, 0x8fcab3
-       },
-       {
-               0xfb5a, 0x8fcabd
-       },
-       {
-               0xfb5b, 0x8fcaef
-       },
-       {
-               0xfb5c, 0x8fcaf1
-       },
-       {
-               0xfb5d, 0x8fcbae
-       },
-       {
-               0xfb5e, 0x8ff4cf
-       },
-       {
-               0xfb5f, 0x8fcbca
-       },
-       {
-               0xfb60, 0x8fcbe6
-       },
-       {
-               0xfb61, 0x8fcbea
-       },
-       {
-               0xfb62, 0x8fcbf0
-       },
-       {
-               0xfb63, 0x8fcbf4
-       },
-       {
-               0xfb64, 0x8fcbee
-       },
-       {
-               0xfb65, 0x8fcca5
-       },
-       {
-               0xfb66, 0x8fcbf9
-       },
-       {
-               0xfb67, 0x8fccab
-       },
-       {
-               0xfb68, 0x8fccae
-       },
-       {
-               0xfb69, 0x8fccad
-       },
-       {
-               0xfb6a, 0x8fccb2
-       },
-       {
-               0xfb6b, 0x8fccc2
-       },
-       {
-               0xfb6c, 0x8fccd0
-       },
-       {
-               0xfb6d, 0x8fccd9
-       },
-       {
-               0xfb6e, 0x8ff4d0
-       },
-       {
-               0xfb6f, 0x8fcdbb
-       },
-       {
-               0xfb70, 0x8ff4d1
-       },
-       {
-               0xfb71, 0x8fcebb
-       },
-       {
-               0xfb72, 0x8ff4d2
-       },
-       {
-               0xfb73, 0x8fceba
-       },
-       {
-               0xfb74, 0x8fcec3
-       },
-       {
-               0xfb75, 0x8ff4d3
-       },
-       {
-               0xfb76, 0x8fcef2
-       },
-       {
-               0xfb77, 0x8fb3dd
-       },
-       {
-               0xfb78, 0x8fcfd5
-       },
-       {
-               0xfb79, 0x8fcfe2
-       },
-       {
-               0xfb7a, 0x8fcfe9
-       },
-       {
-               0xfb7b, 0x8fcfed
-       },
-       {
-               0xfb7c, 0x8ff4d4
-       },
-       {
-               0xfb7d, 0x8ff4d5
-       },
-       {
-               0xfb7e, 0x8ff4d6
-       },
-       {
-               0xfb80, 0x8ff4d7
-       },
-       {
-               0xfb81, 0x8fd0e5
-       },
-       {
-               0xfb82, 0x8ff4d8
-       },
-       {
-               0xfb83, 0x8fd0e9
-       },
-       {
-               0xfb84, 0x8fd1e8
-       },
-       {
-               0xfb85, 0x8ff4d9
-       },
-       {
-               0xfb86, 0x8ff4da
-       },
-       {
-               0xfb87, 0x8fd1ec
-       },
-       {
-               0xfb88, 0x8fd2bb
-       },
-       {
-               0xfb89, 0x8ff4db
-       },
-       {
-               0xfb8a, 0x8fd3e1
-       },
-       {
-               0xfb8b, 0x8fd3e8
-       },
-       {
-               0xfb8c, 0x8fd4a7
-       },
-       {
-               0xfb8d, 0x8ff4dc
-       },
-       {
-               0xfb8e, 0x8ff4dd
-       },
-       {
-               0xfb8f, 0x8fd4d4
-       },
-       {
-               0xfb90, 0x8fd4f2
-       },
-       {
-               0xfb91, 0x8fd5ae
-       },
-       {
-               0xfb92, 0x8ff4de
-       },
-       {
-               0xfb93, 0x8fd7de
-       },
-       {
-               0xfb94, 0x8ff4df
-       },
-       {
-               0xfb95, 0x8fd8a2
-       },
-       {
-               0xfb96, 0x8fd8b7
-       },
-       {
-               0xfb97, 0x8fd8c1
-       },
-       {
-               0xfb98, 0x8fd8d1
-       },
-       {
-               0xfb99, 0x8fd8f4
-       },
-       {
-               0xfb9a, 0x8fd9c6
-       },
-       {
-               0xfb9b, 0x8fd9c8
-       },
-       {
-               0xfb9c, 0x8fd9d1
-       },
-       {
-               0xfb9d, 0x8ff4e0
-       },
-       {
-               0xfb9e, 0x8ff4e1
-       },
-       {
-               0xfb9f, 0x8ff4e2
-       },
-       {
-               0xfba0, 0x8ff4e3
-       },
-       {
-               0xfba1, 0x8ff4e4
-       },
-       {
-               0xfba2, 0x8fdcd3
-       },
-       {
-               0xfba3, 0x8fddc8
-       },
-       {
-               0xfba4, 0x8fddd4
-       },
-       {
-               0xfba5, 0x8fddea
-       },
-       {
-               0xfba6, 0x8fddfa
-       },
-       {
-               0xfba7, 0x8fdea4
-       },
-       {
-               0xfba8, 0x8fdeb0
-       },
-       {
-               0xfba9, 0x8ff4e5
-       },
-       {
-               0xfbaa, 0x8fdeb5
-       },
-       {
-               0xfbab, 0x8fdecb
-       },
-       {
-               0xfbac, 0x8ff4e6
-       },
-       {
-               0xfbad, 0x8fdfb9
-       },
-       {
-               0xfbae, 0x8ff4e7
-       },
-       {
-               0xfbaf, 0x8fdfc3
-       },
-       {
-               0xfbb0, 0x8ff4e8
-       },
-       {
-               0xfbb1, 0x8ff4e9
-       },
-       {
-               0xfbb2, 0x8fe0d9
-       },
-       {
-               0xfbb3, 0x8ff4ea
-       },
-       {
-               0xfbb4, 0x8ff4eb
-       },
-       {
-               0xfbb5, 0x8fe1e2
-       },
-       {
-               0xfbb6, 0x8ff4ec
-       },
-       {
-               0xfbb7, 0x8ff4ed
-       },
-       {
-               0xfbb8, 0x8ff4ee
-       },
-       {
-               0xfbb9, 0x8fe2c7
-       },
-       {
-               0xfbba, 0x8fe3a8
-       },
-       {
-               0xfbbb, 0x8fe3a6
-       },
-       {
-               0xfbbc, 0x8fe3a9
-       },
-       {
-               0xfbbd, 0x8fe3af
-       },
-       {
-               0xfbbe, 0x8fe3b0
-       },
-       {
-               0xfbbf, 0x8fe3aa
-       },
-       {
-               0xfbc0, 0x8fe3ab
-       },
-       {
-               0xfbc1, 0x8fe3bc
-       },
-       {
-               0xfbc2, 0x8fe3c1
-       },
-       {
-               0xfbc3, 0x8fe3bf
-       },
-       {
-               0xfbc4, 0x8fe3d5
-       },
-       {
-               0xfbc5, 0x8fe3d8
-       },
-       {
-               0xfbc6, 0x8fe3d6
-       },
-       {
-               0xfbc7, 0x8fe3df
-       },
-       {
-               0xfbc8, 0x8fe3e3
-       },
-       {
-               0xfbc9, 0x8fe3e1
-       },
-       {
-               0xfbca, 0x8fe3d4
-       },
-       {
-               0xfbcb, 0x8fe3e9
-       },
-       {
-               0xfbcc, 0x8fe4a6
-       },
-       {
-               0xfbcd, 0x8fe3f1
-       },
-       {
-               0xfbce, 0x8fe3f2
-       },
-       {
-               0xfbcf, 0x8fe4cb
-       },
-       {
-               0xfbd0, 0x8fe4c1
-       },
-       {
-               0xfbd1, 0x8fe4c3
-       },
-       {
-               0xfbd2, 0x8fe4be
-       },
-       {
-               0xfbd3, 0x8ff4ef
-       },
-       {
-               0xfbd4, 0x8fe4c0
-       },
-       {
-               0xfbd5, 0x8fe4c7
-       },
-       {
-               0xfbd6, 0x8fe4bf
-       },
-       {
-               0xfbd7, 0x8fe4e0
-       },
-       {
-               0xfbd8, 0x8fe4de
-       },
-       {
-               0xfbd9, 0x8fe4d1
-       },
-       {
-               0xfbda, 0x8ff4f0
-       },
-       {
-               0xfbdb, 0x8fe4dc
-       },
-       {
-               0xfbdc, 0x8fe4d2
-       },
-       {
-               0xfbdd, 0x8fe4db
-       },
-       {
-               0xfbde, 0x8fe4d4
-       },
-       {
-               0xfbdf, 0x8fe4fa
-       },
-       {
-               0xfbe0, 0x8fe4ef
-       },
-       {
-               0xfbe1, 0x8fe5b3
-       },
-       {
-               0xfbe2, 0x8fe5bf
-       },
-       {
-               0xfbe3, 0x8fe5c9
-       },
-       {
-               0xfbe4, 0x8fe5d0
-       },
-       {
-               0xfbe5, 0x8fe5e2
-       },
-       {
-               0xfbe6, 0x8fe5ea
-       },
-       {
-               0xfbe7, 0x8fe5eb
-       },
-       {
-               0xfbe8, 0x8ff4f1
-       },
-       {
-               0xfbe9, 0x8ff4f2
-       },
-       {
-               0xfbea, 0x8ff4f3
-       },
-       {
-               0xfbeb, 0x8fe6e8
-       },
-       {
-               0xfbec, 0x8fe6ef
-       },
-       {
-               0xfbed, 0x8fe7ac
-       },
-       {
-               0xfbee, 0x8ff4f4
-       },
-       {
-               0xfbef, 0x8fe7ae
-       },
-       {
-               0xfbf0, 0x8ff4f5
-       },
-       {
-               0xfbf1, 0x8fe7b1
-       },
-       {
-               0xfbf2, 0x8ff4f6
-       },
-       {
-               0xfbf3, 0x8fe7b2
-       },
-       {
-               0xfbf4, 0x8fe8b1
-       },
-       {
-               0xfbf5, 0x8fe8b6
-       },
-       {
-               0xfbf6, 0x8ff4f7
-       },
-       {
-               0xfbf7, 0x8ff4f8
-       },
-       {
-               0xfbf8, 0x8fe8dd
-       },
-       {
-               0xfbf9, 0x8ff4f9
-       },
-       {
-               0xfbfa, 0x8ff4fa
-       },
-       {
-               0xfbfb, 0x8fe9d1
-       },
-       {
-               0xfbfc, 0x8ff4fb
-       },
-       {
-               0xfc40, 0x8fe9ed
-       },
-       {
-               0xfc41, 0x8feacd
-       },
-       {
-               0xfc42, 0x8ff4fc
-       },
-       {
-               0xfc43, 0x8feadb
-       },
-       {
-               0xfc44, 0x8feae6
-       },
-       {
-               0xfc45, 0x8feaea
-       },
-       {
-               0xfc46, 0x8feba5
-       },
-       {
-               0xfc47, 0x8febfb
-       },
-       {
-               0xfc48, 0x8febfa
-       },
-       {
-               0xfc49, 0x8ff4fd
-       },
-       {
-               0xfc4a, 0x8fecd6
-       },
-       {
-               0xfc4b, 0x8ff4fe
-       },
-       {
-               0xffff, 0xffff
-       }                                                       /* stop code */
+} ibmkanji[] = {
+{      0xEEEF  ,       0xfa40   ,   0x8ff3f3   },
+{      0xEEF0  ,       0xfa41   ,   0x8ff3f4   },
+{      0xEEF1  ,       0xfa42   ,   0x8ff3f5   },
+{      0xEEF2  ,       0xfa43   ,   0x8ff3f6   },
+{      0xEEF3  ,       0xfa44   ,   0x8ff3f7   },
+{      0xEEF4  ,       0xfa45   ,   0x8ff3f8   },
+{      0xEEF5  ,       0xfa46   ,   0x8ff3f9   },
+{      0xEEF6  ,       0xfa47   ,   0x8ff3fa   },
+{      0xEEF7  ,       0xfa48   ,   0x8ff3fb   },
+{      0xEEF8  ,       0xfa49   ,   0x8ff3fc   },
+{      0x8754  ,       0xfa4a   ,   0x8ff3fd   },
+{      0x8755  ,       0xfa4b   ,   0x8ff3fe   },
+{      0x8756  ,       0xfa4c   ,   0x8ff4a1   },
+{      0x8757  ,       0xfa4d   ,   0x8ff4a2   },
+{      0x8758  ,       0xfa4e   ,   0x8ff4a3   },
+{      0x8759  ,       0xfa4f   ,   0x8ff4a4   },
+{      0x875A  ,       0xfa50   ,   0x8ff4a5   },
+{      0x875B  ,       0xfa51   ,   0x8ff4a6   },
+{      0x875C  ,       0xfa52   ,   0x8ff4a7   },
+{      0x875D  ,       0xfa53   ,   0x8ff4a8   },
+{      0xEEF9  ,       0xfa54   ,   0xa2cc     },
+{      0xEEFA  ,       0xfa55   ,   0x8fa2c3   },
+{      0xEEFB  ,       0xfa56   ,   0x8ff4a9   },
+{      0xEEFC  ,       0xfa57   ,   0x8ff4aa   },
+{      0x878A  ,       0xfa58   ,   0x8ff4ab   },
+{      0x8782  ,       0xfa59   ,   0x8ff4ac   },
+{      0x8784  ,       0xfa5a   ,   0x8ff4ad   },
+{      0x879A  ,       0xfa5b   ,   0xa2e8     },
+{      0xED40  ,       0xfa5c   ,   0x8fd4e3   },
+{      0xED41  ,       0xfa5d   ,   0x8fdcdf   },
+{      0xED42  ,       0xfa5e   ,   0x8fe4e9   },
+{      0xED43  ,       0xfa5f   ,   0x8fe3f8   },
+{      0xED44  ,       0xfa60   ,   0x8fd9a1   },
+{      0xED45  ,       0xfa61   ,   0x8fb1bb   },
+{      0xED46  ,       0xfa62   ,   0x8ff4ae   },
+{      0xED47  ,       0xfa63   ,   0x8fc2ad   },
+{      0xED48  ,       0xfa64   ,   0x8fc3fc   },
+{      0xED49  ,       0xfa65   ,   0x8fe4d0   },
+{      0xED4A  ,       0xfa66   ,   0x8fc2bf   },
+{      0xED4B  ,       0xfa67   ,   0x8fbcf4   },
+{      0xED4C  ,       0xfa68   ,   0x8fb0a9   },
+{      0xED4D  ,       0xfa69   ,   0x8fb0c8   },
+{      0xED4E  ,       0xfa6a   ,   0x8ff4af   },
+{      0xED4F  ,       0xfa6b   ,   0x8fb0d2   },
+{      0xED50  ,       0xfa6c   ,   0x8fb0d4   },
+{      0xED51  ,       0xfa6d   ,   0x8fb0e3   },
+{      0xED52  ,       0xfa6e   ,   0x8fb0ee   },
+{      0xED53  ,       0xfa6f   ,   0x8fb1a7   },
+{      0xED54  ,       0xfa70   ,   0x8fb1a3   },
+{      0xED55  ,       0xfa71   ,   0x8fb1ac   },
+{      0xED56  ,       0xfa72   ,   0x8fb1a9   },
+{      0xED57  ,       0xfa73   ,   0x8fb1be   },
+{      0xED58  ,       0xfa74   ,   0x8fb1df   },
+{      0xED59  ,       0xfa75   ,   0x8fb1d8   },
+{      0xED5A  ,       0xfa76   ,   0x8fb1c8   },
+{      0xED5B  ,       0xfa77   ,   0x8fb1d7   },
+{      0xED5C  ,       0xfa78   ,   0x8fb1e3   },
+{      0xED5D  ,       0xfa79   ,   0x8fb1f4   },
+{      0xED5E  ,       0xfa7a   ,   0x8fb1e1   },
+{      0xED5F  ,       0xfa7b   ,   0x8fb2a3   },
+{      0xED60  ,       0xfa7c   ,   0x8ff4b0   },
+{      0xED61  ,       0xfa7d   ,   0x8fb2bb   },
+{      0xED62  ,       0xfa7e   ,   0x8fb2e6   },
+{      0xED63  ,       0xfa80   ,   0x8fb2ed   },
+{      0xED64  ,       0xfa81   ,   0x8fb2f5   },
+{      0xED65  ,       0xfa82   ,   0x8fb2fc   },
+{      0xED66  ,       0xfa83   ,   0x8ff4b1   },
+{      0xED67  ,       0xfa84   ,   0x8fb3b5   },
+{      0xED68  ,       0xfa85   ,   0x8fb3d8   },
+{      0xED69  ,       0xfa86   ,   0x8fb3db   },
+{      0xED6A  ,       0xfa87   ,   0x8fb3e5   },
+{      0xED6B  ,       0xfa88   ,   0x8fb3ee   },
+{      0xED6C  ,       0xfa89   ,   0x8fb3fb   },
+{      0xED6D  ,       0xfa8a   ,   0x8ff4b2   },
+{      0xED6E  ,       0xfa8b   ,   0x8ff4b3   },
+{      0xED6F  ,       0xfa8c   ,   0x8fb4c0   },
+{      0xED70  ,       0xfa8d   ,   0x8fb4c7   },
+{      0xED71  ,       0xfa8e   ,   0x8fb4d0   },
+{      0xED72  ,       0xfa8f   ,   0x8fb4de   },
+{      0xED73  ,       0xfa90   ,   0x8ff4b4   },
+{      0xED74  ,       0xfa91   ,   0x8fb5aa   },
+{      0xED75  ,       0xfa92   ,   0x8ff4b5   },
+{      0xED76  ,       0xfa93   ,   0x8fb5af   },
+{      0xED77  ,       0xfa94   ,   0x8fb5c4   },
+{      0xED78  ,       0xfa95   ,   0x8fb5e8   },
+{      0xED79  ,       0xfa96   ,   0x8ff4b6   },
+{      0xED7A  ,       0xfa97   ,   0x8fb7c2   },
+{      0xED7B  ,       0xfa98   ,   0x8fb7e4   },
+{      0xED7C  ,       0xfa99   ,   0x8fb7e8   },
+{      0xED7D  ,       0xfa9a   ,   0x8fb7e7   },
+{      0xED7E  ,       0xfa9b   ,   0x8ff4b7   },
+{      0xED80  ,       0xfa9c   ,   0x8ff4b8   },
+{      0xED81  ,       0xfa9d   ,   0x8ff4b9   },
+{      0xED82  ,       0xfa9e   ,   0x8fb8ce   },
+{      0xED83  ,       0xfa9f   ,   0x8fb8e1   },
+{      0xED84  ,       0xfaa0   ,   0x8fb8f5   },
+{      0xED85  ,       0xfaa1   ,   0x8fb8f7   },
+{      0xED86  ,       0xfaa2   ,   0x8fb8f8   },
+{      0xED87  ,       0xfaa3   ,   0x8fb8fc   },
+{      0xED88  ,       0xfaa4   ,   0x8fb9af   },
+{      0xED89  ,       0xfaa5   ,   0x8fb9b7   },
+{      0xED8A  ,       0xfaa6   ,   0x8fbabe   },
+{      0xED8B  ,       0xfaa7   ,   0x8fbadb   },
+{      0xED8C  ,       0xfaa8   ,   0x8fcdaa   },
+{      0xED8D  ,       0xfaa9   ,   0x8fbae1   },
+{      0xED8E  ,       0xfaaa   ,   0x8ff4ba   },
+{      0xED8F  ,       0xfaab   ,   0x8fbaeb   },
+{      0xED90  ,       0xfaac   ,   0x8fbbb3   },
+{      0xED91  ,       0xfaad   ,   0x8fbbb8   },
+{      0xED92  ,       0xfaae   ,   0x8ff4bb   },
+{      0xED93  ,       0xfaaf   ,   0x8fbbca   },
+{      0xED94  ,       0xfab0   ,   0x8ff4bc   },
+{      0xED95  ,       0xfab1   ,   0x8ff4bd   },
+{      0xED96  ,       0xfab2   ,   0x8fbbd0   },
+{      0xED97  ,       0xfab3   ,   0x8fbbde   },
+{      0xED98  ,       0xfab4   ,   0x8fbbf4   },
+{      0xED99  ,       0xfab5   ,   0x8fbbf5   },
+{      0xED9A  ,       0xfab6   ,   0x8fbbf9   },
+{      0xED9B  ,       0xfab7   ,   0x8fbce4   },
+{      0xED9C  ,       0xfab8   ,   0x8fbced   },
+{      0xED9D  ,       0xfab9   ,   0x8fbcfe   },
+{      0xED9E  ,       0xfaba   ,   0x8ff4be   },
+{      0xED9F  ,       0xfabb   ,   0x8fbdc2   },
+{      0xEDA0  ,       0xfabc   ,   0x8fbde7   },
+{      0xEDA1  ,       0xfabd   ,   0x8ff4bf   },
+{      0xEDA2  ,       0xfabe   ,   0x8fbdf0   },
+{      0xEDA3  ,       0xfabf   ,   0x8fbeb0   },
+{      0xEDA4  ,       0xfac0   ,   0x8fbeac   },
+{      0xEDA5  ,       0xfac1   ,   0x8ff4c0   },
+{      0xEDA6  ,       0xfac2   ,   0x8fbeb3   },
+{      0xEDA7  ,       0xfac3   ,   0x8fbebd   },
+{      0xEDA8  ,       0xfac4   ,   0x8fbecd   },
+{      0xEDA9  ,       0xfac5   ,   0x8fbec9   },
+{      0xEDAA  ,       0xfac6   ,   0x8fbee4   },
+{      0xEDAB  ,       0xfac7   ,   0x8fbfa8   },
+{      0xEDAC  ,       0xfac8   ,   0x8fbfc9   },
+{      0xEDAD  ,       0xfac9   ,   0x8fc0c4   },
+{      0xEDAE  ,       0xfaca   ,   0x8fc0e4   },
+{      0xEDAF  ,       0xfacb   ,   0x8fc0f4   },
+{      0xEDB0  ,       0xfacc   ,   0x8fc1a6   },
+{      0xEDB1  ,       0xfacd   ,   0x8ff4c1   },
+{      0xEDB2  ,       0xface   ,   0x8fc1f5   },
+{      0xEDB3  ,       0xfacf   ,   0x8fc1fc   },
+{      0xEDB4  ,       0xfad0   ,   0x8ff4c2   },
+{      0xEDB5  ,       0xfad1   ,   0x8fc1f8   },
+{      0xEDB6  ,       0xfad2   ,   0x8fc2ab   },
+{      0xEDB7  ,       0xfad3   ,   0x8fc2a1   },
+{      0xEDB8  ,       0xfad4   ,   0x8fc2a5   },
+{      0xEDB9  ,       0xfad5   ,   0x8ff4c3   },
+{      0xEDBA  ,       0xfad6   ,   0x8fc2b8   },
+{      0xEDBB  ,       0xfad7   ,   0x8fc2ba   },
+{      0xEDBC  ,       0xfad8   ,   0x8ff4c4   },
+{      0xEDBD  ,       0xfad9   ,   0x8fc2c4   },
+{      0xEDBE  ,       0xfada   ,   0x8fc2d2   },
+{      0xEDBF  ,       0xfadb   ,   0x8fc2d7   },
+{      0xEDC0  ,       0xfadc   ,   0x8fc2db   },
+{      0xEDC1  ,       0xfadd   ,   0x8fc2de   },
+{      0xEDC2  ,       0xfade   ,   0x8fc2ed   },
+{      0xEDC3  ,       0xfadf   ,   0x8fc2f0   },
+{      0xEDC4  ,       0xfae0   ,   0x8ff4c5   },
+{      0xEDC5  ,       0xfae1   ,   0x8fc3a1   },
+{      0xEDC6  ,       0xfae2   ,   0x8fc3b5   },
+{      0xEDC7  ,       0xfae3   ,   0x8fc3c9   },
+{      0xEDC8  ,       0xfae4   ,   0x8fc3b9   },
+{      0xEDC9  ,       0xfae5   ,   0x8ff4c6   },
+{      0xEDCA  ,       0xfae6   ,   0x8fc3d8   },
+{      0xEDCB  ,       0xfae7   ,   0x8fc3fe   },
+{      0xEDCC  ,       0xfae8   ,   0x8ff4c7   },
+{      0xEDCD  ,       0xfae9   ,   0x8fc4cc   },
+{      0xEDCE  ,       0xfaea   ,   0x8ff4c8   },
+{      0xEDCF  ,       0xfaeb   ,   0x8fc4d9   },
+{      0xEDD0  ,       0xfaec   ,   0x8fc4ea   },
+{      0xEDD1  ,       0xfaed   ,   0x8fc4fd   },
+{      0xEDD2  ,       0xfaee   ,   0x8ff4c9   },
+{      0xEDD3  ,       0xfaef   ,   0x8fc5a7   },
+{      0xEDD4  ,       0xfaf0   ,   0x8fc5b5   },
+{      0xEDD5  ,       0xfaf1   ,   0x8fc5b6   },
+{      0xEDD6  ,       0xfaf2   ,   0x8ff4ca   },
+{      0xEDD7  ,       0xfaf3   ,   0x8fc5d5   },
+{      0xEDD8  ,       0xfaf4   ,   0x8fc6b8   },
+{      0xEDD9  ,       0xfaf5   ,   0x8fc6d7   },
+{      0xEDDA  ,       0xfaf6   ,   0x8fc6e0   },
+{      0xEDDB  ,       0xfaf7   ,   0x8fc6ea   },
+{      0xEDDC  ,       0xfaf8   ,   0x8fc6e3   },
+{      0xEDDD  ,       0xfaf9   ,   0x8fc7a1   },
+{      0xEDDE  ,       0xfafa   ,   0x8fc7ab   },
+{      0xEDDF  ,       0xfafb   ,   0x8fc7c7   },
+{      0xEDE0  ,       0xfafc   ,   0x8fc7c3   },
+{      0xEDE1  ,       0xfb40   ,   0x8fc7cb   },
+{      0xEDE2  ,       0xfb41   ,   0x8fc7cf   },
+{      0xEDE3  ,       0xfb42   ,   0x8fc7d9   },
+{      0xEDE4  ,       0xfb43   ,   0x8ff4cb   },
+{      0xEDE5  ,       0xfb44   ,   0x8ff4cc   },
+{      0xEDE6  ,       0xfb45   ,   0x8fc7e6   },
+{      0xEDE7  ,       0xfb46   ,   0x8fc7ee   },
+{      0xEDE8  ,       0xfb47   ,   0x8fc7fc   },
+{      0xEDE9  ,       0xfb48   ,   0x8fc7eb   },
+{      0xEDEA  ,       0xfb49   ,   0x8fc7f0   },
+{      0xEDEB  ,       0xfb4a   ,   0x8fc8b1   },
+{      0xEDEC  ,       0xfb4b   ,   0x8fc8e5   },
+{      0xEDED  ,       0xfb4c   ,   0x8fc8f8   },
+{      0xEDEE  ,       0xfb4d   ,   0x8fc9a6   },
+{      0xEDEF  ,       0xfb4e   ,   0x8fc9ab   },
+{      0xEDF0  ,       0xfb4f   ,   0x8fc9ad   },
+{      0xEDF1  ,       0xfb50   ,   0x8ff4cd   },
+{      0xEDF2  ,       0xfb51   ,   0x8fc9ca   },
+{      0xEDF3  ,       0xfb52   ,   0x8fc9d3   },
+{      0xEDF4  ,       0xfb53   ,   0x8fc9e9   },
+{      0xEDF5  ,       0xfb54   ,   0x8fc9e3   },
+{      0xEDF6  ,       0xfb55   ,   0x8fc9fc   },
+{      0xEDF7  ,       0xfb56   ,   0x8fc9f4   },
+{      0xEDF8  ,       0xfb57   ,   0x8fc9f5   },
+{      0xEDF9  ,       0xfb58   ,   0x8ff4ce   },
+{      0xEDFA  ,       0xfb59   ,   0x8fcab3   },
+{      0xEDFB  ,       0xfb5a   ,   0x8fcabd   },
+{      0xEDFC  ,       0xfb5b   ,   0x8fcaef   },
+{      0xEE40  ,       0xfb5c   ,   0x8fcaf1   },
+{      0xEE41  ,       0xfb5d   ,   0x8fcbae   },
+{      0xEE42  ,       0xfb5e   ,   0x8ff4cf   },
+{      0xEE43  ,       0xfb5f   ,   0x8fcbca   },
+{      0xEE44  ,       0xfb60   ,   0x8fcbe6   },
+{      0xEE45  ,       0xfb61   ,   0x8fcbea   },
+{      0xEE46  ,       0xfb62   ,   0x8fcbf0   },
+{      0xEE47  ,       0xfb63   ,   0x8fcbf4   },
+{      0xEE48  ,       0xfb64   ,   0x8fcbee   },
+{      0xEE49  ,       0xfb65   ,   0x8fcca5   },
+{      0xEE4A  ,       0xfb66   ,   0x8fcbf9   },
+{      0xEE4B  ,       0xfb67   ,   0x8fccab   },
+{      0xEE4C  ,       0xfb68   ,   0x8fccae   },
+{      0xEE4D  ,       0xfb69   ,   0x8fccad   },
+{      0xEE4E  ,       0xfb6a   ,   0x8fccb2   },
+{      0xEE4F  ,       0xfb6b   ,   0x8fccc2   },
+{      0xEE50  ,       0xfb6c   ,   0x8fccd0   },
+{      0xEE51  ,       0xfb6d   ,   0x8fccd9   },
+{      0xEE52  ,       0xfb6e   ,   0x8ff4d0   },
+{      0xEE53  ,       0xfb6f   ,   0x8fcdbb   },
+{      0xEE54  ,       0xfb70   ,   0x8ff4d1   },
+{      0xEE55  ,       0xfb71   ,   0x8fcebb   },
+{      0xEE56  ,       0xfb72   ,   0x8ff4d2   },
+{      0xEE57  ,       0xfb73   ,   0x8fceba   },
+{      0xEE58  ,       0xfb74   ,   0x8fcec3   },
+{      0xEE59  ,       0xfb75   ,   0x8ff4d3   },
+{      0xEE5A  ,       0xfb76   ,   0x8fcef2   },
+{      0xEE5B  ,       0xfb77   ,   0x8fb3dd   },
+{      0xEE5C  ,       0xfb78   ,   0x8fcfd5   },
+{      0xEE5D  ,       0xfb79   ,   0x8fcfe2   },
+{      0xEE5E  ,       0xfb7a   ,   0x8fcfe9   },
+{      0xEE5F  ,       0xfb7b   ,   0x8fcfed   },
+{      0xEE60  ,       0xfb7c   ,   0x8ff4d4   },
+{      0xEE61  ,       0xfb7d   ,   0x8ff4d5   },
+{      0xEE62  ,       0xfb7e   ,   0x8ff4d6   },
+{      0xEE63  ,       0xfb80   ,   0x8ff4d7   },
+{      0xEE64  ,       0xfb81   ,   0x8fd0e5   },
+{      0xEE65  ,       0xfb82   ,   0x8ff4d8   },
+{      0xEE66  ,       0xfb83   ,   0x8fd0e9   },
+{      0xEE67  ,       0xfb84   ,   0x8fd1e8   },
+{      0xEE68  ,       0xfb85   ,   0x8ff4d9   },
+{      0xEE69  ,       0xfb86   ,   0x8ff4da   },
+{      0xEE6A  ,       0xfb87   ,   0x8fd1ec   },
+{      0xEE6B  ,       0xfb88   ,   0x8fd2bb   },
+{      0xEE6C  ,       0xfb89   ,   0x8ff4db   },
+{      0xEE6D  ,       0xfb8a   ,   0x8fd3e1   },
+{      0xEE6E  ,       0xfb8b   ,   0x8fd3e8   },
+{      0xEE6F  ,       0xfb8c   ,   0x8fd4a7   },
+{      0xEE70  ,       0xfb8d   ,   0x8ff4dc   },
+{      0xEE71  ,       0xfb8e   ,   0x8ff4dd   },
+{      0xEE72  ,       0xfb8f   ,   0x8fd4d4   },
+{      0xEE73  ,       0xfb90   ,   0x8fd4f2   },
+{      0xEE74  ,       0xfb91   ,   0x8fd5ae   },
+{      0xEE75  ,       0xfb92   ,   0x8ff4de   },
+{      0xEE76  ,       0xfb93   ,   0x8fd7de   },
+{      0xEE77  ,       0xfb94   ,   0x8ff4df   },
+{      0xEE78  ,       0xfb95   ,   0x8fd8a2   },
+{      0xEE79  ,       0xfb96   ,   0x8fd8b7   },
+{      0xEE7A  ,       0xfb97   ,   0x8fd8c1   },
+{      0xEE7B  ,       0xfb98   ,   0x8fd8d1   },
+{      0xEE7C  ,       0xfb99   ,   0x8fd8f4   },
+{      0xEE7D  ,       0xfb9a   ,   0x8fd9c6   },
+{      0xEE7E  ,       0xfb9b   ,   0x8fd9c8   },
+{      0xEE80  ,       0xfb9c   ,   0x8fd9d1   },
+{      0xEE81  ,       0xfb9d   ,   0x8ff4e0   },
+{      0xEE82  ,       0xfb9e   ,   0x8ff4e1   },
+{      0xEE83  ,       0xfb9f   ,   0x8ff4e2   },
+{      0xEE84  ,       0xfba0   ,   0x8ff4e3   },
+{      0xEE85  ,       0xfba1   ,   0x8ff4e4   },
+{      0xEE86  ,       0xfba2   ,   0x8fdcd3   },
+{      0xEE87  ,       0xfba3   ,   0x8fddc8   },
+{      0xEE88  ,       0xfba4   ,   0x8fddd4   },
+{      0xEE89  ,       0xfba5   ,   0x8fddea   },
+{      0xEE8A  ,       0xfba6   ,   0x8fddfa   },
+{      0xEE8B  ,       0xfba7   ,   0x8fdea4   },
+{      0xEE8C  ,       0xfba8   ,   0x8fdeb0   },
+{      0xEE8D  ,       0xfba9   ,   0x8ff4e5   },
+{      0xEE8E  ,       0xfbaa   ,   0x8fdeb5   },
+{      0xEE8F  ,       0xfbab   ,   0x8fdecb   },
+{      0xEE90  ,       0xfbac   ,   0x8ff4e6   },
+{      0xEE91  ,       0xfbad   ,   0x8fdfb9   },
+{      0xEE92  ,       0xfbae   ,   0x8ff4e7   },
+{      0xEE93  ,       0xfbaf   ,   0x8fdfc3   },
+{      0xEE94  ,       0xfbb0   ,   0x8ff4e8   },
+{      0xEE95  ,       0xfbb1   ,   0x8ff4e9   },
+{      0xEE96  ,       0xfbb2   ,   0x8fe0d9   },
+{      0xEE97  ,       0xfbb3   ,   0x8ff4ea   },
+{      0xEE98  ,       0xfbb4   ,   0x8ff4eb   },
+{      0xEE99  ,       0xfbb5   ,   0x8fe1e2   },
+{      0xEE9A  ,       0xfbb6   ,   0x8ff4ec   },
+{      0xEE9B  ,       0xfbb7   ,   0x8ff4ed   },
+{      0xEE9C  ,       0xfbb8   ,   0x8ff4ee   },
+{      0xEE9D  ,       0xfbb9   ,   0x8fe2c7   },
+{      0xEE9E  ,       0xfbba   ,   0x8fe3a8   },
+{      0xEE9F  ,       0xfbbb   ,   0x8fe3a6   },
+{      0xEEA0  ,       0xfbbc   ,   0x8fe3a9   },
+{      0xEEA1  ,       0xfbbd   ,   0x8fe3af   },
+{      0xEEA2  ,       0xfbbe   ,   0x8fe3b0   },
+{      0xEEA3  ,       0xfbbf   ,   0x8fe3aa   },
+{      0xEEA4  ,       0xfbc0   ,   0x8fe3ab   },
+{      0xEEA5  ,       0xfbc1   ,   0x8fe3bc   },
+{      0xEEA6  ,       0xfbc2   ,   0x8fe3c1   },
+{      0xEEA7  ,       0xfbc3   ,   0x8fe3bf   },
+{      0xEEA8  ,       0xfbc4   ,   0x8fe3d5   },
+{      0xEEA9  ,       0xfbc5   ,   0x8fe3d8   },
+{      0xEEAA  ,       0xfbc6   ,   0x8fe3d6   },
+{      0xEEAB  ,       0xfbc7   ,   0x8fe3df   },
+{      0xEEAC  ,       0xfbc8   ,   0x8fe3e3   },
+{      0xEEAD  ,       0xfbc9   ,   0x8fe3e1   },
+{      0xEEAE  ,       0xfbca   ,   0x8fe3d4   },
+{      0xEEAF  ,       0xfbcb   ,   0x8fe3e9   },
+{      0xEEB0  ,       0xfbcc   ,   0x8fe4a6   },
+{      0xEEB1  ,       0xfbcd   ,   0x8fe3f1   },
+{      0xEEB2  ,       0xfbce   ,   0x8fe3f2   },
+{      0xEEB3  ,       0xfbcf   ,   0x8fe4cb   },
+{      0xEEB4  ,       0xfbd0   ,   0x8fe4c1   },
+{      0xEEB5  ,       0xfbd1   ,   0x8fe4c3   },
+{      0xEEB6  ,       0xfbd2   ,   0x8fe4be   },
+{      0xEEB7  ,       0xfbd3   ,   0x8ff4ef   },
+{      0xEEB8  ,       0xfbd4   ,   0x8fe4c0   },
+{      0xEEB9  ,       0xfbd5   ,   0x8fe4c7   },
+{      0xEEBA  ,       0xfbd6   ,   0x8fe4bf   },
+{      0xEEBB  ,       0xfbd7   ,   0x8fe4e0   },
+{      0xEEBC  ,       0xfbd8   ,   0x8fe4de   },
+{      0xEEBD  ,       0xfbd9   ,   0x8fe4d1   },
+{      0xEEBE  ,       0xfbda   ,   0x8ff4f0   },
+{      0xEEBF  ,       0xfbdb   ,   0x8fe4dc   },
+{      0xEEC0  ,       0xfbdc   ,   0x8fe4d2   },
+{      0xEEC1  ,       0xfbdd   ,   0x8fe4db   },
+{      0xEEC2  ,       0xfbde   ,   0x8fe4d4   },
+{      0xEEC3  ,       0xfbdf   ,   0x8fe4fa   },
+{      0xEEC4  ,       0xfbe0   ,   0x8fe4ef   },
+{      0xEEC5  ,       0xfbe1   ,   0x8fe5b3   },
+{      0xEEC6  ,       0xfbe2   ,   0x8fe5bf   },
+{      0xEEC7  ,       0xfbe3   ,   0x8fe5c9   },
+{      0xEEC8  ,       0xfbe4   ,   0x8fe5d0   },
+{      0xEEC9  ,       0xfbe5   ,   0x8fe5e2   },
+{      0xEECA  ,       0xfbe6   ,   0x8fe5ea   },
+{      0xEECB  ,       0xfbe7   ,   0x8fe5eb   },
+{      0xEECC  ,       0xfbe8   ,   0x8ff4f1   },
+{      0xEECD  ,       0xfbe9   ,   0x8ff4f2   },
+{      0xEECE  ,       0xfbea   ,   0x8ff4f3   },
+{      0xEECF  ,       0xfbeb   ,   0x8fe6e8   },
+{      0xEED0  ,       0xfbec   ,   0x8fe6ef   },
+{      0xEED1  ,       0xfbed   ,   0x8fe7ac   },
+{      0xEED2  ,       0xfbee   ,   0x8ff4f4   },
+{      0xEED3  ,       0xfbef   ,   0x8fe7ae   },
+{      0xEED4  ,       0xfbf0   ,   0x8ff4f5   },
+{      0xEED5  ,       0xfbf1   ,   0x8fe7b1   },
+{      0xEED6  ,       0xfbf2   ,   0x8ff4f6   },
+{      0xEED7  ,       0xfbf3   ,   0x8fe7b2   },
+{      0xEED8  ,       0xfbf4   ,   0x8fe8b1   },
+{      0xEED9  ,       0xfbf5   ,   0x8fe8b6   },
+{      0xEEDA  ,       0xfbf6   ,   0x8ff4f7   },
+{      0xEEDB  ,       0xfbf7   ,   0x8ff4f8   },
+{      0xEEDC  ,       0xfbf8   ,   0x8fe8dd   },
+{      0xEEDD  ,       0xfbf9   ,   0x8ff4f9   },
+{      0xEEDE  ,       0xfbfa   ,   0x8ff4fa   },
+{      0xEEDF  ,       0xfbfb   ,   0x8fe9d1   },
+{      0xEEE0  ,       0xfbfc   ,   0x8ff4fb   },
+{      0xEEE1  ,       0xfc40   ,   0x8fe9ed   },
+{      0xEEE2  ,       0xfc41   ,   0x8feacd   },
+{      0xEEE3  ,       0xfc42   ,   0x8ff4fc   },
+{      0xEEE4  ,       0xfc43   ,   0x8feadb   },
+{      0xEEE5  ,       0xfc44   ,   0x8feae6   },
+{      0xEEE6  ,       0xfc45   ,   0x8feaea   },
+{      0xEEE7  ,       0xfc46   ,   0x8feba5   },
+{      0xEEE8  ,       0xfc47   ,   0x8febfb   },
+{      0xEEE9  ,       0xfc48   ,   0x8febfa   },
+{      0xEEEA  ,       0xfc49   ,   0x8ff4fd   },
+{      0xEEEB  ,       0xfc4a   ,   0x8fecd6   },
+{      0xEEEC  ,       0xfc4b   ,   0x8ff4fe   },
+{      0xffff  ,       0xffff   ,   0xffff   }         /* Stop code */
 };
-
+/* Eiji Tokuya patched End */
 /*
  * convert bogus chars that cannot be represented in the current
 encoding
@@ -1229,8 +453,11 @@ sjis2mic(unsigned char *sjis, unsigned char *p, int len)
 {
        int                     c1,
                                c2,
-                               k;
-
+/* Eiji Tokuya patched begin */
+                               i,
+                               k,
+                               k2;
+/* Eiji Tokuya patched end */
        while (len > 0 && (c1 = *sjis++))
        {
                if (c1 >= 0xa1 && c1 <= 0xdf)
@@ -1248,8 +475,26 @@ sjis2mic(unsigned char *sjis, unsigned char *p, int len)
                         */
                        c2 = *sjis++;
                        k = (c1 << 8) + c2;
+/* Eiji Tokuya patched begin */
+                       if (k >= 0xed40 && k < 0xf040)
+                       {
+                               /* NEC selection IBM kanji */
+                               for (i = 0;; i++)
+                               {
+                                       k2 = ibmkanji[i].nec;
+                                       if (k2 == 0xffff)
+                                               break;
+                                       if (k2 == k)
+                                       {
+                                               k = ibmkanji[i].sjis;
+                                               c1 = (k >> 8) & 0xff;
+                                               c2 = k &  0xff;
+                                       }
+                               }
+                       }
 
-                       if (k < 0xeafc)
+                       if (k < 0xeb3f)
+/* Eiji Tokuya patched end */
                        {
                                /* JIS X0208 */
                                len -= 2;
@@ -1257,9 +502,11 @@ sjis2mic(unsigned char *sjis, unsigned char *p, int len)
                                *p++ = ((c1 & 0x3f) << 1) + 0x9f + (c2 > 0x9e);
                                *p++ = c2 + ((c2 > 0x9e) ? 2 : 0x60) + (c2 < 0x80);
                        }
-                       else if (k >= 0xed40 && k < 0xf040)
+/* Eiji Tokuya patched begin */
+                       else if ((k >= 0xeb40 && k < 0xf040)||(k >= 0xfc4c && k <= 0xfcfc))
                        {
-                               /* NEC sentei IBM kanji */
+                               /* NEC selection IBM kanji - Other undecided justice */
+/* Eiji Tokuya patched end */
                                *p++ = LC_JISX0208;
                                *p++ = PGEUCALTCODE >> 8;
                                *p++ = PGEUCALTCODE & 0xff;
@@ -1297,9 +544,6 @@ sjis2mic(unsigned char *sjis, unsigned char *p, int len)
                                 * mapping IBM kanji to X0208 and X0212
                                 *
                                 */
-                               int                     i,
-                                                       k2;
-
                                len -= 2;
                                for (i = 0;; i++)
                                {