summaryrefslogtreecommitdiff
path: root/source3/include/kanji.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2001-07-04 07:15:53 +0000
committerAndrew Tridgell <tridge@samba.org>2001-07-04 07:15:53 +0000
commit87fbb7092b8f8b2f0db0f361c3d625e19de57cd9 (patch)
tree3c302f710cbaa03e3c0d46549e8982771b12b8a5 /source3/include/kanji.h
parent9e9e73303ec10a64bd744b9b33f4e6cd7d394f03 (diff)
downloadsamba-87fbb7092b8f8b2f0db0f361c3d625e19de57cd9.tar.gz
samba-87fbb7092b8f8b2f0db0f361c3d625e19de57cd9.tar.bz2
samba-87fbb7092b8f8b2f0db0f361c3d625e19de57cd9.zip
The big character set handling changeover!
This commit gets rid of all our old codepage handling and replaces it with iconv. All internal strings in Samba are now in "unix" charset, which may be multi-byte. See internals.doc and my posting to samba-technical for a more complete explanation. (This used to be commit debb471267960e56005a741817ebd227ecfc512a)
Diffstat (limited to 'source3/include/kanji.h')
-rw-r--r--source3/include/kanji.h741
1 files changed, 0 insertions, 741 deletions
diff --git a/source3/include/kanji.h b/source3/include/kanji.h
deleted file mode 100644
index 58774a699d..0000000000
--- a/source3/include/kanji.h
+++ /dev/null
@@ -1,741 +0,0 @@
-/*
- Unix SMB/Netbios implementation.
- Version 1.9.
- Kanji Extensions
- Copyright (C) Andrew Tridgell 1992-1998
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Adding for Japanese language by <fujita@ainix.isac.co.jp> 1994.9.5
- and extend coding system to EUC/SJIS/JIS/HEX at 1994.10.11
- and add all jis codes sequence at 1995.8.16
- Notes: Hexadecimal code by <ohki@gssm.otuka.tsukuba.ac.jp>
- and add upper/lower case conversion 1997.8.21
-*/
-#ifndef _KANJI_H_
-#define _KANJI_H_
-
-/* FOR SHIFT JIS CODE */
-#define is_shift_jis(c) \
- ((0x81 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0x9f) \
- || (0xe0 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xfc))
-#define is_shift_jis2(c) \
- (0x40 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xfc \
- && ((unsigned char) (c)) != 0x7f)
-#define is_kana(c) ((0xa0 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xdf))
-
-/* case conversion */
-#define is_sj_upper2(c) \
- ((0x60 <= (unsigned char) (c)) && ((unsigned char) (c) <= 0x79))
-#define is_sj_lower2(c) \
- ((0x81 <= (unsigned char) (c)) && ((unsigned char) (c) <= 0x9A))
-#define sjis_alph 0x82
-#define is_sj_alph(c) (sjis_alph == (unsigned char) (c))
-#define is_sj_upper(c1, c2) (is_sj_alph (c1) && is_sj_upper2 (c2))
-#define is_sj_lower(c1, c2) (is_sj_alph (c1) && is_sj_lower2 (c2))
-#define sj_toupper2(c) \
- (is_sj_lower2 (c) ? ((int) ((unsigned char) (c) - 0x81 + 0x60)) : \
- ((int) (unsigned char) (c)))
-#define sj_tolower2(c) \
- (is_sj_upper2 (c) ? ((int) ((unsigned char) (c) - 0x60 + 0x81)) : \
- ((int) (unsigned char) (c)))
-
-#define is_sj_ru_upper2(c) \
- ((0x40 <= (unsigned char) (c)) && ((unsigned char) (c) <= 0x60))
-#define is_sj_ru_lower2(c) \
- (((0x70 <= (unsigned char) (c)) && ((unsigned char) (c) <= 0x7e)) || \
- ((0x80 <= (unsigned char) (c)) && ((unsigned char) (c) <= 0x91)))
-#define sjis_russian 0x84
-#define is_sj_russian(c) (sjis_russian == (unsigned char) (c))
-#define is_sj_ru_upper(c1, c2) (is_sj_russian (c1) && is_sj_ru_upper2 (c2))
-#define is_sj_ru_lower(c1, c2) (is_sj_russian (c1) && is_sj_ru_lower2 (c2))
-#define sj_ru_toupper2(c) \
- (is_sj_ru_lower2 (c) ? ((int) ((unsigned char) (c) + \
- (((unsigned char)(c) >= 0x4f) ? (0x70 - 0x40) : (0x80 - 0x4f)))) : \
- ((int) (unsigned char) (c)))
-#define sj_ru_tolower2(c) \
- (is_sj_ru_upper2 (c) ? ((int) ((unsigned char) (c) - \
- (((unsigned char)(c) >= 0x80) ? (0x70 - 0x40) : (0x80 - 0x4f)))) : \
- ((int) (unsigned char) (c)))
-
-#ifdef _KANJI_C_
-/* FOR EUC CODE */
-#define euc_kana (0x8e)
-#define is_euc_kana(c) (((unsigned char) (c)) == euc_kana)
-#define is_euc(c) (0xa0 < ((unsigned char) (c)) && ((unsigned char) (c)) < 0xff)
-
-#define euc_sup (0x8f)
-#define is_euc_sup(c) (((unsigned char ) (c)) == euc_sup)
-
-/* FOR JIS CODE */
-/* default jis third shift code, use for output */
-#ifndef JIS_KSO
-#define JIS_KSO 'B'
-#endif
-#ifndef JIS_KSI
-#define JIS_KSI 'J'
-#endif
-/* in: \E$B or \E$@ */
-/* out: \E(J or \E(B or \E(H */
-#define jis_esc (0x1b)
-#define jis_so (0x0e)
-#define jis_so1 ('$')
-#define jis_so2 ('B')
-#define jis_si (0x0f)
-#define jis_si1 ('(')
-#define jis_si2 ('J')
-#define is_esc(c) (((unsigned char) (c)) == jis_esc)
-#define is_so1(c) (((unsigned char) (c)) == jis_so1)
-#define is_so2(c) (((unsigned char) (c)) == jis_so2 || ((unsigned char) (c)) == '@')
-#define is_si1(c) (((unsigned char) (c)) == jis_si1)
-#define is_si2(c) (((unsigned char) (c)) == jis_si2 || ((unsigned char) (c)) == 'B' \
- || ((unsigned char) (c)) == 'H')
-#define is_so(c) (((unsigned char) (c)) == jis_so)
-#define is_si(c) (((unsigned char) (c)) == jis_si)
-#define junet_kana1 ('(')
-#define junet_kana2 ('I')
-#define is_juk1(c) (((unsigned char) (c)) == junet_kana1)
-#define is_juk2(c) (((unsigned char) (c)) == junet_kana2)
-
-#define _KJ_ROMAN (0)
-#define _KJ_KANJI (1)
-#define _KJ_KANA (2)
-
-/* FOR HEX */
-#define HEXTAG ':'
-#define hex2bin(x) \
- ( ((int) '0' <= ((int) (x)) && ((int) (x)) <= (int)'9')? \
- (((int) (x))-(int)'0'): \
- ((int) 'a'<= ((int) (x)) && ((int) (x))<= (int) 'f')? \
- (((int) (x)) - (int)'a'+10): \
- (((int) (x)) - (int)'A'+10) )
-#define bin2hex(x) \
- ( (((int) (x)) >= 10)? (((int) (x))-10 + (int) 'a'): (((int) (x)) + (int) '0') )
-
-/* For Hangul (Korean - code page 949). */
-#define is_hangul(c) ((0x81 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xfd))
-
-/* For traditional Chinese (known as Big5 encoding - code page 950). */
-#define is_big5_c1(c) ((0xa1 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xf9))
-
-/* For simplified Chinese (code page - 936). */
-#define is_simpch_c1(c) ((0xa1 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xf7))
-
-#else /* not _KANJI_C_ */
-
-/*
- * The following is needed for AIX systems that have
- * their own #defines for strchr, strrchr, strstr
- * and strtok.
- */
-
-#ifdef strchr
-#undef strchr
-#endif /* strchr */
-
-#ifdef strrchr
-#undef strrchr
-#endif /* strrchr */
-
-#ifdef strstr
-#undef strstr
-#endif /* strstr */
-
-#ifdef strtok
-#undef strtok
-#endif /* strtok */
-
-/* Ensure we use our definitions in all other files than kanji.c. */
-
-/* Function pointers we will replace. */
-extern char *(*multibyte_strchr)(const char *s, int c);
-extern char *(*multibyte_strrchr)(const char *s, int c);
-extern char *(*multibyte_strstr)(const char *s1, const char *s2);
-extern char *(*multibyte_strtok)(char *s1, const char *s2);
-extern char *(*_dos_to_unix)(char *str, BOOL overwrite);
-extern char *(*_unix_to_dos)(char *str, BOOL overwrite);
-extern char *(*_dos_to_dos)(char *str, BOOL overwrite);
-extern BOOL (*is_multibyte_char)(char c);
-extern int (*_skip_multibyte_char)(char c);
-
-#define strchr(s1, c) ((*multibyte_strchr)((s1), (c)))
-#define strrchr(s1, c) ((*multibyte_strrchr)((s1), (c)))
-#define strstr(s1, s2) ((*multibyte_strstr)((s1), (s2)))
-#define strtok(s1, s2) ((*multibyte_strtok)((s1), (s2)))
-#define dos_to_unix(x,y) ((*_dos_to_unix)((x), (y)))
-#define unix_to_dos(x,y) ((*_unix_to_dos)((x), (y)))
-#define dos_to_dos(x,y) ((*_dos_to_dos)((x), (y)))
-#define skip_multibyte_char(c) ((*_skip_multibyte_char)((c)))
-
-#endif /* _KANJI_C_ */
-
-#define UNKNOWN_CODE (-1)
-#define SJIS_CODE (0)
-#define EUC_CODE (1)
-#define JIS7_CODE (2)
-#define JIS8_CODE (3)
-#define JUNET_CODE (4)
-#define HEX_CODE (5)
-#define CAP_CODE (6)
-#define DOSV_CODE SJIS_CODE
-#define EUC3_CODE (7)
-#define UTF8_CODE (8)
-
-#ifdef _KANJI_C_
-
-/* For conversion */
-
-#define EXTSJISC(c) (0xf0 <= ((unsigned char)(c)) \
- && ((unsigned char)(c) <= 0xfc))
-#define GETAHI (0x81)
-#define GETALO (0xac)
-
-typedef struct _sjis_regur_t {
- int start;
- int end;
- int rstart;
-} sjis_regur_t;
-
-/* When Converting to EUC and JIS, there is no room for
- * these SJIS codes whose hi byte is larger than 0xf0.
- *
- * So we must drop or convert it to harmless code.
- * This is not standard way, so it is ad hoc but practical.
- * It is also thought of backward and future compatibility.
- *
- * Miura.
- */
-
-static sjis_regur_t sjisconv[] = {
-{0xfa40, 0xfa49, 0xeeef},
-{0xfa4a, 0xfa53, 0x8754},
-{0xfa54, 0xfa54, 0x81ca},
-{0xfa55, 0xfa57, 0xeefa},
-{0xfa58, 0xfa58, 0x878a},
-{0xfa59, 0xfa59, 0x8782},
-{0xfa5a, 0xfa5a, 0x8784},
-{0xfa5b, 0xfa5b, 0x81e6},
-{0xfa5c, 0xfa7e, 0xed40},
-{0xfa80, 0xfa9b, 0xed63},
-{0xfa9c, 0xfafc, 0xed80},
-{0xfb40, 0xfb5b, 0xede1},
-{0xfb5c, 0xfb7e, 0xee40},
-{0xfb80, 0xfb9b, 0xee63},
-{0xfb9c, 0xfbfc, 0xee80},
-{0xfc40, 0xfc4b, 0xeee1}
-};
-#define SJISCONVTBLSIZ (sizeof(sjisconv) / sizeof(sjis_regur_t))
-
-static sjis_regur_t sjisrev[] = {
-{0x81ca, 0x81ca, 0xfa54},
-{0x81e6, 0x81e6, 0xfa5b},
-{0x8754, 0x875d, 0xfa4a},
-{0x8782, 0x8782, 0xfa59},
-{0x8784, 0x8784, 0xfa5a},
-{0x878a, 0x878a, 0xfa58},
-{0xed40, 0xed62, 0xfa5c},
-{0xed63, 0xed7e, 0xfa80},
-{0xed80, 0xede0, 0xfa9c},
-{0xede1, 0xedfc, 0xfb40},
-{0xee40, 0xee62, 0xfb5c},
-{0xee63, 0xee7e, 0xfb80},
-{0xee80, 0xeee0, 0xfb9c},
-{0xeee1, 0xeeec, 0xfc40},
-{0xeeef, 0xeef8, 0xfa40},
-{0xeefa, 0xeefc, 0xfa55}
-};
-#define SJISREVTBLSIZ (sizeof(sjisrev) / sizeof(sjis_regur_t))
-
-/* EUC3BYTE DEFINITIONS */
-
-typedef struct _sjis_euc_map_t {
- int sjis;
- int euc;
-} sjis_euc_map_t;
-
-static sjis_euc_map_t euc3conv2[] = {
-{0x8754 , 0xf3fd},
-{0x8755 , 0xf3fe},
-{0x8756 , 0xf4a1},
-{0x8757 , 0xf4a2},
-{0x8758 , 0xf4a3},
-{0x8759 , 0xf4a4},
-{0x875a , 0xf4a5},
-{0x875b , 0xf4a6},
-{0x875c , 0xf4a7},
-{0x875d , 0xf4a8},
-{0x8782 , 0xf4ac},
-{0x8784 , 0xf4ad},
-{0x878a , 0xf4ab}
-};
-#define EUC3CONV2TBLSIZ (sizeof(euc3conv2) / sizeof(sjis_euc_map_t))
-
-
-/* IBM Kanji to EUC 3byte */
-static int euc3conv[] = {
-/* 0xfa40 */
-0xf3f3, 0xf3f4, 0xf3f5, 0xf3f6, 0xf3f7, 0xf3f8, 0xf3f9, 0xf3fa, 0xf3fb, 0xf3fc, 0xf3fd, 0xf3fe, 0xf4a1, 0xf4a2, 0xf4a3, 0xf4a4,
-/* 0xfa50 */
-0xf4a5, 0xf4a6, 0xf4a7, 0xf4a8, 0, 0xa2c3, 0xf4a9, 0xf4aa, 0xf4ab, 0xf4ac, 0xf4ad, 0, 0xd4e3, 0xdcdf, 0xe4e9, 0xe3f8,
-/* 0xfa60 */
-0xd9a1, 0xb1bb, 0xf4ae, 0xc2ad, 0xc3fc, 0xe4d0, 0xc2bf, 0xbcf4, 0xb0a9, 0xb0c8, 0xf4af, 0xb0d2, 0xb0d4, 0xb0e3, 0xb0ee, 0xb1a7,
-/* 0xfa70 */
-0xb1a3, 0xb1ac, 0xb1a9, 0xb1be, 0xb1df, 0xb1d8, 0xb1c8, 0xb1d7, 0xb1e3, 0xb1f4, 0xb1e1, 0xb2a3, 0xf4b0, 0xb2bb, 0xb2e6,
-/* 0xfa80 */
-0xb2ed, 0xb2f5, 0xb2fc, 0xf4b1, 0xb3b5, 0xb3d8, 0xb3db, 0xb3e5, 0xb3ee, 0xb3fb, 0xf4b2, 0xf4b3, 0xb4c0, 0xb4c7, 0xb4d0, 0xb4de,
-/* 0xfa90 */
-0xf4b4, 0xb5aa, 0xf4b5, 0xb5af, 0xb5c4, 0xb5e8, 0xf4b6, 0xb7c2, 0xb7e4, 0xb7e8, 0xb7e7, 0xf4b7, 0xf4b8, 0xf4b9, 0xb8ce, 0xb8e1,
-/* 0xfaa0 */
-0xb8f5, 0xb8f7, 0xb8f8, 0xb8fc, 0xb9af, 0xb9b7, 0xbabe, 0xbadb, 0xcdaa, 0xbae1, 0xf4ba, 0xbaeb, 0xbbb3, 0xbbb8, 0xf4bb, 0xbbca,
-/* 0xfab0 */
-0xf4bc, 0xf4bd, 0xbbd0, 0xbbde, 0xbbf4, 0xbbf5, 0xbbf9, 0xbce4, 0xbced, 0xbcfe, 0xf4be, 0xbdc2, 0xbde7, 0xf4bf, 0xbdf0, 0xbeb0,
-/* 0xfac0 */
-0xbeac, 0xf4c0, 0xbeb3, 0xbebd, 0xbecd, 0xbec9, 0xbee4, 0xbfa8, 0xbfc9, 0xc0c4, 0xc0e4, 0xc0f4, 0xc1a6, 0xf4c1, 0xc1f5, 0xc1fc,
-/* 0xfad0 */
-0xf4c2, 0xc1f8, 0xc2ab, 0xc2a1, 0xc2a5, 0xf4c3, 0xc2b8, 0xc2ba, 0xf4c4, 0xc2c4, 0xc2d2, 0xc2d7, 0xc2db, 0xc2de, 0xc2ed, 0xc2f0,
-/* 0xfae0 */
-0xf4c5, 0xc3a1, 0xc3b5, 0xc3c9, 0xc3b9, 0xf4c6, 0xc3d8, 0xc3fe, 0xf4c7, 0xc4cc, 0xf4c8, 0xc4d9, 0xc4ea, 0xc4fd, 0xf4c9, 0xc5a7,
-/* 0xfaf0 */
- 0xc5b5, 0xc5b6, 0xf4ca, 0xc5d5, 0xc6b8, 0xc6d7, 0xc6e0, 0xc6ea, 0xc6e3, 0xc7a1, 0xc7ab, 0xc7c7, 0xc7c3,
-/* 0xfb40 */
- 0xc7cb, 0xc7cf, 0xc7d9, 0xf4cb, 0xf4cc, 0xc7e6, 0xc7ee, 0xc7fc, 0xc7eb, 0xc7f0, 0xc8b1, 0xc8e5, 0xc8f8, 0xc9a6, 0xc9ab, 0xc9ad,
-/* 0xfb50 */
- 0xf4cd, 0xc9ca, 0xc9d3, 0xc9e9, 0xc9e3, 0xc9fc, 0xc9f4, 0xc9f5, 0xf4ce, 0xcab3, 0xcabd, 0xcaef, 0xcaf1, 0xcbae, 0xf4cf, 0xcbca,
-/* 0xfb60 */
- 0xcbe6, 0xcbea, 0xcbf0, 0xcbf4, 0xcbee, 0xcca5, 0xcbf9, 0xccab, 0xccae, 0xccad, 0xccb2, 0xccc2, 0xccd0, 0xccd9, 0xf4d0, 0xcdbb,
-/* 0xfb70 */
-0xf4d1, 0xcebb, 0xf4d2, 0xceba, 0xcec3, 0xf4d3, 0xcef2, 0xb3dd, 0xcfd5, 0xcfe2, 0xcfe9, 0xcfed, 0xf4d4, 0xf4d5, 0xf4d6,
-/* 0xfb80 */
- 0xf4d7, 0xd0e5, 0xf4d8, 0xd0e9, 0xd1e8, 0xf4d9, 0xf4da, 0xd1ec, 0xd2bb, 0xf4db, 0xd3e1, 0xd3e8, 0xd4a7, 0xf4dc, 0xf4dd, 0xd4d4,
-/* 0xfb90 */
- 0xd4f2, 0xd5ae, 0xf4de, 0xd7de, 0xf4df, 0xd8a2, 0xd8b7, 0xd8c1, 0xd8d1, 0xd8f4, 0xd9c6, 0xd9c8, 0xd9d1, 0xf4e0, 0xf4e1, 0xf4e2,
-/* 0xfba0 */
- 0xf4e3, 0xf4e4, 0xdcd3, 0xddc8, 0xddd4, 0xddea, 0xddfa, 0xdea4, 0xdeb0, 0xf4e5, 0xdeb5, 0xdecb, 0xf4e6, 0xdfb9, 0xf4e7, 0xdfc3,
-/* 0xfbb0 */
- 0xf4e8, 0xf4e9, 0xe0d9, 0xf4ea, 0xf4eb, 0xe1e2, 0xf4ec, 0xf4ed, 0xf4ee, 0xe2c7, 0xe3a8, 0xe3a6, 0xe3a9, 0xe3af, 0xe3b0, 0xe3aa,
-/* 0xfbc0 */
- 0xe3ab, 0xe3bc, 0xe3c1, 0xe3bf, 0xe3d5, 0xe3d8, 0xe3d6, 0xe3df, 0xe3e3, 0xe3e1, 0xe3d4, 0xe3e9, 0xe4a6, 0xe3f1, 0xe3f2, 0xe4cb,
-/* 0xfbd0 */
- 0xe4c1, 0xe4c3, 0xe4be, 0xf4ef, 0xe4c0, 0xe4c7, 0xe4bf, 0xe4e0, 0xe4de, 0xe4d1, 0xf4f0, 0xe4dc, 0xe4d2, 0xe4db, 0xe4d4, 0xe4fa,
-/* 0xfbe0 */
- 0xe4ef, 0xe5b3, 0xe5bf, 0xe5c9, 0xe5d0, 0xe5e2, 0xe5ea, 0xe5eb, 0xf4f1, 0xf4f2, 0xf4f3, 0xe6e8, 0xe6ef, 0xe7ac, 0xf4f4, 0xe7ae,
-/* 0xfbf0 */
- 0xf4f5, 0xe7b1, 0xf4f6, 0xe7b2, 0xe8b1, 0xe8b6, 0xf4f7, 0xf4f8, 0xe8dd, 0xf4f9, 0xf4fa, 0xe9d1, 0xf4fb,
-/* 0xfc40 */
- 0xe9ed, 0xeacd, 0xf4fc, 0xeadb, 0xeae6, 0xeaea, 0xeba5, 0xebfb, 0xebfa, 0xf4fd, 0xecd6, 0xf4fe
-};
-
-#define EUC3CONVTBLSIZ (sizeof(euc3conv) / sizeof(int))
-
-/* EUC3byte to SJIS Code */
-
-typedef struct _sjis_euc_revmap_t {
- int euc;
- int sjis;
-} sjis_euc_revmap_t;
-
-static sjis_euc_revmap_t euc3rev[] = {
-{0xa2c3, 0xfa55},
-{0xb0a9, 0xfa68},
-{0xb0c8, 0xfa69},
-{0xb0d2, 0xfa6b},
-{0xb0d4, 0xfa6c},
-{0xb0e3, 0xfa6d},
-{0xb0ee, 0xfa6e},
-{0xb1a3, 0xfa70},
-{0xb1a7, 0xfa6f},
-{0xb1a9, 0xfa72},
-{0xb1ac, 0xfa71},
-{0xb1bb, 0xfa61},
-{0xb1be, 0xfa73},
-{0xb1c8, 0xfa76},
-{0xb1d7, 0xfa77},
-{0xb1d8, 0xfa75},
-{0xb1df, 0xfa74},
-{0xb1e1, 0xfa7a},
-{0xb1e3, 0xfa78},
-{0xb1f4, 0xfa79},
-{0xb2a3, 0xfa7b},
-{0xb2bb, 0xfa7d},
-{0xb2e6, 0xfa7e},
-{0xb2ed, 0xfa80},
-{0xb2f5, 0xfa81},
-{0xb2fc, 0xfa82},
-{0xb3b5, 0xfa84},
-{0xb3d8, 0xfa85},
-{0xb3db, 0xfa86},
-{0xb3dd, 0xfb77},
-{0xb3e5, 0xfa87},
-{0xb3ee, 0xfa88},
-{0xb3fb, 0xfa89},
-{0xb4c0, 0xfa8c},
-{0xb4c7, 0xfa8d},
-{0xb4d0, 0xfa8e},
-{0xb4de, 0xfa8f},
-{0xb5aa, 0xfa91},
-{0xb5af, 0xfa93},
-{0xb5c4, 0xfa94},
-{0xb5e8, 0xfa95},
-{0xb7c2, 0xfa97},
-{0xb7e4, 0xfa98},
-{0xb7e7, 0xfa9a},
-{0xb7e8, 0xfa99},
-{0xb8ce, 0xfa9e},
-{0xb8e1, 0xfa9f},
-{0xb8f5, 0xfaa0},
-{0xb8f7, 0xfaa1},
-{0xb8f8, 0xfaa2},
-{0xb8fc, 0xfaa3},
-{0xb9af, 0xfaa4},
-{0xb9b7, 0xfaa5},
-{0xbabe, 0xfaa6},
-{0xbadb, 0xfaa7},
-{0xbae1, 0xfaa9},
-{0xbaeb, 0xfaab},
-{0xbbb3, 0xfaac},
-{0xbbb8, 0xfaad},
-{0xbbca, 0xfaaf},
-{0xbbd0, 0xfab2},
-{0xbbde, 0xfab3},
-{0xbbf4, 0xfab4},
-{0xbbf5, 0xfab5},
-{0xbbf9, 0xfab6},
-{0xbce4, 0xfab7},
-{0xbced, 0xfab8},
-{0xbcf4, 0xfa67},
-{0xbcfe, 0xfab9},
-{0xbdc2, 0xfabb},
-{0xbde7, 0xfabc},
-{0xbdf0, 0xfabe},
-{0xbeac, 0xfac0},
-{0xbeb0, 0xfabf},
-{0xbeb3, 0xfac2},
-{0xbebd, 0xfac3},
-{0xbec9, 0xfac5},
-{0xbecd, 0xfac4},
-{0xbee4, 0xfac6},
-{0xbfa8, 0xfac7},
-{0xbfc9, 0xfac8},
-{0xc0c4, 0xfac9},
-{0xc0e4, 0xfaca},
-{0xc0f4, 0xfacb},
-{0xc1a6, 0xfacc},
-{0xc1f5, 0xface},
-{0xc1f8, 0xfad1},
-{0xc1fc, 0xfacf},
-{0xc2a1, 0xfad3},
-{0xc2a5, 0xfad4},
-{0xc2ab, 0xfad2},
-{0xc2ad, 0xfa63},
-{0xc2b8, 0xfad6},
-{0xc2ba, 0xfad7},
-{0xc2bf, 0xfa66},
-{0xc2c4, 0xfad9},
-{0xc2d2, 0xfada},
-{0xc2d7, 0xfadb},
-{0xc2db, 0xfadc},
-{0xc2de, 0xfadd},
-{0xc2ed, 0xfade},
-{0xc2f0, 0xfadf},
-{0xc3a1, 0xfae1},
-{0xc3b5, 0xfae2},
-{0xc3b9, 0xfae4},
-{0xc3c9, 0xfae3},
-{0xc3d8, 0xfae6},
-{0xc3fc, 0xfa64},
-{0xc3fe, 0xfae7},
-{0xc4cc, 0xfae9},
-{0xc4d9, 0xfaeb},
-{0xc4ea, 0xfaec},
-{0xc4fd, 0xfaed},
-{0xc5a7, 0xfaef},
-{0xc5b5, 0xfaf0},
-{0xc5b6, 0xfaf1},
-{0xc5d5, 0xfaf3},
-{0xc6b8, 0xfaf4},
-{0xc6d7, 0xfaf5},
-{0xc6e0, 0xfaf6},
-{0xc6e3, 0xfaf8},
-{0xc6ea, 0xfaf7},
-{0xc7a1, 0xfaf9},
-{0xc7ab, 0xfafa},
-{0xc7c3, 0xfafc},
-{0xc7c7, 0xfafb},
-{0xc7cb, 0xfb40},
-{0xc7cf, 0xfb41},
-{0xc7d9, 0xfb42},
-{0xc7e6, 0xfb45},
-{0xc7eb, 0xfb48},
-{0xc7ee, 0xfb46},
-{0xc7f0, 0xfb49},
-{0xc7fc, 0xfb47},
-{0xc8b1, 0xfb4a},
-{0xc8e5, 0xfb4b},
-{0xc8f8, 0xfb4c},
-{0xc9a6, 0xfb4d},
-{0xc9ab, 0xfb4e},
-{0xc9ad, 0xfb4f},
-{0xc9ca, 0xfb51},
-{0xc9d3, 0xfb52},
-{0xc9e3, 0xfb54},
-{0xc9e9, 0xfb53},
-{0xc9f4, 0xfb56},
-{0xc9f5, 0xfb57},
-{0xc9fc, 0xfb55},
-{0xcab3, 0xfb59},
-{0xcabd, 0xfb5a},
-{0xcaef, 0xfb5b},
-{0xcaf1, 0xfb5c},
-{0xcbae, 0xfb5d},
-{0xcbca, 0xfb5f},
-{0xcbe6, 0xfb60},
-{0xcbea, 0xfb61},
-{0xcbee, 0xfb64},
-{0xcbf0, 0xfb62},
-{0xcbf4, 0xfb63},
-{0xcbf9, 0xfb66},
-{0xcca5, 0xfb65},
-{0xccab, 0xfb67},
-{0xccad, 0xfb69},
-{0xccae, 0xfb68},
-{0xccb2, 0xfb6a},
-{0xccc2, 0xfb6b},
-{0xccd0, 0xfb6c},
-{0xccd9, 0xfb6d},
-{0xcdaa, 0xfaa8},
-{0xcdbb, 0xfb6f},
-{0xceba, 0xfb73},
-{0xcebb, 0xfb71},
-{0xcec3, 0xfb74},
-{0xcef2, 0xfb76},
-{0xcfd5, 0xfb78},
-{0xcfe2, 0xfb79},
-{0xcfe9, 0xfb7a},
-{0xcfed, 0xfb7b},
-{0xd0e5, 0xfb81},
-{0xd0e9, 0xfb83},
-{0xd1e8, 0xfb84},
-{0xd1ec, 0xfb87},
-{0xd2bb, 0xfb88},
-{0xd3e1, 0xfb8a},
-{0xd3e8, 0xfb8b},
-{0xd4a7, 0xfb8c},
-{0xd4d4, 0xfb8f},
-{0xd4e3, 0xfa5c},
-{0xd4f2, 0xfb90},
-{0xd5ae, 0xfb91},
-{0xd7de, 0xfb93},
-{0xd8a2, 0xfb95},
-{0xd8b7, 0xfb96},
-{0xd8c1, 0xfb97},
-{0xd8d1, 0xfb98},
-{0xd8f4, 0xfb99},
-{0xd9a1, 0xfa60},
-{0xd9c6, 0xfb9a},
-{0xd9c8, 0xfb9b},
-{0xd9d1, 0xfb9c},
-{0xdcd3, 0xfba2},
-{0xdcdf, 0xfa5d},
-{0xddc8, 0xfba3},
-{0xddd4, 0xfba4},
-{0xddea, 0xfba5},
-{0xddfa, 0xfba6},
-{0xdea4, 0xfba7},
-{0xdeb0, 0xfba8},
-{0xdeb5, 0xfbaa},
-{0xdecb, 0xfbab},
-{0xdfb9, 0xfbad},
-{0xdfc3, 0xfbaf},
-{0xe0d9, 0xfbb2},
-{0xe1e2, 0xfbb5},
-{0xe2c7, 0xfbb9},
-{0xe3a6, 0xfbbb},
-{0xe3a8, 0xfbba},
-{0xe3a9, 0xfbbc},
-{0xe3aa, 0xfbbf},
-{0xe3ab, 0xfbc0},
-{0xe3af, 0xfbbd},
-{0xe3b0, 0xfbbe},
-{0xe3bc, 0xfbc1},
-{0xe3bf, 0xfbc3},
-{0xe3c1, 0xfbc2},
-{0xe3d4, 0xfbca},
-{0xe3d5, 0xfbc4},
-{0xe3d6, 0xfbc6},
-{0xe3d8, 0xfbc5},
-{0xe3df, 0xfbc7},
-{0xe3e1, 0xfbc9},
-{0xe3e3, 0xfbc8},
-{0xe3e9, 0xfbcb},
-{0xe3f1, 0xfbcd},
-{0xe3f2, 0xfbce},
-{0xe3f8, 0xfa5f},
-{0xe4a6, 0xfbcc},
-{0xe4be, 0xfbd2},
-{0xe4bf, 0xfbd6},
-{0xe4c0, 0xfbd4},
-{0xe4c1, 0xfbd0},
-{0xe4c3, 0xfbd1},
-{0xe4c7, 0xfbd5},
-{0xe4cb, 0xfbcf},
-{0xe4d0, 0xfa65},
-{0xe4d1, 0xfbd9},
-{0xe4d2, 0xfbdc},
-{0xe4d4, 0xfbde},
-{0xe4db, 0xfbdd},
-{0xe4dc, 0xfbdb},
-{0xe4de, 0xfbd8},
-{0xe4e0, 0xfbd7},
-{0xe4e9, 0xfa5e},
-{0xe4ef, 0xfbe0},
-{0xe4fa, 0xfbdf},
-{0xe5b3, 0xfbe1},
-{0xe5bf, 0xfbe2},
-{0xe5c9, 0xfbe3},
-{0xe5d0, 0xfbe4},
-{0xe5e2, 0xfbe5},
-{0xe5ea, 0xfbe6},
-{0xe5eb, 0xfbe7},
-{0xe6e8, 0xfbeb},
-{0xe6ef, 0xfbec},
-{0xe7ac, 0xfbed},
-{0xe7ae, 0xfbef},
-{0xe7b1, 0xfbf1},
-{0xe7b2, 0xfbf3},
-{0xe8b1, 0xfbf4},
-{0xe8b6, 0xfbf5},
-{0xe8dd, 0xfbf8},
-{0xe9d1, 0xfbfb},
-{0xe9ed, 0xfc40},
-{0xeacd, 0xfc41},
-{0xeadb, 0xfc43},
-{0xeae6, 0xfc44},
-{0xeaea, 0xfc45},
-{0xeba5, 0xfc46},
-{0xebfa, 0xfc48},
-{0xebfb, 0xfc47},
-{0xecd6, 0xfc4a},
-{0xf3f3, 0xfa40},
-{0xf3f4, 0xfa41},
-{0xf3f5, 0xfa42},
-{0xf3f6, 0xfa43},
-{0xf3f7, 0xfa44},
-{0xf3f8, 0xfa45},
-{0xf3f9, 0xfa46},
-{0xf3fa, 0xfa47},
-{0xf3fb, 0xfa48},
-{0xf3fc, 0xfa49},
-{0xf3fd, 0xfa4a},
-{0xf3fe, 0xfa4b},
-{0xf4a1, 0xfa4c},
-{0xf4a2, 0xfa4d},
-{0xf4a3, 0xfa4e},
-{0xf4a4, 0xfa4f},
-{0xf4a5, 0xfa50},
-{0xf4a6, 0xfa51},
-{0xf4a7, 0xfa52},
-{0xf4a8, 0xfa53},
-{0xf4a9, 0xfa56},
-{0xf4aa, 0xfa57},
-{0xf4ab, 0xfa58},
-{0xf4ac, 0xfa59},
-{0xf4ad, 0xfa5a},
-{0xf4ae, 0xfa62},
-{0xf4af, 0xfa6a},
-{0xf4b0, 0xfa7c},
-{0xf4b1, 0xfa83},
-{0xf4b2, 0xfa8a},
-{0xf4b3, 0xfa8b},
-{0xf4b4, 0xfa90},
-{0xf4b5, 0xfa92},
-{0xf4b6, 0xfa96},
-{0xf4b7, 0xfa9b},
-{0xf4b8, 0xfa9c},
-{0xf4b9, 0xfa9d},
-{0xf4ba, 0xfaaa},
-{0xf4bb, 0xfaae},
-{0xf4bc, 0xfab0},
-{0xf4bd, 0xfab1},
-{0xf4be, 0xfaba},
-{0xf4bf, 0xfabd},
-{0xf4c0, 0xfac1},
-{0xf4c1, 0xfacd},
-{0xf4c2, 0xfad0},
-{0xf4c3, 0xfad5},
-{0xf4c4, 0xfad8},
-{0xf4c5, 0xfae0},
-{0xf4c6, 0xfae5},
-{0xf4c7, 0xfae8},
-{0xf4c8, 0xfaea},
-{0xf4c9, 0xfaee},
-{0xf4ca, 0xfaf2},
-{0xf4cb, 0xfb43},
-{0xf4cc, 0xfb44},
-{0xf4cd, 0xfb50},
-{0xf4ce, 0xfb58},
-{0xf4cf, 0xfb5e},
-{0xf4d0, 0xfb6e},
-{0xf4d1, 0xfb70},
-{0xf4d2, 0xfb72},
-{0xf4d3, 0xfb75},
-{0xf4d4, 0xfb7c},
-{0xf4d5, 0xfb7d},
-{0xf4d6, 0xfb7e},
-{0xf4d7, 0xfb80},
-{0xf4d8, 0xfb82},
-{0xf4d9, 0xfb85},
-{0xf4da, 0xfb86},
-{0xf4db, 0xfb89},
-{0xf4dc, 0xfb8d},
-{0xf4dd, 0xfb8e},
-{0xf4de, 0xfb92},
-{0xf4df, 0xfb94},
-{0xf4e0, 0xfb9d},
-{0xf4e1, 0xfb9e},
-{0xf4e2, 0xfb9f},
-{0xf4e3, 0xfba0},
-{0xf4e4, 0xfba1},
-{0xf4e5, 0xfba9},
-{0xf4e6, 0xfbac},
-{0xf4e7, 0xfbae},
-{0xf4e8, 0xfbb0},
-{0xf4e9, 0xfbb1},
-{0xf4ea, 0xfbb3},
-{0xf4eb, 0xfbb4},
-{0xf4ec, 0xfbb6},
-{0xf4ed, 0xfbb7},
-{0xf4ee, 0xfbb8},
-{0xf4ef, 0xfbd3},
-{0xf4f0, 0xfbda},
-{0xf4f1, 0xfbe8},
-{0xf4f2, 0xfbe9},
-{0xf4f3, 0xfbea},
-{0xf4f4, 0xfbee},
-{0xf4f5, 0xfbf0},
-{0xf4f6, 0xfbf2},
-{0xf4f7, 0xfbf6},
-{0xf4f8, 0xfbf7},
-{0xf4f9, 0xfbf9},
-{0xf4fa, 0xfbfa},
-{0xf4fb, 0xfbfc},
-{0xf4fc, 0xfc42},
-{0xf4fd, 0xfc49},
-{0xf4fe, 0xfc4b},
-};
-
-#define EUC3REVTBLSIZ (sizeof(euc3rev) / sizeof(sjis_euc_revmap_t))
-
-#endif /* _KANJI_C_ */
-#endif /* _KANJI_H_ */