koco-cvs Mailing List for Python Korean Codecs (Page 3)
Brought to you by:
perky
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(88) |
May
(5) |
Jun
|
Jul
(27) |
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(77) |
Feb
(3) |
Mar
|
Apr
(22) |
May
(123) |
Jun
(80) |
Jul
(83) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Hye-Shik C. <pe...@us...> - 2003-07-08 04:58:36
|
perky 03/07/07 21:58:35 Modified: src _euc_jisx0213.c Log: Don't try to encode extended planes other than U+20000 Revision Changes Path 1.4 +7 -9 cjkcodecs/src/_euc_jisx0213.c Index: _euc_jisx0213.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/_euc_jisx0213.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- _euc_jisx0213.c 8 Jul 2003 04:40:43 -0000 1.3 +++ _euc_jisx0213.c 8 Jul 2003 04:58:35 -0000 1.4 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: _euc_jisx0213.c,v 1.3 2003/07/08 04:40:43 perky Exp $ + * $Id: _euc_jisx0213.c,v 1.4 2003/07/08 04:58:35 perky Exp $ */ #define USING_BINARY_PAIR_SEARCH @@ -65,6 +65,7 @@ if ((*inbuf)[1] >> 10 == 0xdc00 >> 10) { /* low surrogate */ c = 0x10000 + ((c - 0xd800) << 10) + ((ucs4_t)((*inbuf)[1]) - 0xdc00); + insize = 2; } } #endif @@ -106,14 +107,11 @@ code = 0x2140; else return 1; - } else TRYMAP_ENC(jisx0213_emp, code, c & 0xffff) -#if Py_UNICODE_SIZE == 2 - insize = 2; - else return 2; -#else - ; - else return 1; -#endif + } else if (c >> 16 == EMPBASE >> 16) { + TRYMAP_ENC(jisx0213_emp, code, c & 0xffff); + else return insize; + } else + return insize; if (code & 0x8000) { /* Codeset 2 */ |
From: Hye-Shik C. <pe...@us...> - 2003-07-08 04:40:46
|
perky 03/07/07 21:40:44 Modified: src _euc_jisx0213.c codeccommon.h Log: Fix wrong indata counting on UCS2 mode. Revision Changes Path 1.3 +9 -3 cjkcodecs/src/_euc_jisx0213.c Index: _euc_jisx0213.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/_euc_jisx0213.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- _euc_jisx0213.c 7 Jul 2003 08:37:10 -0000 1.2 +++ _euc_jisx0213.c 8 Jul 2003 04:40:43 -0000 1.3 @@ -26,9 +26,10 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: _euc_jisx0213.c,v 1.2 2003/07/07 08:37:10 perky Exp $ + * $Id: _euc_jisx0213.c,v 1.3 2003/07/08 04:40:43 perky Exp $ */ +#define USING_BINARY_PAIR_SEARCH #include "codeccommon.h" #include "maps/map_jisx0213_pairs.h" @@ -105,8 +106,14 @@ code = 0x2140; else return 1; - } else TRYMAP_ENC(jisx0213_emp, code, c & 0xffff); + } else TRYMAP_ENC(jisx0213_emp, code, c & 0xffff) +#if Py_UNICODE_SIZE == 2 + insize = 2; + else return 2; +#else + ; else return 1; +#endif if (code & 0x8000) { /* Codeset 2 */ @@ -195,7 +202,6 @@ return 0; } -#define USING_BINARY_PAIR_SEARCH #include "codecentry.h" BEGIN_CODEC_REGISTRY(euc_jisx0213) MAPOPEN(ja_JP) 1.19 +5 -3 cjkcodecs/src/codeccommon.h Index: codeccommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/codeccommon.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- codeccommon.h 7 Jul 2003 08:37:10 -0000 1.18 +++ codeccommon.h 8 Jul 2003 04:40:44 -0000 1.19 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: codeccommon.h,v 1.18 2003/07/07 08:37:10 perky Exp $ + * $Id: codeccommon.h,v 1.19 2003/07/08 04:40:44 perky Exp $ */ #include "Python.h" @@ -125,7 +125,7 @@ (val)<= (m)->top && ((assi) = (m)->map[(val) - \ (m)->bottom]) != NOCHAR) #define TRYMAP_ENC(charset, assi, uni) \ - _TRYMAP_ENC(&charset##encmap[uni >> 8], assi, uni & 0xff) + _TRYMAP_ENC(&charset##encmap[(uni) >> 8], assi, (uni) & 0xff) #define _TRYMAP_DEC(m, assi, val) \ if ((m)->map != NULL && (val) >= (m)->bottom && \ (val)<= (m)->top && ((assi) = (m)->map[(val) - \ @@ -133,7 +133,9 @@ #define TRYMAP_DEC(charset, assi, c1, c2) \ _TRYMAP_DEC(&charset##decmap[c1], assi, c2) -extern DBCHAR find_pairencmap(ucs2_t, ucs2_t, struct pair_encodemap *, int); +#ifdef USING_BINARY_PAIR_SEARCH +static DBCHAR find_pairencmap(ucs2_t , ucs2_t, struct pair_encodemap *, int); +#endif /* * ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 08:37:12
|
perky 03/07/07 01:37:10 Modified: src _euc_jisx0213.c codeccommon.h codecentry.h Log: Move pair search routine to common header. Revision Changes Path 1.2 +2 -27 cjkcodecs/src/_euc_jisx0213.c Index: _euc_jisx0213.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/_euc_jisx0213.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- _euc_jisx0213.c 7 Jul 2003 08:17:36 -0000 1.1 +++ _euc_jisx0213.c 7 Jul 2003 08:37:10 -0000 1.2 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: _euc_jisx0213.c,v 1.1 2003/07/07 08:17:36 perky Exp $ + * $Id: _euc_jisx0213.c,v 1.2 2003/07/07 08:37:10 perky Exp $ */ #include "codeccommon.h" @@ -44,32 +44,6 @@ #define EMPBASE 0x20000 -static DBCHAR -find_pairencmap(ucs2_t body, ucs2_t modifier, - struct pair_encodemap *haystack, int haystacksize) -{ - int pos, min, max; - ucs4_t value = body << 16 | modifier; - - min = 0; - max = haystacksize; - - for (pos = haystacksize >> 1; min != max; pos = (min + max) >> 1) - if (value < haystack[pos].uniseq) { - if (max == pos) break; - else max = pos; - } else if (value > haystack[pos].uniseq) { - if (min == pos) break; - else min = pos; - } else - break; - - if (value == haystack[pos].uniseq) - return haystack[pos].code; - else - return DBCINV; -} - ENCODER(euc_jisx0213) { while (inleft > 0) { @@ -221,6 +195,7 @@ return 0; } +#define USING_BINARY_PAIR_SEARCH #include "codecentry.h" BEGIN_CODEC_REGISTRY(euc_jisx0213) MAPOPEN(ja_JP) 1.18 +3 -1 cjkcodecs/src/codeccommon.h Index: codeccommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/codeccommon.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- codeccommon.h 7 Jul 2003 08:17:36 -0000 1.17 +++ codeccommon.h 7 Jul 2003 08:37:10 -0000 1.18 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: codeccommon.h,v 1.17 2003/07/07 08:17:36 perky Exp $ + * $Id: codeccommon.h,v 1.18 2003/07/07 08:37:10 perky Exp $ */ #include "Python.h" @@ -132,6 +132,8 @@ (m)->bottom]) != UNIINV) #define TRYMAP_DEC(charset, assi, c1, c2) \ _TRYMAP_DEC(&charset##decmap[c1], assi, c2) + +extern DBCHAR find_pairencmap(ucs2_t, ucs2_t, struct pair_encodemap *, int); /* * ex: ts=8 sts=4 et 1.3 +29 -1 cjkcodecs/src/codecentry.h Index: codecentry.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/codecentry.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- codecentry.h 6 Jun 2003 05:52:03 -0000 1.2 +++ codecentry.h 7 Jul 2003 08:37:10 -0000 1.3 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: codecentry.h,v 1.2 2003/06/06 05:52:03 perky Exp $ + * $Id: codecentry.h,v 1.3 2003/07/07 08:37:10 perky Exp $ */ #ifdef HAVE_ENCODER_INIT @@ -117,6 +117,34 @@ Py_XDECREF(mod); \ Py_XDECREF(o); \ } + +#ifdef USING_BINARY_PAIR_SEARCH +static DBCHAR +find_pairencmap(ucs2_t body, ucs2_t modifier, + struct pair_encodemap *haystack, int haystacksize) +{ + int pos, min, max; + ucs4_t value = body << 16 | modifier; + + min = 0; + max = haystacksize; + + for (pos = haystacksize >> 1; min != max; pos = (min + max) >> 1) + if (value < haystack[pos].uniseq) { + if (max == pos) break; + else max = pos; + } else if (value > haystack[pos].uniseq) { + if (min == pos) break; + else min = pos; + } else + break; + + if (value == haystack[pos].uniseq) + return haystack[pos].code; + else + return DBCINV; +} +#endif #ifndef CODEC_WITHOUT_MAPS static int |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 08:17:37
|
perky 03/07/07 01:17:37 Modified: src/maps map_jisx0213_pairs.h Log: Add EUC-JISX0213 codec. Revision Changes Path 1.2 +53 -53 cjkcodecs/src/maps/map_jisx0213_pairs.h Index: map_jisx0213_pairs.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_jisx0213_pairs.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- map_jisx0213_pairs.h 7 Jul 2003 04:33:51 -0000 1.1 +++ map_jisx0213_pairs.h 7 Jul 2003 08:17:37 -0000 1.2 @@ -1,8 +1,8 @@ /* - * $Id: map_jisx0213_pairs.h,v 1.1 2003/07/07 04:33:51 perky Exp $ + * $Id: map_jisx0213_pairs.h,v 1.2 2003/07/07 08:17:37 perky Exp $ */ -static const ucs4_t __jisx0213_pairdecmap_decmap[49] = { +static const ucs4_t __jisx0213_pairdecmap[49] = { 0x304b309a, 0x304d309a, 0x304f309a, 0x3051309a, 0x3053309a, 0x30ab309a, 0x30ad309a, 0x30af309a, 0x30b1309a, 0x30b3309a, 0x30bb309a, 0x30c4309a, @@ -18,7 +18,7 @@ 0x02e502e9, }; -static const struct widedbcs_index jisx0213_pairdecmap_decmap[256] = { +static const struct widedbcs_index jisx0213_pairdecmap[256] = { /* 0x00 */ {0, 0, 0}, /* 0x01 */ {0, 0, 0}, /* 0x02 */ {0, 0, 0}, @@ -55,14 +55,14 @@ /* 0x21 */ {0, 0, 0}, /* 0x22 */ {0, 0, 0}, /* 0x23 */ {0, 0, 0}, -/* 0x24 */ {__jisx0213_pairdecmap_decmap+0, 0x77, 0x7b}, -/* 0x25 */ {__jisx0213_pairdecmap_decmap+5, 0x77, 0x7e}, -/* 0x26 */ {__jisx0213_pairdecmap_decmap+13, 0x78, 0x78}, +/* 0x24 */ {__jisx0213_pairdecmap+0, 0x77, 0x7b}, +/* 0x25 */ {__jisx0213_pairdecmap+5, 0x77, 0x7e}, +/* 0x26 */ {__jisx0213_pairdecmap+13, 0x78, 0x78}, /* 0x27 */ {0, 0, 0}, /* 0x28 */ {0, 0, 0}, /* 0x29 */ {0, 0, 0}, /* 0x2A */ {0, 0, 0}, -/* 0x2B */ {__jisx0213_pairdecmap_decmap+14, 0x44, 0x66}, +/* 0x2B */ {__jisx0213_pairdecmap+14, 0x44, 0x66}, /* 0x2C */ {0, 0, 0}, /* 0x2D */ {0, 0, 0}, /* 0x2E */ {0, 0, 0}, @@ -279,50 +279,50 @@ #define JISX0213_ENCPAIRS 46 struct pair_encodemap jisx0213_pairencmap[JISX0213_ENCPAIRS] = { - { 0x00e6, 0x0000, 0x295c }, - { 0x00e6, 0x0300, 0x2b44 }, - { 0x0254, 0x0000, 0x2b38 }, - { 0x0254, 0x0300, 0x2b48 }, - { 0x0254, 0x0301, 0x2b49 }, - { 0x0259, 0x0000, 0x2b30 }, - { 0x0259, 0x0300, 0x2b4c }, - { 0x0259, 0x0301, 0x2b4d }, - { 0x025a, 0x0000, 0x2b43 }, - { 0x025a, 0x0300, 0x2b4e }, - { 0x025a, 0x0301, 0x2b4f }, - { 0x028c, 0x0000, 0x2b37 }, - { 0x028c, 0x0300, 0x2b4a }, - { 0x028c, 0x0301, 0x2b4b }, - { 0x02e5, 0x0000, 0x2b60 }, - { 0x02e5, 0x02e9, 0x2b66 }, - { 0x02e9, 0x0000, 0x2b64 }, - { 0x02e9, 0x02e5, 0x2b65 }, - { 0x304b, 0x0000, 0x242b }, - { 0x304b, 0x309a, 0x2477 }, - { 0x304d, 0x0000, 0x242d }, - { 0x304d, 0x309a, 0x2478 }, - { 0x304f, 0x0000, 0x242f }, - { 0x304f, 0x309a, 0x2479 }, - { 0x3051, 0x0000, 0x2431 }, - { 0x3051, 0x309a, 0x247a }, - { 0x3053, 0x0000, 0x2433 }, - { 0x3053, 0x309a, 0x247b }, - { 0x30ab, 0x0000, 0x252b }, - { 0x30ab, 0x309a, 0x2577 }, - { 0x30ad, 0x0000, 0x252d }, - { 0x30ad, 0x309a, 0x2578 }, - { 0x30af, 0x0000, 0x252f }, - { 0x30af, 0x309a, 0x2579 }, - { 0x30b1, 0x0000, 0x2531 }, - { 0x30b1, 0x309a, 0x257a }, - { 0x30b3, 0x0000, 0x2533 }, - { 0x30b3, 0x309a, 0x257b }, - { 0x30bb, 0x0000, 0x253b }, - { 0x30bb, 0x309a, 0x257c }, - { 0x30c4, 0x0000, 0x2544 }, - { 0x30c4, 0x309a, 0x257d }, - { 0x30c8, 0x0000, 0x2548 }, - { 0x30c8, 0x309a, 0x257e }, - { 0x31f7, 0x0000, 0x2675 }, - { 0x31f7, 0x309a, 0x2678 }, + { 0x00e60000, 0x295c }, + { 0x00e60300, 0x2b44 }, + { 0x02540000, 0x2b38 }, + { 0x02540300, 0x2b48 }, + { 0x02540301, 0x2b49 }, + { 0x02590000, 0x2b30 }, + { 0x02590300, 0x2b4c }, + { 0x02590301, 0x2b4d }, + { 0x025a0000, 0x2b43 }, + { 0x025a0300, 0x2b4e }, + { 0x025a0301, 0x2b4f }, + { 0x028c0000, 0x2b37 }, + { 0x028c0300, 0x2b4a }, + { 0x028c0301, 0x2b4b }, + { 0x02e50000, 0x2b60 }, + { 0x02e502e9, 0x2b66 }, + { 0x02e90000, 0x2b64 }, + { 0x02e902e5, 0x2b65 }, + { 0x304b0000, 0x242b }, + { 0x304b309a, 0x2477 }, + { 0x304d0000, 0x242d }, + { 0x304d309a, 0x2478 }, + { 0x304f0000, 0x242f }, + { 0x304f309a, 0x2479 }, + { 0x30510000, 0x2431 }, + { 0x3051309a, 0x247a }, + { 0x30530000, 0x2433 }, + { 0x3053309a, 0x247b }, + { 0x30ab0000, 0x252b }, + { 0x30ab309a, 0x2577 }, + { 0x30ad0000, 0x252d }, + { 0x30ad309a, 0x2578 }, + { 0x30af0000, 0x252f }, + { 0x30af309a, 0x2579 }, + { 0x30b10000, 0x2531 }, + { 0x30b1309a, 0x257a }, + { 0x30b30000, 0x2533 }, + { 0x30b3309a, 0x257b }, + { 0x30bb0000, 0x253b }, + { 0x30bb309a, 0x257c }, + { 0x30c40000, 0x2544 }, + { 0x30c4309a, 0x257d }, + { 0x30c80000, 0x2548 }, + { 0x30c8309a, 0x257e }, + { 0x31f70000, 0x2675 }, + { 0x31f7309a, 0x2678 }, }; |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 08:17:37
|
perky 03/07/07 01:17:36 Modified: cjkcodecs Makefile Log: Add EUC-JISX0213 codec. Revision Changes Path 1.9 +2 -1 cjkcodecs/cjkcodecs/Makefile Index: Makefile =================================================================== RCS file: /cvsroot/koco/cjkcodecs/cjkcodecs/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Makefile 2 Jun 2003 08:07:40 -0000 1.8 +++ Makefile 7 Jul 2003 08:17:36 -0000 1.9 @@ -25,13 +25,14 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: Makefile,v 1.8 2003/06/02 08:07:40 perky Exp $ +# $Id: Makefile,v 1.9 2003/07/07 08:17:36 perky Exp $ # GENERIC_ENCODINGS= gb2312 gbk gb18030 hz \ big5 cp950 \ cp932 shift_jis euc_jp \ iso_2022_jp iso_2022_jp_1 iso_2022_jp_2 \ + iso_2022_jp_3 euc_jisx0213 shift_jisx0213 \ cp949 euc_kr johab iso_2022_kr \ utf_8 |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 08:17:37
|
perky 03/07/07 01:17:36 Modified: src cjkcommon.h codeccommon.h Added: src _euc_jisx0213.c Log: Add EUC-JISX0213 codec. Revision Changes Path 1.12 +2 -2 cjkcodecs/src/cjkcommon.h Index: cjkcommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/cjkcommon.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- cjkcommon.h 7 Jul 2003 04:46:40 -0000 1.11 +++ cjkcommon.h 7 Jul 2003 08:17:36 -0000 1.12 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: cjkcommon.h,v 1.11 2003/07/07 04:46:40 perky Exp $ + * $Id: cjkcommon.h,v 1.12 2003/07/07 08:17:36 perky Exp $ */ #ifndef _CJKCOMMON_H_ @@ -74,7 +74,7 @@ }; struct pair_encodemap { - ucs2_t body, modifier; + ucs4_t uniseq; DBCHAR code; }; 1.17 +138 -138 cjkcodecs/src/codeccommon.h Index: codeccommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/codeccommon.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- codeccommon.h 6 Jul 2003 10:10:31 -0000 1.16 +++ codeccommon.h 7 Jul 2003 08:17:36 -0000 1.17 @@ -1,138 +1,138 @@ -/* - * codeccommon.h: Common Codec Routines - * - * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * $Id: codeccommon.h,v 1.16 2003/07/06 10:10:31 perky Exp $ - */ - -#include "Python.h" -#include "multibytecodec.h" -#include "multibytecodec_compat.h" -#include "cjkcommon.h" - -#define ENCMAP(encoding) \ - const static encode_map *encoding##encmap; -#define DECMAP(encoding) \ - const static decode_map *encoding##decmap; - -#define ENCODER_INIT(encoding) \ - static int encoding##_encode_init( \ - MultibyteCodec_State *state) -#define ENCODER(encoding) \ - static int encoding##_encode( \ - MultibyteCodec_State *state, \ - const Py_UNICODE **inbuf, size_t inleft, \ - unsigned char **outbuf, size_t outleft, int flags) -#define ENCODER_RESET(encoding) \ - static int encoding##_encode_reset( \ - MultibyteCodec_State *state, \ - unsigned char **outbuf, size_t outleft) - -#define DECODER_INIT(encoding) \ - static int encoding##_decode_init( \ - MultibyteCodec_State *state) -#define DECODER(encoding) \ - static int encoding##_decode( \ - MultibyteCodec_State *state, \ - const unsigned char **inbuf, size_t inleft, \ - Py_UNICODE **outbuf, size_t outleft) -#define DECODER_RESET(encoding) \ - static int encoding##_decode_reset( \ - MultibyteCodec_State *state) - -#if Py_UNICODE_SIZE == 4 -#define UCS4INVALID(code) \ - if ((code) > 0xFFFF) \ - return 1; -#else -#define UCS4INVALID(code) \ - if (0) ; -#endif - -#define NEXT_IN(i) \ - (*inbuf) += (i); \ - (inleft) -= (i); -#define NEXT_OUT(o) \ - (*outbuf) += (o); \ - (outleft) -= (o); -#define NEXT(i, o) NEXT_IN(i) NEXT_OUT(o) - -#define RESERVE_INBUF(n) \ - if (inleft < (n)) \ - return MBERR_TOOFEW; -#define RESERVE_OUTBUF(n) \ - if (outleft < (n)) \ - return MBERR_TOOSMALL; - -#define WRITE1(c1) \ - RESERVE_OUTBUF(1) \ - (*outbuf)[0] = (unsigned char)(c1); -#define WRITE2(c1, c2) \ - RESERVE_OUTBUF(2) \ - (*outbuf)[0] = (unsigned char)(c1); \ - (*outbuf)[1] = (unsigned char)(c2); -#define WRITE3(c1, c2, c3) \ - RESERVE_OUTBUF(3) \ - (*outbuf)[0] = (unsigned char)(c1); \ - (*outbuf)[1] = (unsigned char)(c2); \ - (*outbuf)[2] = (unsigned char)(c3); -#define WRITE4(c1, c2, c3, c4) \ - RESERVE_OUTBUF(4) \ - (*outbuf)[0] = (unsigned char)(c1); \ - (*outbuf)[1] = (unsigned char)(c2); \ - (*outbuf)[2] = (unsigned char)(c3); \ - (*outbuf)[3] = (unsigned char)(c4); - -#if Py_UNICODE_SIZE == 2 -# define PUTUCS4(c) \ - RESERVE_OUTBUF(2) \ - (*outbuf)[0] = 0xd800 + (((c) - 0x10000) >> 10); \ - (*outbuf)[1] = 0xdc00 + (((c) - 0x10000) & 0x3ff); \ - NEXT_OUT(2) -#else -# define PUTUCS4(c) \ - RESERVE_OUTBUF(1) \ - **outbuf = (Py_UNICODE)(c); \ - NEXT_OUT(1) -#endif - -#define _TRYMAP_ENC(m, assi, val) \ - if ((m)->map != NULL && (val) >= (m)->bottom && \ - (val)<= (m)->top && ((assi) = (m)->map[(val) - \ - (m)->bottom]) != NOCHAR) -#define TRYMAP_ENC(charset, assi, uni) \ - _TRYMAP_ENC(&charset##encmap[uni >> 8], assi, uni & 0xff) -#define _TRYMAP_DEC(m, assi, val) \ - if ((m)->map != NULL && (val) >= (m)->bottom && \ - (val)<= (m)->top && ((assi) = (m)->map[(val) - \ - (m)->bottom]) != UNIINV) -#define TRYMAP_DEC(charset, assi, c1, c2) \ - _TRYMAP_DEC(&charset##decmap[c1], assi, c2) - -/* - * ex: ts=8 sts=4 et - */ +/* + * codeccommon.h: Common Codec Routines + * + * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * $Id: codeccommon.h,v 1.17 2003/07/07 08:17:36 perky Exp $ + */ + +#include "Python.h" +#include "multibytecodec.h" +#include "multibytecodec_compat.h" +#include "cjkcommon.h" + +#define ENCMAP(encoding) \ + const static encode_map *encoding##encmap; +#define DECMAP(encoding) \ + const static decode_map *encoding##decmap; + +#define ENCODER_INIT(encoding) \ + static int encoding##_encode_init( \ + MultibyteCodec_State *state) +#define ENCODER(encoding) \ + static int encoding##_encode( \ + MultibyteCodec_State *state, \ + const Py_UNICODE **inbuf, size_t inleft, \ + unsigned char **outbuf, size_t outleft, int flags) +#define ENCODER_RESET(encoding) \ + static int encoding##_encode_reset( \ + MultibyteCodec_State *state, \ + unsigned char **outbuf, size_t outleft) + +#define DECODER_INIT(encoding) \ + static int encoding##_decode_init( \ + MultibyteCodec_State *state) +#define DECODER(encoding) \ + static int encoding##_decode( \ + MultibyteCodec_State *state, \ + const unsigned char **inbuf, size_t inleft, \ + Py_UNICODE **outbuf, size_t outleft) +#define DECODER_RESET(encoding) \ + static int encoding##_decode_reset( \ + MultibyteCodec_State *state) + +#if Py_UNICODE_SIZE == 4 +#define UCS4INVALID(code) \ + if ((code) > 0xFFFF) \ + return 1; +#else +#define UCS4INVALID(code) \ + if (0) ; +#endif + +#define NEXT_IN(i) \ + (*inbuf) += (i); \ + (inleft) -= (i); +#define NEXT_OUT(o) \ + (*outbuf) += (o); \ + (outleft) -= (o); +#define NEXT(i, o) NEXT_IN(i) NEXT_OUT(o) + +#define RESERVE_INBUF(n) \ + if (inleft < (n)) \ + return MBERR_TOOFEW; +#define RESERVE_OUTBUF(n) \ + if (outleft < (n)) \ + return MBERR_TOOSMALL; + +#define WRITE1(c1) \ + RESERVE_OUTBUF(1) \ + (*outbuf)[0] = (c1); +#define WRITE2(c1, c2) \ + RESERVE_OUTBUF(2) \ + (*outbuf)[0] = (c1); \ + (*outbuf)[1] = (c2); +#define WRITE3(c1, c2, c3) \ + RESERVE_OUTBUF(3) \ + (*outbuf)[0] = (c1); \ + (*outbuf)[1] = (c2); \ + (*outbuf)[2] = (c3); +#define WRITE4(c1, c2, c3, c4) \ + RESERVE_OUTBUF(4) \ + (*outbuf)[0] = (c1); \ + (*outbuf)[1] = (c2); \ + (*outbuf)[2] = (c3); \ + (*outbuf)[3] = (c4); + +#if Py_UNICODE_SIZE == 2 +# define PUTUCS4(c) \ + RESERVE_OUTBUF(2) \ + (*outbuf)[0] = 0xd800 + (((c) - 0x10000) >> 10); \ + (*outbuf)[1] = 0xdc00 + (((c) - 0x10000) & 0x3ff); \ + NEXT_OUT(2) +#else +# define PUTUCS4(c) \ + RESERVE_OUTBUF(1) \ + **outbuf = (Py_UNICODE)(c); \ + NEXT_OUT(1) +#endif + +#define _TRYMAP_ENC(m, assi, val) \ + if ((m)->map != NULL && (val) >= (m)->bottom && \ + (val)<= (m)->top && ((assi) = (m)->map[(val) - \ + (m)->bottom]) != NOCHAR) +#define TRYMAP_ENC(charset, assi, uni) \ + _TRYMAP_ENC(&charset##encmap[uni >> 8], assi, uni & 0xff) +#define _TRYMAP_DEC(m, assi, val) \ + if ((m)->map != NULL && (val) >= (m)->bottom && \ + (val)<= (m)->top && ((assi) = (m)->map[(val) - \ + (m)->bottom]) != UNIINV) +#define TRYMAP_DEC(charset, assi, c1, c2) \ + _TRYMAP_DEC(&charset##decmap[c1], assi, c2) + +/* + * ex: ts=8 sts=4 et + */ 1.1 cjkcodecs/src/_euc_jisx0213.c Index: _euc_jisx0213.c =================================================================== /* * _euc_jisx0213.c: the EUC-JISX0213 codec * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * $Id: _euc_jisx0213.c,v 1.1 2003/07/07 08:17:36 perky Exp $ */ #include "codeccommon.h" #include "maps/map_jisx0213_pairs.h" ENCMAP(jisxcommon) DECMAP(jisx0208) DECMAP(jisx0212) ENCMAP(jisx0213_bmp) DECMAP(jisx0213_1_bmp) DECMAP(jisx0213_2_bmp) ENCMAP(jisx0213_emp) DECMAP(jisx0213_1_emp) DECMAP(jisx0213_2_emp) #define EMPBASE 0x20000 static DBCHAR find_pairencmap(ucs2_t body, ucs2_t modifier, struct pair_encodemap *haystack, int haystacksize) { int pos, min, max; ucs4_t value = body << 16 | modifier; min = 0; max = haystacksize; for (pos = haystacksize >> 1; min != max; pos = (min + max) >> 1) if (value < haystack[pos].uniseq) { if (max == pos) break; else max = pos; } else if (value > haystack[pos].uniseq) { if (min == pos) break; else min = pos; } else break; if (value == haystack[pos].uniseq) return haystack[pos].code; else return DBCINV; } ENCODER(euc_jisx0213) { while (inleft > 0) { ucs4_t c = **inbuf; DBCHAR code; int insize = 1; if (c < 0x80) { RESERVE_OUTBUF(1) **outbuf = c; NEXT(1, 1) continue; } #if Py_UNICODE_SIZE == 2 if (c >> 10 == 0xd800 >> 10) { /* high surrogate */ RESERVE_INBUF(2) if ((*inbuf)[1] >> 10 == 0xdc00 >> 10) { /* low surrogate */ c = 0x10000 + ((c - 0xd800) << 10) + ((ucs4_t)((*inbuf)[1]) - 0xdc00); } } #endif if (c <= 0xFFFF) { /* try 0213 first because it might have MULTIC */ TRYMAP_ENC(jisx0213_bmp, code, c) { if (code == MULTIC) { if (inleft < 2) { if (flags & MBENC_FLUSH) { code = find_pairencmap(c, 0, jisx0213_pairencmap, JISX0213_ENCPAIRS); if (code == DBCINV) return 1; } else return MBERR_TOOFEW; } else { code = find_pairencmap(c, (*inbuf)[1], jisx0213_pairencmap, JISX0213_ENCPAIRS); if (code == DBCINV) { code = find_pairencmap(c, 0, jisx0213_pairencmap, JISX0213_ENCPAIRS); if (code == DBCINV) return 1; } else insize = 2; } } } else TRYMAP_ENC(jisxcommon, code, c); else if (c >= 0xff61 && c <= 0xff9f) { /* JIS X 0201 half-width katakana */ RESERVE_OUTBUF(2) (*outbuf)[0] = 0x8e; (*outbuf)[1] = (unsigned char)(c - 0xfec0); NEXT(1, 2) continue; } else if (c == 0xff3c) /* F/W REVERSE SOLIDUS (see NOTES.euc-jisx0213) */ code = 0x2140; else return 1; } else TRYMAP_ENC(jisx0213_emp, code, c & 0xffff); else return 1; if (code & 0x8000) { /* Codeset 2 */ RESERVE_OUTBUF(3) (*outbuf)[0] = 0x8f; (*outbuf)[1] = code >> 8; (*outbuf)[2] = (code & 0xFF) | 0x80; NEXT(insize, 3) } else { /* Codeset 1 */ RESERVE_OUTBUF(2) (*outbuf)[0] = (code >> 8) | 0x80; (*outbuf)[1] = (code & 0xFF) | 0x80; NEXT(insize, 2) } } return 0; } DECODER(euc_jisx0213) { while (inleft > 0) { unsigned char c = **inbuf; ucs4_t code; RESERVE_OUTBUF(1) if (c < 0x80) { **outbuf = c; NEXT(1, 1) continue; } if (c == 0x8e) { /* JIS X 0201 half-width katakana */ unsigned char c2; RESERVE_INBUF(2) c2 = (*inbuf)[1]; if (c2 >= 0xa1 && c2 <= 0xdf) { **outbuf = 0xfec0 + c2; NEXT(2, 1) } else return 2; } else if (c == 0x8f) { unsigned char c2, c3; RESERVE_INBUF(3) c2 = (*inbuf)[1] ^ 0x80; c3 = (*inbuf)[2] ^ 0x80; /* JIS X 0213 Plane 2 or JIS X 0212 (see NOTES.euc-jisx0213) */ TRYMAP_DEC(jisx0213_2_bmp, **outbuf, c2, c3) ; else TRYMAP_DEC(jisx0213_2_emp, code, c2, c3) { PUTUCS4(EMPBASE | code) NEXT_IN(3) continue; } else TRYMAP_DEC(jisx0212, **outbuf, c2, c3) ; else return 3; NEXT(3, 1) } else { unsigned char c2; RESERVE_INBUF(2) c ^= 0x80; c2 = (*inbuf)[1] ^ 0x80; /* JIS X 0213 Plane 1 */ if (c == 0xa1 && c2 == 0xc0) **outbuf = 0xff3c; else TRYMAP_DEC(jisx0208, **outbuf, c, c2); else TRYMAP_DEC(jisx0213_1_bmp, **outbuf, c, c2); else TRYMAP_DEC(jisx0213_1_emp, code, c, c2) { PUTUCS4(EMPBASE | code) NEXT_IN(2) continue; } else TRYMAP_DEC(jisx0213_pair, code, c, c2) { WRITE2(code >> 16, code & 0xffff) NEXT(2, 2) continue; } else return 2; NEXT(2, 1) } } return 0; } #include "codecentry.h" BEGIN_CODEC_REGISTRY(euc_jisx0213) MAPOPEN(ja_JP) IMPORTMAP_ENC(jisxcommon) IMPORTMAP_DEC(jisx0208) IMPORTMAP_DEC(jisx0212) IMPORTMAP_ENC(jisx0213_bmp) IMPORTMAP_DEC(jisx0213_1_bmp) IMPORTMAP_DEC(jisx0213_2_bmp) IMPORTMAP_ENC(jisx0213_emp) IMPORTMAP_DEC(jisx0213_1_emp) IMPORTMAP_DEC(jisx0213_2_emp) MAPCLOSE() END_CODEC_REGISTRY(euc_jisx0213) /* * ex: ts=8 sts=4 et */ |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 08:17:37
|
perky 03/07/07 01:17:36 Modified: . CHANGES setup.py Log: Add EUC-JISX0213 codec. Revision Changes Path 1.10 +2 -0 cjkcodecs/CHANGES Index: CHANGES =================================================================== RCS file: /cvsroot/koco/cjkcodecs/CHANGES,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- CHANGES 6 Jul 2003 10:30:26 -0000 1.9 +++ CHANGES 7 Jul 2003 08:17:36 -0000 1.10 @@ -1,5 +1,7 @@ Changes with CJKCodecs 1.0 + *) EUC-JISX0213 codec is added. + *) Changed a few characters of a big5 codepoint mapping to cp950's rather than 0xfffd. (documented on NOTES.big5) 1.25 +3 -2 cjkcodecs/setup.py Index: setup.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/setup.py,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- setup.py 7 Jul 2003 04:45:34 -0000 1.24 +++ setup.py 7 Jul 2003 08:17:36 -0000 1.25 @@ -27,7 +27,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: setup.py,v 1.24 2003/07/07 04:45:34 perky Exp $ +# $Id: setup.py,v 1.25 2003/07/07 08:17:36 perky Exp $ # import sys @@ -37,7 +37,8 @@ LIBDIRS = [] extensions = [] encodings = { -'ja_JP': ['shift_jis', 'cp932', 'euc_jp', 'iso_2022_jp', 'iso_2022_jp_1'], +'ja_JP': ['shift_jis', 'cp932', 'euc_jp', 'iso_2022_jp', 'iso_2022_jp_1', + 'euc_jisx0213'], 'ko_KR': ['euc_kr', 'cp949', 'johab', 'iso_2022_kr'], 'zh_CN': ['gb2312', 'gbk', 'gb18030', 'hz'], 'zh_TW': ['big5', 'cp950'], |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 08:13:50
|
perky 03/07/07 01:13:49 Modified: tools genmap_japanese.py Log: Fix wrong naming Revision Changes Path 1.9 +4 -5 cjkcodecs/tools/genmap_japanese.py Index: genmap_japanese.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_japanese.py,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- genmap_japanese.py 7 Jul 2003 04:47:24 -0000 1.8 +++ genmap_japanese.py 7 Jul 2003 08:13:49 -0000 1.9 @@ -26,7 +26,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_japanese.py,v 1.8 2003/07/07 04:47:24 perky Exp $ +# $Id: genmap_japanese.py,v 1.9 2003/07/07 08:13:49 perky Exp $ # from genmap_support import * @@ -276,9 +276,9 @@ print "Generating JIS X 0213 unicode-pair decode map..." codebunch =[] -genmap_decode(codebunch, "jisx0213_pairdecmap", JISX0213_C1, JISX0213_C2, +genmap_decode(codebunch, "jisx0213_pair", JISX0213_C1, JISX0213_C2, jisx0213pairdecmap, wide=1) -print_decmap(omap, codebunch, "jisx0213_pairdecmap", +print_decmap(omap, codebunch, "jisx0213_pair", jisx0213pairdecmap, wide=1) print "Generating JIS X 0213 unicode-pair encode map..." @@ -287,8 +287,7 @@ print >> omap, "struct pair_encodemap jisx0213_pairencmap" \ "[JISX0213_ENCPAIRS] = {" for body, modifier, jis in jisx0213pairencmap: - print >> omap, " { 0x%04x, 0x%04x, 0x%04x }," % ( - body, modifier, jis) + print >> omap, " { 0x%04x%04x, 0x%04x }," % (body, modifier, jis) print >> omap, "};" print "\nDone!" |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 06:08:35
|
perky 03/07/06 23:08:34 Added: . NOTES.euc-jisx0213 Log: Add euc-jisx0213 implementation note. Revision Changes Path 1.1 cjkcodecs/NOTES.euc-jisx0213 Index: NOTES.euc-jisx0213 =================================================================== - euc-jisx0213 codec maps JIS X 0213 Plane 1 code 0x2140 into unicode U+FF3C instead of U+005C as on unicode.org's mapping. Because euc-jisx0213 has REVERSE SOLIDUS on 0x5c already and A140 is shown as a full width character, mapping to U+FF3C can make more sense. - euc-jisx0213 codec is enabled to decode JIS X 0212 codes on codeset 2. Because JIS X 0212 and JIS X 0213 Plane 2 don't have overlapped by each other, it doesn't bother standard conformations (and JIS X 0213 Plane 2 is intended to use so.) On encoding sessions, the codec will try to encode kanji characters in this order: JIS X 0213 Plane 1 -> JIS X 0213 Plane 2 -> JIS X 0212 |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 05:15:39
|
perky 03/07/06 22:15:37 Modified: cjkcodecs aliases.py Log: Add aliases for jisx0213 encodings. Revision Changes Path 1.9 +17 -1 cjkcodecs/cjkcodecs/aliases.py Index: aliases.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/cjkcodecs/aliases.py,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- aliases.py 2 Jun 2003 08:07:42 -0000 1.8 +++ aliases.py 7 Jul 2003 05:15:37 -0000 1.9 @@ -26,7 +26,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: aliases.py,v 1.8 2003/06/02 08:07:42 perky Exp $ +# $Id: aliases.py,v 1.9 2003/07/07 05:15:37 perky Exp $ # from encodings.aliases import aliases @@ -54,6 +54,11 @@ 'cp950' : 'cjkcodecs.cp950', 'ms950' : 'cjkcodecs.cp950', + # euc_jisx0213 codec + 'jisx0213' : 'cjkcodecs.euc_jisx0213', + 'eucjisx0213' : 'cjkcodecs.euc_jisx0213', + 'euc_jisx0213' : 'cjkcodecs.euc_jisx0213', + # euc_jp codec 'eucjp' : 'cjkcodecs.euc_jp', 'euc_jp' : 'cjkcodecs.euc_jp', @@ -111,6 +116,11 @@ 'iso2022_jp_2' : 'cjkcodecs.iso_2022_jp_2', 'iso2022jp_2' : 'cjkcodecs.iso_2022_jp_2', + # iso_3022_jp_3 codec + 'iso_3022_jp_3' : 'cjkcodecs.iso_3022_jp_3', + 'iso2022_jp_3' : 'cjkcodecs.iso_3022_jp_3', + 'iso2022jp_3' : 'cjkcodecs.iso_3022_jp_3', + # iso_2022_kr codec 'iso_2022_kr' : 'cjkcodecs.iso_2022_kr', 'iso2022_kr' : 'cjkcodecs.iso_2022_kr', @@ -127,6 +137,12 @@ 'shift_jis' : 'cjkcodecs.shift_jis', 'sjis' : 'cjkcodecs.shift_jis', 's_jis' : 'cjkcodecs.shift_jis', + + # shift_jisx0213 codec + 'shiftjisx0213' : 'cjkcodecs.shift_jisx0213', + 'shift_jisx0213' : 'cjkcodecs.shift_jisx0213', + 'sjisx0213' : 'cjkcodecs.shift_jisx0213', + 's_jisx0213' : 'cjkcodecs.shift_jisx0213', # utf_8 codec #'utf8' : 'cjkcodecs.utf8', |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 05:02:22
|
perky 03/07/06 22:02:21 Added: cjkcodecs euc_jisx0213.py shift_jisx0213.py iso_2022_jp_3.py Log: Add JIS X 0213 codecs. Revision Changes Path 1.1 cjkcodecs/cjkcodecs/euc_jisx0213.py Index: euc_jisx0213.py =================================================================== # ACHTUNG: This file is generated automatically. Please do not edit. # # euc_jisx0213.py: Python Unicode Codec for EUC_JISX0213 # # Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # $Id: euc_jisx0213.py,v 1.1 2003/07/07 05:02:21 perky Exp $ # from cjkcodecs._euc_jisx0213 import codec import codecs class Codec(codecs.Codec): encode = codec.encode decode = codec.decode class StreamReader(Codec, codecs.StreamReader): def __init__(self, stream, errors='strict'): codecs.StreamReader.__init__(self, stream, errors) __codec = codec.StreamReader(stream, errors) self.read = __codec.read self.readline = __codec.readline self.readlines = __codec.readlines self.reset = __codec.reset class StreamWriter(Codec, codecs.StreamWriter): def __init__(self, stream, errors='strict'): codecs.StreamWriter.__init__(self, stream, errors) __codec = codec.StreamWriter(stream, errors) self.write = __codec.write self.writelines = __codec.writelines self.reset = __codec.reset def getregentry(): return (Codec().encode,Codec().decode,StreamReader,StreamWriter) # ex: ts=8 sts=4 et 1.1 cjkcodecs/cjkcodecs/shift_jisx0213.py Index: shift_jisx0213.py =================================================================== # ACHTUNG: This file is generated automatically. Please do not edit. # # shift_jisx0213.py: Python Unicode Codec for SHIFT_JISX0213 # # Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # $Id: shift_jisx0213.py,v 1.1 2003/07/07 05:02:21 perky Exp $ # from cjkcodecs._shift_jisx0213 import codec import codecs class Codec(codecs.Codec): encode = codec.encode decode = codec.decode class StreamReader(Codec, codecs.StreamReader): def __init__(self, stream, errors='strict'): codecs.StreamReader.__init__(self, stream, errors) __codec = codec.StreamReader(stream, errors) self.read = __codec.read self.readline = __codec.readline self.readlines = __codec.readlines self.reset = __codec.reset class StreamWriter(Codec, codecs.StreamWriter): def __init__(self, stream, errors='strict'): codecs.StreamWriter.__init__(self, stream, errors) __codec = codec.StreamWriter(stream, errors) self.write = __codec.write self.writelines = __codec.writelines self.reset = __codec.reset def getregentry(): return (Codec().encode,Codec().decode,StreamReader,StreamWriter) # ex: ts=8 sts=4 et 1.1 cjkcodecs/cjkcodecs/iso_2022_jp_3.py Index: iso_2022_jp_3.py =================================================================== # ACHTUNG: This file is generated automatically. Please do not edit. # # iso_2022_jp_3.py: Python Unicode Codec for ISO_2022_JP_3 # # Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # $Id: iso_2022_jp_3.py,v 1.1 2003/07/07 05:02:21 perky Exp $ # from cjkcodecs._iso_2022_jp_3 import codec import codecs class Codec(codecs.Codec): encode = codec.encode decode = codec.decode class StreamReader(Codec, codecs.StreamReader): def __init__(self, stream, errors='strict'): codecs.StreamReader.__init__(self, stream, errors) __codec = codec.StreamReader(stream, errors) self.read = __codec.read self.readline = __codec.readline self.readlines = __codec.readlines self.reset = __codec.reset class StreamWriter(Codec, codecs.StreamWriter): def __init__(self, stream, errors='strict'): codecs.StreamWriter.__init__(self, stream, errors) __codec = codec.StreamWriter(stream, errors) self.write = __codec.write self.writelines = __codec.writelines self.reset = __codec.reset def getregentry(): return (Codec().encode,Codec().decode,StreamReader,StreamWriter) # ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 04:47:25
|
perky 03/07/06 21:47:24 Modified: tools genmap_japanese.py genmap_support.py Log: Add jisx0213 generators Revision Changes Path 1.8 +157 -0 cjkcodecs/tools/genmap_japanese.py Index: genmap_japanese.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_japanese.py,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- genmap_japanese.py 10 Jun 2003 11:12:12 -0000 1.7 +++ genmap_japanese.py 7 Jul 2003 04:47:24 -0000 1.8 @@ -26,7 +26,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_japanese.py,v 1.7 2003/06/10 11:12:12 perky Exp $ +# $Id: genmap_japanese.py,v 1.8 2003/07/07 04:47:24 perky Exp $ # from genmap_support import * @@ -35,6 +35,8 @@ JISX0208_C2 = (0x21, 0x7e) JISX0212_C1 = (0x22, 0x6d) JISX0212_C2 = (0x21, 0x7e) +JISX0213_C1 = (0x21, 0x7e) +JISX0213_C2 = (0x21, 0x7e) CP932P0_C1 = (0x81, 0x81) # patches between shift-jis and cp932 CP932P0_C2 = (0x5f, 0xca) CP932P1_C1 = (0x87, 0x87) # CP932 P1 @@ -60,12 +62,66 @@ print "=>> Please download mapping table from http://www.unicode." \ "org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT" raise SystemExit +try: + jisx0213file = open('jisx0213-2000-std.txt') +except IOError: + print "=>> Please download mapping table from http://wakaba-web." \ + "hp.infoseek.co.jp/table/jisx0213-2000-std.txt" + raise SystemExit + +def loadmap_jisx0213(fo): + decmap3, decmap4 = {}, {} # maps to BMP for level 3 and 4 + decmap3_2, decmap4_2 = {}, {} # maps to U+2xxxx for level 3 and 4 + decmap3_pair = {} # maps to BMP-pair for level 3 + for line in fo: + line = line.split('#', 1)[0].strip() + if not line or len(line.split()) < 2: continue + + row = line.split() + loc = eval('0x' + row[0][2:]) + level = eval(row[0][0]) + m = None + if len(row[1].split('+')) == 2: # single unicode + uni = eval('0x' + row[1][2:]) + if level == 3: + if uni < 0x10000: + m = decmap3 + elif 0x20000 <= uni < 0x30000: + uni -= 0x20000 + m = decmap3_2 + elif level == 4: + if uni < 0x10000: + m = decmap4 + elif 0x20000 <= uni < 0x30000: + uni -= 0x20000 + m = decmap4_2 + m.setdefault((loc >> 8), {}) + m[(loc >> 8)][(loc & 0xff)] = uni + else: # pair + uniprefix = eval('0x' + row[1][2:6]) # body + uni = eval('0x' + row[1][7:11]) # modifier + if level != 3: + raise ValueError, "invalid map" + decmap3_pair.setdefault(uniprefix, {}) + m = decmap3_pair[uniprefix] + + if m is None: + raise ValueError, "invalid map" + m.setdefault((loc >> 8), {}) + m[(loc >> 8)][(loc & 0xff)] = uni + + return decmap3, decmap4, decmap3_2, decmap4_2, decmap3_pair print "Loading Mapping File..." sjisdecmap = loadmap(jisx0208file, natcol=0, unicol=2) jisx0208decmap = loadmap(jisx0208file, natcol=1, unicol=2) jisx0212decmap = loadmap(jisx0212file) cp932decmap = loadmap(cp932file) +jis3decmap, jis4decmap, jis3_2_decmap, jis4_2_decmap, jis3_pairdecmap \ += loadmap_jisx0213(jisx0213file) +if jis3decmap[0x21][0x24] != 0xff0c: + print "Please adjust your JIS X 0213 map using jisx0213-2000-std.txt.diff" + raise SystemExit sjisencmap, cp932encmap = {}, {} jisx0208_0212encmap = {} @@ -86,6 +142,15 @@ if not cp932encmap[c1]: del cp932encmap[c1] +jisx0213pairdecmap = {} +jisx0213pairencmap = [] +for unibody, m1 in jis3_pairdecmap.iteritems(): + for c1, m2 in m1.iteritems(): + for c2, modifier in m2.iteritems(): + jisx0213pairencmap.append((unibody, modifier, c1 << 8 | c2)) + jisx0213pairdecmap.setdefault(c1, {}) + jisx0213pairdecmap[c1][c2] = unibody << 16 | modifier + # Twinmap for both of JIS X 0208 (MSB unset) and JIS X 0212 (MSB set) for c1, m in jisx0208decmap.items(): for c2, code in m.items(): @@ -98,6 +163,43 @@ print "OOPS!!!", (code) jisx0208_0212encmap[code >> 8][code & 0xff] = 0x8000 | c1 << 8 | c2 +jisx0213bmpencmap = {} +for c1, m in jis3decmap.items(): + for c2, code in m.items(): + if jisx0208decmap.has_key(c1) and jisx0208decmap[c1].has_key(c2): + if jis3_pairdecmap.has_key(code): + jisx0213bmpencmap[code >> 8][code & 0xff] = (0,) # pair + jisx0213pairencmap.append((code, 0, c1 << 8 | c2)) + elif jisx0208decmap[c1][c2] == code: + del jis3decmap[c1][c2] + if not jis3decmap[c1]: + del jis3decmap[c1] + else: + raise ValueError, "Difference between JIS X 0208 and " \ + "JIS X 0213 Plane 1 is found." + else: + jisx0213bmpencmap.setdefault(code >> 8, {}) + if not jis3_pairdecmap.has_key(code): + jisx0213bmpencmap[code >> 8][code & 0xff] = c1 << 8 | c2 + else: + jisx0213bmpencmap[code >> 8][code & 0xff] = (0,) # pair + jisx0213pairencmap.append((code, 0, c1 << 8 | c2)) + +for c1, m in jis4decmap.iteritems(): + for c2, code in m.iteritems(): + jisx0213bmpencmap.setdefault(code >> 8, {}) + jisx0213bmpencmap[code >> 8][code & 0xff] = 0x8000 | c1 << 8 | c2 + +jisx0213empencmap = {} +for c1, m in jis3_2_decmap.iteritems(): + for c2, code in m.iteritems(): + jisx0213empencmap.setdefault(code >> 8, {}) + jisx0213empencmap[code >> 8][code & 0xff] = c1 << 8 | c2 +for c1, m in jis4_2_decmap.iteritems(): + for c2, code in m.iteritems(): + jisx0213empencmap.setdefault(code >> 8, {}) + jisx0213empencmap[code >> 8][code & 0xff] = 0x8000 | c1 << 8 | c2 + omap = open("map_jisx0208.h", "w") printcopyright(omap) @@ -133,6 +235,61 @@ codebunch =[] genmap_encode(codebunch, "cp932ext", cp932encmap) print_encmap(omap, codebunch, "cp932ext", cp932encmap) + +omap = open("map_jisx0213.h", "w") +printcopyright(omap) + +print "Generating JIS X 0213 Plane 1 BMP decode map..." +codebunch =[] +genmap_decode(codebunch, "jisx0213_1_bmp", JISX0213_C1, JISX0213_C2, jis3decmap) +print_decmap(omap, codebunch, "jisx0213_1_bmp", jis3decmap) + +print "Generating JIS X 0213 Plane 2 BMP decode map..." +codebunch =[] +genmap_decode(codebunch, "jisx0213_2_bmp", JISX0213_C1, JISX0213_C2, jis4decmap) +print_decmap(omap, codebunch, "jisx0213_2_bmp", jis4decmap) + +print "Generating JIS X 0213 BMP encode map..." +codebunch =[] +genmap_encode(codebunch, "jisx0213_bmp", jisx0213bmpencmap) +print_encmap(omap, codebunch, "jisx0213_bmp", jisx0213bmpencmap) + +print "Generating JIS X 0213 Plane 1 EMP decode map..." +codebunch =[] +genmap_decode(codebunch, "jisx0213_1_emp", + JISX0213_C1, JISX0213_C2, jis3_2_decmap) +print_decmap(omap, codebunch, "jisx0213_1_emp", jis3_2_decmap) + +print "Generating JIS X 0213 Plane 2 EMP decode map..." +codebunch =[] +genmap_decode(codebunch, "jisx0213_2_emp", + JISX0213_C1, JISX0213_C2, jis4_2_decmap) +print_decmap(omap, codebunch, "jisx0213_2_emp", jis4_2_decmap) + +print "Generating JIS X 0213 EMP encode map..." +codebunch =[] +genmap_encode(codebunch, "jisx0213_emp", jisx0213empencmap) +print_encmap(omap, codebunch, "jisx0213_emp", jisx0213empencmap) + +omap = open("map_jisx0213_pairs.h", "w") +printcopyright(omap) + +print "Generating JIS X 0213 unicode-pair decode map..." +codebunch =[] +genmap_decode(codebunch, "jisx0213_pairdecmap", JISX0213_C1, JISX0213_C2, + jisx0213pairdecmap, wide=1) +print_decmap(omap, codebunch, "jisx0213_pairdecmap", + jisx0213pairdecmap, wide=1) + +print "Generating JIS X 0213 unicode-pair encode map..." +jisx0213pairencmap.sort() +print >> omap, "#define JISX0213_ENCPAIRS %d" % len(jisx0213pairencmap) +print >> omap, "struct pair_encodemap jisx0213_pairencmap" \ + "[JISX0213_ENCPAIRS] = {" +for body, modifier, jis in jisx0213pairencmap: + print >> omap, " { 0x%04x, 0x%04x, 0x%04x }," % ( + body, modifier, jis) +print >> omap, "};" print "\nDone!" # ex: ts=8 sts=4 et 1.10 +37 -13 cjkcodecs/tools/genmap_support.py Index: genmap_support.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_support.py,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- genmap_support.py 6 Jul 2003 23:19:26 -0000 1.9 +++ genmap_support.py 7 Jul 2003 04:47:24 -0000 1.10 @@ -26,14 +26,14 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_support.py,v 1.9 2003/07/06 23:19:26 perky Exp $ +# $Id: genmap_support.py,v 1.10 2003/07/07 04:47:24 perky Exp $ # import re COPYRIGHT_HEADER = """\ /* - * $Id: genmap_support.py,v 1.9 2003/07/06 23:19:26 perky Exp $ + * $Id: genmap_support.py,v 1.10 2003/07/07 04:47:24 perky Exp $ */ """ @@ -56,10 +56,14 @@ c2map['midx'] = len(codebunch) for v in range(rc2values[0], rc2values[-1] + 1): - if c2map.has_key(v): + if not c2map.has_key(v): + codebunch.append('NOCHAR,') + elif isinstance(c2map[v], int): codebunch.append('0x%04x,' % c2map[v]) + elif isinstance(c2map[v], tuple): + codebunch.append('MULTIC,') else: - codebunch.append('NOCHAR,') + raise ValueError def print_encmap(fo, codebunch, fmapprefix, fmap, f2map={}, f2mapprefix=''): print >> fo, ("static const DBCHAR __%s_encmap[%d] = {" % ( @@ -89,7 +93,8 @@ print >> fo, "};" print >> fo -def genmap_decode(codebunch, prefix, c1range, c2range, dmap, onlymask=()): +def genmap_decode(codebunch, prefix, c1range, c2range, + dmap, onlymask=(), wide=0): c2width = c2range[1] - c2range[0] + 1 c2values = range(c2range[0], c2range[1] + 1) @@ -108,22 +113,41 @@ for v in range(rc2values[0], rc2values[-1] + 1): if c2map.has_key(v): - codebunch.append('0x%04x,' % c2map[v]) + if not wide: + codebunch.append('0x%04x,' % c2map[v]) + else: + codebunch.append('0x%08x,' % c2map[v]) else: - codebunch.append('UNIINV,') - -def print_decmap(fo, codebunch, fmapprefix, fmap, f2map={}, f2mapprefix=''): - print >> fo, ("static const ucs2_t __%s_decmap[%d] = {" % ( + if not wide: + codebunch.append('UNIINV,') + else: + codebunch.append(' UNIINV,') + +def print_decmap(fo, codebunch, fmapprefix, fmap, f2map={}, + f2mapprefix='', wide=0): + if not wide: + print >> fo, ("static const ucs2_t __%s_decmap[%d] = {" % ( fmapprefix, len(codebunch))) + width = 8 + else: + print >> fo, ("static const ucs4_t __%s_decmap[%d] = {" % ( + fmapprefix, len(codebunch))) + width = 4 i = 0 while i < len(codebunch): - dp = codebunch[i:i+8] - i += 8 + dp = codebunch[i:i+width] + i += width print >> fo, ' ', ' '.join(dp) print >> fo, "};" print >> fo - print >> fo, "static const struct dbcs_index %s_decmap[256] = {" % (fmapprefix) + if not wide: + print >> fo, "static const struct dbcs_index %s_decmap[256] = {" % ( + fmapprefix) + else: + print >> fo, "static const struct widedbcs_index %s_decmap[256] = {" % ( + fmapprefix) + for i in range(256): if fmap.has_key(i) and fmap[i].has_key(fmapprefix): map = fmap |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 04:46:41
|
perky 03/07/06 21:46:40 Modified: src/maps mapdata_ja_JP.c Log: Link new jisx0213 maps. Revision Changes Path 1.4 +8 -1 cjkcodecs/src/maps/mapdata_ja_JP.c Index: mapdata_ja_JP.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/mapdata_ja_JP.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- mapdata_ja_JP.c 20 May 2003 06:46:55 -0000 1.3 +++ mapdata_ja_JP.c 7 Jul 2003 04:46:40 -0000 1.4 @@ -26,13 +26,14 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: mapdata_ja_JP.c,v 1.3 2003/05/20 06:46:55 perky Exp $ + * $Id: mapdata_ja_JP.c,v 1.4 2003/07/07 04:46:40 perky Exp $ */ #include "Python.h" #include "../cjkcommon.h" #include "map_jisx0208.h" #include "map_jisx0212.h" +#include "map_jisx0213.h" #include "map_jisxcommon.h" #include "map_cp932ext.h" @@ -40,6 +41,12 @@ {"jisx0208", NULL, jisx0208_decmap}, {"jisx0212", NULL, jisx0212_decmap}, {"jisxcommon", jisxcommon_encmap, NULL}, + {"jisx0213_1_bmp", NULL, jisx0213_1_bmp_decmap}, + {"jisx0213_2_bmp", NULL, jisx0213_2_bmp_decmap}, + {"jisx0213_bmp", jisx0213_bmp_encmap, NULL}, + {"jisx0213_1_emp", NULL, jisx0213_1_emp_decmap}, + {"jisx0213_2_emp", NULL, jisx0213_2_emp_decmap}, + {"jisx0213_emp", jisx0213_emp_encmap, NULL}, {"cp932ext", cp932ext_encmap, cp932ext_decmap}, {"", NULL, NULL}, }; |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 04:46:41
|
perky 03/07/06 21:46:40 Modified: src cjkcommon.h Log: Link new jisx0213 maps. Revision Changes Path 1.11 +13 -1 cjkcodecs/src/cjkcommon.h Index: cjkcommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/cjkcommon.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- cjkcommon.h 6 Jul 2003 23:28:09 -0000 1.10 +++ cjkcommon.h 7 Jul 2003 04:46:40 -0000 1.11 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: cjkcommon.h,v 1.10 2003/07/06 23:28:09 perky Exp $ + * $Id: cjkcommon.h,v 1.11 2003/07/07 04:46:40 perky Exp $ */ #ifndef _CJKCOMMON_H_ @@ -46,6 +46,7 @@ #define UNIINV Py_UNICODE_REPLACEMENT_CHARACTER #define NOCHAR 0xFFFF +#define MULTIC 0xFFFE #define DBCINV 0xFFFD struct dbcs_index { @@ -54,6 +55,12 @@ }; typedef struct dbcs_index decode_map; +struct widedbcs_index { + const ucs4_t *map; + unsigned char bottom, top; +}; +typedef struct widedbcs_index widedecode_map; + struct unim_index { const DBCHAR *map; unsigned char bottom, top; @@ -64,6 +71,11 @@ const char *charset; const struct unim_index *encmap; const struct dbcs_index *decmap; +}; + +struct pair_encodemap { + ucs2_t body, modifier; + DBCHAR code; }; #endif |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 04:45:36
|
perky 03/07/06 21:45:34 Modified: . setup.py Log: Prepare version 1.0 Revision Changes Path 1.24 +2 -2 cjkcodecs/setup.py Index: setup.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/setup.py,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- setup.py 5 Jul 2003 19:53:47 -0000 1.23 +++ setup.py 7 Jul 2003 04:45:34 -0000 1.24 @@ -27,7 +27,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: setup.py,v 1.23 2003/07/05 19:53:47 perky Exp $ +# $Id: setup.py,v 1.24 2003/07/07 04:45:34 perky Exp $ # import sys @@ -94,7 +94,7 @@ org_install_lib or self.install_purelib setup (name = "cjkcodecs", - version = "0.9", + version = "1.0", description = "Python Unicode Codecs Collection for CJK Encodings", author = "Hye-Shik Chang", author_email = "pe...@Fr...", |
From: Hye-Shik C. <pe...@us...> - 2003-07-07 04:33:53
|
perky 03/07/06 21:33:51 Added: src/maps map_jisx0213.h map_jisx0213_pairs.h Log: Add JIS X 0213 maps. Revision Changes Path 1.1 cjkcodecs/src/maps/map_jisx0213.h Index: map_jisx0213.h =================================================================== /* * $Id: map_jisx0213.h,v 1.1 2003/07/07 04:33:51 perky Exp $ */ static const ucs2_t __jisx0213_1_bmp_decmap[2187] = { 0x0027, 0x0022, 0x002d, 0x007e, 0x3033, 0x3034, 0x3035, 0x303b, 0x303c, 0x30ff, 0x309f, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x2284, 0x2285, 0x228a, 0x228b, 0x2209, 0x2205, 0x2305, 0x2306, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x2295, 0x2296, 0x2297, 0x2225, 0x2226, 0x2985, 0x2986, 0x3018, 0x3019, 0x3016, 0x3017, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x2262, 0x2243, 0x2245, 0x2248, 0x2276, 0x2277, 0x2194, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x266e, 0x266b, 0x266c, 0x2669, 0x25b7, 0x25b6, 0x25c1, 0x25c0, 0x2197, 0x2198, 0x2196, 0x2199, 0x21c4, 0x21e8, 0x21e6, 0x21e7, 0x21e9, 0x2934, 0x2935, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x29bf, 0x25c9, 0x303d, 0xfe46, 0xfe45, 0x25e6, 0x2022, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x2213, 0x2135, 0x210f, 0x33cb, 0x2113, 0x2127, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x30a0, 0x2013, 0x29fa, 0x29fb, 0x304b, UNIINV, 0x304d, UNIINV, 0x304f, UNIINV, 0x3051, UNIINV, 0x3053, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x3094, 0x3095, 0x3096, 0x30ab, UNIINV, 0x30ad, UNIINV, 0x30af, UNIINV, 0x30b1, UNIINV, 0x30b3, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x30bb, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x30c4, UNIINV, UNIINV, UNIINV, 0x30c8, 0x2664, 0x2660, 0x2662, 0x2666, 0x2661, 0x2665, 0x2667, 0x2663, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x03c2, 0x24f5, 0x24f6, 0x24f7, 0x24f8, 0x24f9, 0x24fa, 0x24fb, 0x24fc, 0x24fd, 0x24fe, 0x2616, 0x2617, 0x3020, 0x260e, 0x2600, 0x2601, 0x2602, 0x2603, 0x2668, 0x25b1, 0x31f0, 0x31f1, 0x31f2, 0x31f3, 0x31f4, 0x31f5, 0x31f6, 0x31f7, 0x31f8, 0x31f9, UNIINV, 0x31fa, 0x31fb, 0x31fc, 0x31fd, 0x31fe, 0x31ff, 0x23be, 0x23bf, 0x23c0, 0x23c1, 0x23c2, 0x23c3, 0x23c4, 0x23c5, 0x23c6, 0x23c7, 0x23c8, 0x23c9, 0x23ca, 0x23cb, 0x23cc, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x30f7, 0x30f8, 0x30f9, 0x30fa, 0x22da, 0x22db, 0x2153, 0x2154, 0x2155, 0x2713, 0x2318, 0x2423, 0x23ce, 0x3251, 0x3252, 0x3253, 0x3254, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259, 0x325a, 0x325b, 0x325c, 0x325d, 0x325e, 0x325f, 0x32b1, 0x32b2, 0x32b3, 0x32b4, 0x32b5, 0x32b6, 0x32b7, 0x32b8, 0x32b9, 0x32ba, 0x32bb, 0x32bc, 0x32bd, 0x32be, 0x32bf, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x25d0, 0x25d1, 0x25d2, 0x25d3, 0x203c, 0x2047, 0x2048, 0x2049, 0x01cd, 0x01ce, 0x01d0, 0x1e3e, 0x1e3f, 0x01f8, 0x01f9, 0x01d1, 0x01d2, 0x01d4, 0x01d6, 0x01d8, 0x01da, 0x01dc, 0x20ac, 0x00a0, 0x00a1, 0x00a4, 0x00a6, 0x00a9, 0x00aa, 0x00ab, 0x00ad, 0x00ae, 0x00af, 0x00b2, 0x00b3, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, 0x0100, 0x012a, 0x016a, 0x0112, 0x014c, 0x0101, 0x012b, 0x016b, 0x0113, 0x014d, 0x0104, 0x02d8, 0x0141, 0x013d, 0x015a, 0x0160, 0x015e, 0x0164, 0x0179, 0x017d, 0x017b, 0x0105, 0x02db, 0x0142, 0x013e, 0x015b, 0x02c7, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, 0x0154, 0x0102, 0x0139, 0x0106, 0x010c, 0x0118, 0x011a, 0x010e, 0x0143, 0x0147, 0x0150, 0x0158, 0x016e, 0x0170, 0x0162, 0x0155, 0x0103, 0x013a, 0x0107, 0x010d, 0x0119, 0x011b, 0x010f, 0x0111, 0x0144, 0x0148, 0x0151, 0x0159, 0x016f, 0x0171, 0x0163, 0x02d9, 0x0108, 0x011c, 0x0124, 0x0134, 0x015c, 0x016c, 0x0109, 0x011d, 0x0125, 0x0135, 0x015d, 0x016d, 0x0271, 0x028b, 0x027e, 0x0283, 0x0292, 0x026c, 0x026e, 0x0279, 0x0288, 0x0256, 0x0273, 0x027d, 0x0282, 0x0290, 0x027b, 0x026d, 0x025f, 0x0272, 0x029d, 0x028e, 0x0261, 0x014b, 0x0270, 0x0281, 0x0127, 0x0295, 0x0294, 0x0266, 0x0298, 0x01c2, 0x0253, 0x0257, 0x0284, 0x0260, 0x0193, 0x0153, 0x0152, 0x0268, 0x0289, 0x0258, 0x0275, 0x0259, 0x025c, 0x025e, 0x0250, 0x026f, 0x028a, 0x0264, 0x028c, 0x0254, 0x0251, 0x0252, 0x028d, 0x0265, 0x02a2, 0x02a1, 0x0255, 0x0291, 0x027a, 0x0267, 0x025a, UNIINV, 0x01fd, 0x1f70, 0x1f71, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x1f72, 0x1f73, 0x0361, 0x02c8, 0x02cc, 0x02d0, 0x02d1, 0x0306, 0x203f, 0x030b, 0x0301, 0x0304, 0x0300, 0x030f, 0x030c, 0x0302, 0x02e5, 0x02e6, 0x02e7, 0x02e8, 0x02e9, UNIINV, UNIINV, 0x0325, 0x032c, 0x0339, 0x031c, 0x031f, 0x0320, 0x0308, 0x033d, 0x0329, 0x032f, 0x02de, 0x0324, 0x0330, 0x033c, 0x0334, 0x031d, 0x031e, 0x0318, 0x0319, 0x032a, 0x033a, 0x033b, 0x0303, 0x031a, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e, 0x277f, 0x24eb, 0x24ec, 0x24ed, 0x24ee, 0x24ef, 0x24f0, 0x24f1, 0x24f2, 0x24f3, 0x24f4, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217a, 0x217b, 0x24d0, 0x24d1, 0x24d2, 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9, 0x24da, 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 0x24e2, 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x32d0, 0x32d1, 0x32d2, 0x32d3, 0x32d4, 0x32d5, 0x32d6, 0x32d7, 0x32d8, 0x32d9, 0x32da, 0x32db, 0x32dc, 0x32dd, 0x32de, 0x32df, 0x32e0, 0x32e1, 0x32e2, 0x32e3, 0x32fa, 0x32e9, 0x32e5, 0x32ed, 0x32ec, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x2051, 0x2042, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x216a, 0x3349, 0x3314, 0x3322, 0x334d, 0x3318, 0x3327, 0x3303, 0x3336, 0x3351, 0x3357, 0x330d, 0x3326, 0x3323, 0x332b, 0x334a, 0x333b, 0x339c, 0x339d, 0x339e, 0x338e, 0x338f, 0x33c4, 0x33a1, 0x216b, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x337b, 0x301d, 0x301f, 0x2116, 0x33cd, 0x2121, 0x32a4, 0x32a5, 0x32a6, 0x32a7, 0x32a8, 0x3231, 0x3232, 0x3239, 0x337e, 0x337d, 0x337c, UNIINV, UNIINV, UNIINV, 0x222e, UNIINV, UNIINV, UNIINV, UNIINV, 0x221f, 0x22bf, UNIINV, UNIINV, UNIINV, 0x2756, 0x261e, 0x3402, 0x4e28, 0x4e2f, 0x4e30, 0x4e8d, 0x4ee1, 0x4efd, 0x4eff, 0x4f03, 0x4f0b, 0x4f60, 0x4f48, 0x4f49, 0x4f56, 0x4f5f, 0x4f6a, 0x4f6c, 0x4f7e, 0x4f8a, 0x4f94, 0x4f97, 0xfa30, 0x4fc9, 0x4fe0, 0x5001, 0x5002, 0x500e, 0x5018, 0x5027, 0x502e, 0x5040, 0x503b, 0x5041, 0x5094, 0x50cc, 0x50f2, 0x50d0, 0x50e6, 0xfa31, 0x5106, 0x5103, 0x510b, 0x511e, 0x5135, 0x514a, 0xfa32, 0x5155, 0x5157, 0x34b5, 0x519d, 0x51c3, 0x51ca, 0x51de, 0x51e2, 0x51ee, 0x5201, 0x34db, 0x5213, 0x5215, 0x5249, 0x5257, 0x5261, 0x5293, 0x52c8, 0xfa33, 0x52cc, 0x52d0, 0x52d6, 0x52db, 0xfa34, 0x52f0, 0x52fb, 0x5300, 0x5307, 0x531c, 0xfa35, 0x5361, 0x5363, 0x537d, 0x5393, 0x539d, 0x53b2, 0x5412, 0x5427, 0x544d, 0x549c, 0x546b, 0x5474, 0x547f, 0x5488, 0x5496, 0x54a1, 0x54a9, 0x54c6, 0x54ff, 0x550e, 0x552b, 0x5535, 0x5550, 0x555e, 0x5581, 0x5586, 0x558e, 0xfa36, 0x55ad, 0x55ce, 0xfa37, 0x5608, 0x560e, 0x563b, 0x5649, 0x5676, 0x5666, 0xfa38, 0x566f, 0x5671, 0x5672, 0x5699, 0x569e, 0x56a9, 0x56ac, 0x56b3, 0x56c9, 0x56ca, 0x570a, UNIINV, 0x5721, 0x572f, 0x5733, 0x5734, 0x5770, 0x5777, 0x577c, 0x579c, 0xfa0f, UNIINV, 0x57b8, 0x57c7, 0x57c8, 0x57cf, 0x57e4, 0x57ed, 0x57f5, 0x57f6, 0x57ff, 0x5809, 0xfa10, 0x5861, 0x5864, 0xfa39, 0x587c, 0x5889, 0x589e, 0xfa3a, 0x58a9, UNIINV, 0x58d2, 0x58ce, 0x58d4, 0x58da, 0x58e0, 0x58e9, 0x590c, 0x8641, 0x595d, 0x596d, 0x598b, 0x5992, 0x59a4, 0x59c3, 0x59d2, 0x59dd, 0x5a13, 0x5a23, 0x5a67, 0x5a6d, 0x5a77, 0x5a7e, 0x5a84, 0x5a9e, 0x5aa7, 0x5ac4, UNIINV, 0x5b19, 0x5b25, 0x5b41, 0x5b56, 0x5b7d, 0x5b93, 0x5bd8, 0x5bec, 0x5c12, 0x5c1e, 0x5c23, 0x5c2b, 0x378d, 0x5c62, 0xfa3b, 0xfa3c, UNIINV, 0x5c7a, 0x5c8f, 0x5c9f, 0x5ca3, 0x5caa, 0x5cba, 0x5ccb, 0x5cd0, 0x5cd2, 0x5cf4, UNIINV, 0x37e2, 0x5d0d, 0x5d27, 0xfa11, 0x5d46, 0x5d47, 0x5d53, 0x5d4a, 0x5d6d, 0x5d81, 0x5da0, 0x5da4, 0x5da7, 0x5db8, 0x5dcb, 0x5de2, 0x5e14, 0x5e18, 0x5e58, 0x5e5e, 0x5ebe, 0xf928, 0x5ecb, 0x5ef9, 0x5f00, 0x5f02, 0x5f07, 0x5f1d, 0x5f23, 0x5f34, 0x5f36, 0x5f3d, 0x5f40, 0x5f45, 0x5f54, 0x5f58, 0x5f64, 0x5f67, 0x5f7d, 0x5f89, 0x5f9c, 0x5fa7, 0x5faf, 0x5fb5, 0x5fb7, 0x5fc9, 0x5fde, 0x5fe1, 0x5fe9, 0x600d, 0x6014, 0x6018, 0x6033, 0x6035, 0x6047, 0xfa3d, 0x609d, 0x609e, 0x60cb, 0x60d4, 0x60d5, 0x60dd, 0x60f8, 0x611c, 0x612b, 0x6130, 0x6137, 0xfa3e, 0x618d, 0xfa3f, 0x61bc, 0x61b9, 0xfa40, 0x6222, 0x623e, 0x6243, 0x6256, 0x625a, 0x626f, 0x6285, 0x62c4, 0x62d6, 0x62fc, 0x630a, 0x6318, 0x6339, 0x6343, 0x6365, 0x637c, 0x63e5, 0x63ed, 0x63f5, 0x6410, 0x6414, 0x6422, 0x6479, 0x6451, 0x6460, 0x646d, 0x64ce, 0x64be, 0x64bf, 0x64c4, 0x64ca, 0x64d0, 0x64f7, 0x64fb, 0x6522, 0x6529, 0xfa41, 0x6567, 0x659d, 0xfa42, 0x6600, 0x6609, 0x6615, 0x661e, 0x663a, 0x6622, 0x6624, 0x662b, 0x6630, 0x6631, 0x6633, 0x66fb, 0x6648, 0x664c, UNIINV, 0x6659, 0x665a, 0x6661, 0x6665, 0x6673, 0x6677, 0x6678, 0x668d, 0xfa43, 0x66a0, 0x66b2, 0x66bb, 0x66c6, 0x66c8, 0x3b22, 0x66db, 0x66e8, 0x66fa, 0x6713, 0xf929, 0x6733, 0x6766, 0x6747, 0x6748, 0x677b, 0x6781, 0x6793, 0x6798, 0x679b, 0x67bb, 0x67f9, 0x67c0, 0x67d7, 0x67fc, 0x6801, 0x6852, 0x681d, 0x682c, 0x6831, 0x685b, 0x6872, 0x6875, 0xfa44, 0x68a3, 0x68a5, 0x68b2, 0x68c8, 0x68d0, 0x68e8, 0x68ed, 0x68f0, 0x68f1, 0x68fc, 0x690a, 0x6949, UNIINV, 0x6935, 0x6942, 0x6957, 0x6963, 0x6964, 0x6968, 0x6980, 0xfa14, 0x69a5, 0x69ad, 0x69cf, 0x3bb6, 0x3bc3, 0x69e2, 0x69e9, 0x69ea, 0x69f5, 0x69f6, 0x6a0f, 0x6a15, UNIINV, 0x6a3b, 0x6a3e, 0x6a45, 0x6a50, 0x6a56, 0x6a5b, 0x6a6b, 0x6a73, UNIINV, 0x6a89, 0x6a94, 0x6a9d, 0x6a9e, 0x6aa5, 0x6ae4, 0x6ae7, 0x3c0f, 0xf91d, 0x6b1b, 0x6b1e, 0x6b2c, 0x6b35, 0x6b46, 0x6b56, 0x6b60, 0x6b65, 0x6b67, 0x6b77, 0x6b82, 0x6ba9, 0x6bad, 0xf970, 0x6bcf, 0x6bd6, 0x6bd7, 0x6bff, 0x6c05, 0x6c10, 0x6c33, 0x6c59, 0x6c5c, 0x6caa, 0x6c74, 0x6c76, 0x6c85, 0x6c86, 0x6c98, 0x6c9c, 0x6cfb, 0x6cc6, 0x6cd4, 0x6ce0, 0x6ceb, 0x6cee, UNIINV, 0x6d04, 0x6d0e, 0x6d2e, 0x6d31, 0x6d39, 0x6d3f, 0x6d58, 0x6d65, 0xfa45, 0x6d82, 0x6d87, 0x6d89, 0x6d94, 0x6daa, 0x6dac, 0x6dbf, 0x6dc4, 0x6dd6, 0x6dda, 0x6ddb, 0x6ddd, 0x6dfc, 0xfa46, 0x6e34, 0x6e44, 0x6e5c, 0x6e5e, 0x6eab, 0x6eb1, 0x6ec1, 0x6ec7, 0x6ece, 0x6f10, 0x6f1a, 0xfa47, 0x6f2a, 0x6f2f, 0x6f33, 0x6f51, 0x6f59, 0x6f5e, 0x6f61, 0x6f62, 0x6f7e, 0x6f88, 0x6f8c, 0x6f8d, 0x6f94, 0x6fa0, 0x6fa7, 0x6fb6, 0x6fbc, 0x6fc7, 0x6fca, 0x6ff9, 0x6ff0, 0x6ff5, 0x7005, 0x7006, 0x7028, 0x704a, 0x705d, 0x705e, 0x704e, 0x7064, 0x7075, 0x7085, 0x70a4, 0x70ab, 0x70b7, 0x70d4, 0x70d8, 0x70e4, 0x710f, 0x712b, 0x711e, 0x7120, 0x712e, 0x7130, 0x7146, 0x7147, 0x7151, 0xfa48, 0x7152, 0x715c, 0x7160, 0x7168, 0xfa15, 0x7185, 0x7187, 0x7192, 0x71c1, 0x71ba, 0x71c4, 0x71fe, 0x7200, 0x7215, 0x7255, 0x7256, 0x3e3f, 0x728d, 0x729b, 0x72be, 0x72c0, 0x72fb, UNIINV, 0x7327, 0x7328, 0xfa16, 0x7350, 0x7366, 0x737c, 0x7395, 0x739f, 0x73a0, 0x73a2, 0x73a6, 0x73ab, 0x73c9, 0x73cf, 0x73d6, 0x73d9, 0x73e3, 0x73e9, 0x7407, 0x740a, 0x741a, 0x741b, 0xfa4a, 0x7426, 0x7428, 0x742a, 0x742b, 0x742c, 0x742e, 0x742f, 0x7430, 0x7444, 0x7446, 0x7447, 0x744b, 0x7457, 0x7462, 0x746b, 0x746d, 0x7486, 0x7487, 0x7489, 0x7498, 0x749c, 0x749f, 0x74a3, 0x7490, 0x74a6, 0x74a8, 0x74a9, 0x74b5, 0x74bf, 0x74c8, 0x74c9, 0x74da, 0x74ff, 0x7501, 0x7517, 0x752f, 0x756f, 0x7579, 0x7592, 0x3f72, 0x75ce, 0x75e4, 0x7600, 0x7602, 0x7608, 0x7615, 0x7616, 0x7619, 0x761e, 0x762d, 0x7635, 0x7643, 0x764b, 0x7664, 0x7665, 0x766d, 0x766f, 0x7671, 0x7681, 0x769b, 0x769d, 0x769e, 0x76a6, 0x76aa, 0x76b6, 0x76c5, 0x76cc, 0x76ce, 0x76d4, 0x76e6, 0x76f1, 0x76fc, 0x770a, 0x7719, 0x7734, 0x7736, 0x7746, 0x774d, 0x774e, 0x775c, 0x775f, 0x7762, 0x777a, 0x7780, 0x7794, 0x77aa, 0x77e0, 0x782d, 0x7843, 0x784e, 0x784f, 0x7851, 0x7868, 0x786e, 0xfa4b, 0x78b0, UNIINV, 0x78ad, 0x78e4, 0x78f2, 0x7900, 0x78f7, 0x791c, 0x792e, 0x7931, 0x7934, 0xfa4c, 0xfa4d, 0x7945, 0x7946, 0xfa4e, 0xfa4f, 0xfa50, 0x795c, 0xfa51, 0xfa19, 0xfa1a, 0x7979, 0xfa52, 0xfa53, 0xfa1b, 0x7998, 0x79b1, 0x79b8, 0x79c8, 0x79ca, UNIINV, 0x79d4, 0x79de, 0x79eb, 0x79ed, 0x7a03, 0xfa54, 0x7a39, 0x7a5d, 0x7a6d, 0xfa55, 0x7a85, 0x7aa0, UNIINV, 0x7ab3, 0x7abb, 0x7ace, 0x7aeb, 0x7afd, 0x7b12, 0x7b2d, 0x7b3b, 0x7b47, 0x7b4e, 0x7b60, 0x7b6d, 0x7b6f, 0x7b72, 0x7b9e, 0xfa56, 0x7bd7, 0x7bd9, 0x7c01, 0x7c31, 0x7c1e, 0x7c20, 0x7c33, 0x7c36, 0x4264, UNIINV, 0x7c59, 0x7c6d, 0x7c79, 0x7c8f, 0x7c94, 0x7ca0, 0x7cbc, 0x7cd5, 0x7cd9, 0x7cdd, 0x7d07, 0x7d08, 0x7d13, 0x7d1d, 0x7d23, 0x7d31, 0x7d41, 0x7d48, 0x7d53, 0x7d5c, 0x7d7a, 0x7d83, 0x7d8b, 0x7da0, 0x7da6, 0x7dc2, 0x7dcc, 0x7dd6, 0x7de3, 0xfa57, 0x7e28, 0x7e08, 0x7e11, 0x7e15, 0xfa59, 0x7e47, 0x7e52, 0x7e61, 0x7e8a, 0x7e8d, 0x7f47, 0xfa5a, 0x7f91, 0x7f97, 0x7fbf, 0x7fce, 0x7fdb, 0x7fdf, 0x7fec, 0x7fee, 0x7ffa, 0xfa5b, 0x8014, 0x8026, 0x8035, 0x8037, 0x803c, 0x80ca, 0x80d7, 0x80e0, 0x80f3, 0x8118, 0x814a, 0x8160, 0x8167, 0x8168, 0x816d, 0x81bb, 0x81ca, 0x81cf, 0x81d7, 0xfa5c, 0x4453, 0x445b, 0x8260, 0x8274, UNIINV, 0x828e, 0x82a1, 0x82a3, 0x82a4, 0x82a9, 0x82ae, 0x82b7, 0x82be, 0x82bf, 0x82c6, 0x82d5, 0x82fd, 0x82fe, 0x8300, 0x8301, 0x8362, 0x8322, 0x832d, 0x833a, 0x8343, 0x8347, 0x8351, 0x8355, 0x837d, 0x8386, 0x8392, 0x8398, 0x83a7, 0x83a9, 0x83bf, 0x83c0, 0x83c7, 0x83cf, 0x83d1, 0x83e1, 0x83ea, 0x8401, 0x8406, 0x840a, 0xfa5f, 0x8448, 0x845f, 0x8470, 0x8473, 0x8485, 0x849e, 0x84af, 0x84b4, 0x84ba, 0x84c0, 0x84c2, UNIINV, 0x8532, 0x851e, 0x8523, 0x852f, 0x8559, 0x8564, 0xfa1f, 0x85ad, 0x857a, 0x858c, 0x858f, 0x85a2, 0x85b0, 0x85cb, 0x85ce, 0x85ed, 0x8612, 0x85ff, 0x8604, 0x8605, 0x8610, UNIINV, 0x8618, 0x8629, 0x8638, 0x8657, 0x865b, 0xf936, 0x8662, 0x459d, 0x866c, 0x8675, 0x8698, 0x86b8, 0x86fa, 0x86fc, 0x86fd, 0x870b, 0x8771, 0x8787, 0x8788, 0x87ac, 0x87ad, 0x87b5, 0x45ea, 0x87d6, 0x87ec, 0x8806, 0x880a, 0x8810, 0x8814, 0x881f, 0x8898, 0x88aa, 0x88ca, 0x88ce, UNIINV, 0x88f5, 0x891c, 0xfa60, 0x8918, 0x8919, 0x891a, 0x8927, 0x8930, 0x8932, 0x8939, 0x8940, 0x8994, 0xfa61, 0x89d4, 0x89e5, 0x89f6, 0x8a12, 0x8a15, 0x8a22, 0x8a37, 0x8a47, 0x8a4e, 0x8a5d, 0x8a61, 0x8a75, 0x8a79, 0x8aa7, 0x8ad0, 0x8adf, 0x8af4, 0x8af6, 0xfa22, 0xfa62, 0xfa63, 0x8b46, 0x8b54, 0x8b59, 0x8b69, 0x8b9d, 0x8c49, 0x8c68, 0xfa64, 0x8ce1, 0x8cf4, 0x8cf8, 0x8cfe, 0xfa65, 0x8d12, 0x8d1b, 0x8daf, 0x8dce, 0x8dd1, 0x8dd7, 0x8e20, 0x8e23, 0x8e3d, 0x8e70, 0x8e7b, UNIINV, 0x8ec0, 0x4844, 0x8efa, 0x8f1e, 0x8f2d, 0x8f36, 0x8f54, UNIINV, 0x8fa6, 0x8fb5, 0x8fe4, 0x8fe8, 0x8fee, 0x9008, 0x902d, 0xfa67, 0x9088, 0x9095, 0x9097, 0x9099, 0x909b, 0x90a2, 0x90b3, 0x90be, 0x90c4, 0x90c5, 0x90c7, 0x90d7, 0x90dd, 0x90de, 0x90ef, 0x90f4, 0xfa26, 0x9114, 0x9115, 0x9116, 0x9122, 0x9123, 0x9127, 0x912f, 0x9131, 0x9134, 0x913d, 0x9148, 0x915b, 0x9183, 0x919e, 0x91ac, 0x91b1, 0x91bc, 0x91d7, 0x91fb, 0x91e4, 0x91e5, 0x91ed, 0x91f1, 0x9207, 0x9210, 0x9238, 0x9239, 0x923a, 0x923c, 0x9240, 0x9243, 0x924f, 0x9278, 0x9288, 0x92c2, 0x92cb, 0x92cc, 0x92d3, 0x92e0, 0x92ff, 0x9304, 0x931f, 0x9321, 0x9325, 0x9348, 0x9349, 0x934a, 0x9364, 0x9365, 0x936a, 0x9370, 0x939b, 0x93a3, 0x93ba, 0x93c6, 0x93de, 0x93df, 0x9404, 0x93fd, 0x9433, 0x944a, 0x9463, 0x946b, 0x9471, 0x9472, 0x958e, 0x959f, 0x95a6, 0x95a9, 0x95ac, 0x95b6, 0x95bd, 0x95cb, 0x95d0, 0x95d3, 0x49b0, 0x95da, 0x95de, 0x9658, 0x9684, 0xf9dc, 0x969d, 0x96a4, 0x96a5, 0x96d2, 0x96de, 0xfa68, 0x96e9, 0x96ef, 0x9733, 0x973b, 0x974d, 0x974e, 0x974f, 0x975a, 0x976e, 0x9773, 0x9795, 0x97ae, 0x97ba, 0x97c1, 0x97c9, 0x97de, 0x97db, 0x97f4, 0xfa69, 0x980a, 0x981e, 0x982b, 0x9830, 0xfa6a, 0x9852, 0x9853, 0x9856, 0x9857, 0x9859, 0x985a, 0xf9d0, 0x9865, 0x986c, 0x98ba, 0x98c8, 0x98e7, 0x9958, 0x999e, 0x9a02, 0x9a03, 0x9a24, 0x9a2d, 0x9a2e, 0x9a38, 0x9a4a, 0x9a4e, 0x9a52, 0x9ab6, 0x9ac1, 0x9ac3, 0x9ace, 0x9ad6, 0x9af9, 0x9b02, 0x9b08, 0x9b20, 0x4c17, 0x9b2d, 0x9b5e, 0x9b79, 0x9b66, 0x9b72, 0x9b75, 0x9b84, 0x9b8a, 0x9b8f, 0x9b9e, 0x9ba7, 0x9bc1, 0x9bce, 0x9be5, 0x9bf8, 0x9bfd, 0x9c00, 0x9c23, 0x9c41, 0x9c4f, 0x9c50, 0x9c53, 0x9c63, 0x9c65, 0x9c77, 0x9d1d, 0x9d1e, 0x9d43, 0x9d47, 0x9d52, 0x9d63, 0x9d70, 0x9d7c, 0x9d8a, 0x9d96, 0x9dc0, 0x9dac, 0x9dbc, 0x9dd7, UNIINV, 0x9de7, 0x9e07, 0x9e15, 0x9e7c, 0x9e9e, 0x9ea4, 0x9eac, 0x9eaf, 0x9eb4, 0x9eb5, 0x9ec3, 0x9ed1, 0x9f10, 0x9f39, 0x9f57, 0x9f90, 0x9f94, 0x9f97, 0x9fa2, }; static const struct dbcs_index jisx0213_1_bmp_decmap[256] = { /* 0x00 */ {0, 0, 0}, /* 0x01 */ {0, 0, 0}, /* 0x02 */ {0, 0, 0}, /* 0x03 */ {0, 0, 0}, /* 0x04 */ {0, 0, 0}, /* 0x05 */ {0, 0, 0}, /* 0x06 */ {0, 0, 0}, /* 0x07 */ {0, 0, 0}, /* 0x08 */ {0, 0, 0}, /* 0x09 */ {0, 0, 0}, /* 0x0A */ {0, 0, 0}, /* 0x0B */ {0, 0, 0}, /* 0x0C */ {0, 0, 0}, /* 0x0D */ {0, 0, 0}, /* 0x0E */ {0, 0, 0}, /* 0x0F */ {0, 0, 0}, /* 0x10 */ {0, 0, 0}, /* 0x11 */ {0, 0, 0}, /* 0x12 */ {0, 0, 0}, /* 0x13 */ {0, 0, 0}, /* 0x14 */ {0, 0, 0}, /* 0x15 */ {0, 0, 0}, /* 0x16 */ {0, 0, 0}, /* 0x17 */ {0, 0, 0}, /* 0x18 */ {0, 0, 0}, /* 0x19 */ {0, 0, 0}, /* 0x1A */ {0, 0, 0}, /* 0x1B */ {0, 0, 0}, /* 0x1C */ {0, 0, 0}, /* 0x1D */ {0, 0, 0}, /* 0x1E */ {0, 0, 0}, /* 0x1F */ {0, 0, 0}, /* 0x20 */ {0, 0, 0}, /* 0x21 */ {0, 0, 0}, /* 0x22 */ {__jisx0213_1_bmp_decmap+0, 0x2f, 0x7d}, /* 0x23 */ {__jisx0213_1_bmp_decmap+79, 0x21, 0x7e}, /* 0x24 */ {__jisx0213_1_bmp_decmap+173, 0x2b, 0x76}, /* 0x25 */ {__jisx0213_1_bmp_decmap+249, 0x2b, 0x48}, /* 0x26 */ {__jisx0213_1_bmp_decmap+279, 0x39, 0x7e}, /* 0x27 */ {__jisx0213_1_bmp_decmap+349, 0x42, 0x7e}, /* 0x28 */ {__jisx0213_1_bmp_decmap+410, 0x41, 0x7c}, /* 0x29 */ {__jisx0213_1_bmp_decmap+470, 0x21, 0x7e}, /* 0x2A */ {__jisx0213_1_bmp_decmap+564, 0x21, 0x7e}, /* 0x2B */ {__jisx0213_1_bmp_decmap+658, 0x21, 0x7e}, /* 0x2C */ {__jisx0213_1_bmp_decmap+752, 0x21, 0x7e}, /* 0x2D */ {__jisx0213_1_bmp_decmap+846, 0x21, 0x7e}, /* 0x2E */ {__jisx0213_1_bmp_decmap+940, 0x23, 0x7e}, /* 0x2F */ {__jisx0213_1_bmp_decmap+1032, 0x21, 0x7d}, /* 0x30 */ {0, 0, 0}, /* 0x31 */ {0, 0, 0}, /* 0x32 */ {0, 0, 0}, /* 0x33 */ {0, 0, 0}, /* 0x34 */ {0, 0, 0}, /* 0x35 */ {0, 0, 0}, /* 0x36 */ {0, 0, 0}, /* 0x37 */ {0, 0, 0}, /* 0x38 */ {0, 0, 0}, /* 0x39 */ {0, 0, 0}, /* 0x3A */ {0, 0, 0}, /* 0x3B */ {0, 0, 0}, /* 0x3C */ {0, 0, 0}, /* 0x3D */ {0, 0, 0}, /* 0x3E */ {0, 0, 0}, /* 0x3F */ {0, 0, 0}, /* 0x40 */ {0, 0, 0}, /* 0x41 */ {0, 0, 0}, /* 0x42 */ {0, 0, 0}, /* 0x43 */ {0, 0, 0}, /* 0x44 */ {0, 0, 0}, /* 0x45 */ {0, 0, 0}, /* 0x46 */ {0, 0, 0}, /* 0x47 */ {0, 0, 0}, /* 0x48 */ {0, 0, 0}, /* 0x49 */ {0, 0, 0}, /* 0x4A */ {0, 0, 0}, /* 0x4B */ {0, 0, 0}, /* 0x4C */ {0, 0, 0}, /* 0x4D */ {0, 0, 0}, /* 0x4E */ {0, 0, 0}, /* 0x4F */ {__jisx0213_1_bmp_decmap+1125, 0x55, 0x7d}, /* 0x50 */ {0, 0, 0}, /* 0x51 */ {0, 0, 0}, /* 0x52 */ {0, 0, 0}, /* 0x53 */ {0, 0, 0}, /* 0x54 */ {0, 0, 0}, /* 0x55 */ {0, 0, 0}, /* 0x56 */ {0, 0, 0}, /* 0x57 */ {0, 0, 0}, /* 0x58 */ {0, 0, 0}, /* 0x59 */ {0, 0, 0}, /* 0x5A */ {0, 0, 0}, /* 0x5B */ {0, 0, 0}, /* 0x5C */ {0, 0, 0}, /* 0x5D */ {0, 0, 0}, /* 0x5E */ {0, 0, 0}, /* 0x5F */ {0, 0, 0}, /* 0x60 */ {0, 0, 0}, /* 0x61 */ {0, 0, 0}, /* 0x62 */ {0, 0, 0}, /* 0x63 */ {0, 0, 0}, /* 0x64 */ {0, 0, 0}, /* 0x65 */ {0, 0, 0}, /* 0x66 */ {0, 0, 0}, /* 0x67 */ {0, 0, 0}, /* 0x68 */ {0, 0, 0}, /* 0x69 */ {0, 0, 0}, /* 0x6A */ {0, 0, 0}, /* 0x6B */ {0, 0, 0}, /* 0x6C */ {0, 0, 0}, /* 0x6D */ {0, 0, 0}, /* 0x6E */ {0, 0, 0}, /* 0x6F */ {0, 0, 0}, /* 0x70 */ {0, 0, 0}, /* 0x71 */ {0, 0, 0}, /* 0x72 */ {0, 0, 0}, /* 0x73 */ {0, 0, 0}, /* 0x74 */ {__jisx0213_1_bmp_decmap+1166, 0x28, 0x7e}, /* 0x75 */ {__jisx0213_1_bmp_decmap+1253, 0x21, 0x7e}, /* 0x76 */ {__jisx0213_1_bmp_decmap+1347, 0x21, 0x7e}, /* 0x77 */ {__jisx0213_1_bmp_decmap+1441, 0x21, 0x7e}, /* 0x78 */ {__jisx0213_1_bmp_decmap+1535, 0x21, 0x7d}, /* 0x79 */ {__jisx0213_1_bmp_decmap+1628, 0x21, 0x7e}, /* 0x7A */ {__jisx0213_1_bmp_decmap+1722, 0x21, 0x7e}, /* 0x7B */ {__jisx0213_1_bmp_decmap+1816, 0x21, 0x7e}, /* 0x7C */ {__jisx0213_1_bmp_decmap+1910, 0x21, 0x7e}, /* 0x7D */ {__jisx0213_1_bmp_decmap+2004, 0x21, 0x7e}, /* 0x7E */ {__jisx0213_1_bmp_decmap+2098, 0x21, 0x79}, /* 0x7F */ {0, 0, 0}, /* 0x80 */ {0, 0, 0}, /* 0x81 */ {0, 0, 0}, /* 0x82 */ {0, 0, 0}, /* 0x83 */ {0, 0, 0}, /* 0x84 */ {0, 0, 0}, /* 0x85 */ {0, 0, 0}, /* 0x86 */ {0, 0, 0}, /* 0x87 */ {0, 0, 0}, /* 0x88 */ {0, 0, 0}, /* 0x89 */ {0, 0, 0}, /* 0x8A */ {0, 0, 0}, /* 0x8B */ {0, 0, 0}, /* 0x8C */ {0, 0, 0}, /* 0x8D */ {0, 0, 0}, /* 0x8E */ {0, 0, 0}, /* 0x8F */ {0, 0, 0}, /* 0x90 */ {0, 0, 0}, /* 0x91 */ {0, 0, 0}, /* 0x92 */ {0, 0, 0}, /* 0x93 */ {0, 0, 0}, /* 0x94 */ {0, 0, 0}, /* 0x95 */ {0, 0, 0}, /* 0x96 */ {0, 0, 0}, /* 0x97 */ {0, 0, 0}, /* 0x98 */ {0, 0, 0}, /* 0x99 */ {0, 0, 0}, /* 0x9A */ {0, 0, 0}, /* 0x9B */ {0, 0, 0}, /* 0x9C */ {0, 0, 0}, /* 0x9D */ {0, 0, 0}, /* 0x9E */ {0, 0, 0}, /* 0x9F */ {0, 0, 0}, /* 0xA0 */ {0, 0, 0}, /* 0xA1 */ {0, 0, 0}, /* 0xA2 */ {0, 0, 0}, /* 0xA3 */ {0, 0, 0}, /* 0xA4 */ {0, 0, 0}, /* 0xA5 */ {0, 0, 0}, /* 0xA6 */ {0, 0, 0}, /* 0xA7 */ {0, 0, 0}, /* 0xA8 */ {0, 0, 0}, /* 0xA9 */ {0, 0, 0}, /* 0xAA */ {0, 0, 0}, /* 0xAB */ {0, 0, 0}, /* 0xAC */ {0, 0, 0}, /* 0xAD */ {0, 0, 0}, /* 0xAE */ {0, 0, 0}, /* 0xAF */ {0, 0, 0}, /* 0xB0 */ {0, 0, 0}, /* 0xB1 */ {0, 0, 0}, /* 0xB2 */ {0, 0, 0}, /* 0xB3 */ {0, 0, 0}, /* 0xB4 */ {0, 0, 0}, /* 0xB5 */ {0, 0, 0}, /* 0xB6 */ {0, 0, 0}, /* 0xB7 */ {0, 0, 0}, /* 0xB8 */ {0, 0, 0}, /* 0xB9 */ {0, 0, 0}, /* 0xBA */ {0, 0, 0}, /* 0xBB */ {0, 0, 0}, /* 0xBC */ {0, 0, 0}, /* 0xBD */ {0, 0, 0}, /* 0xBE */ {0, 0, 0}, /* 0xBF */ {0, 0, 0}, /* 0xC0 */ {0, 0, 0}, /* 0xC1 */ {0, 0, 0}, /* 0xC2 */ {0, 0, 0}, /* 0xC3 */ {0, 0, 0}, /* 0xC4 */ {0, 0, 0}, /* 0xC5 */ {0, 0, 0}, /* 0xC6 */ {0, 0, 0}, /* 0xC7 */ {0, 0, 0}, /* 0xC8 */ {0, 0, 0}, /* 0xC9 */ {0, 0, 0}, /* 0xCA */ {0, 0, 0}, /* 0xCB */ {0, 0, 0}, /* 0xCC */ {0, 0, 0}, /* 0xCD */ {0, 0, 0}, /* 0xCE */ {0, 0, 0}, /* 0xCF */ {0, 0, 0}, /* 0xD0 */ {0, 0, 0}, /* 0xD1 */ {0, 0, 0}, /* 0xD2 */ {0, 0, 0}, /* 0xD3 */ {0, 0, 0}, /* 0xD4 */ {0, 0, 0}, /* 0xD5 */ {0, 0, 0}, /* 0xD6 */ {0, 0, 0}, /* 0xD7 */ {0, 0, 0}, /* 0xD8 */ {0, 0, 0}, /* 0xD9 */ {0, 0, 0}, /* 0xDA */ {0, 0, 0}, /* 0xDB */ {0, 0, 0}, /* 0xDC */ {0, 0, 0}, /* 0xDD */ {0, 0, 0}, /* 0xDE */ {0, 0, 0}, /* 0xDF */ {0, 0, 0}, /* 0xE0 */ {0, 0, 0}, /* 0xE1 */ {0, 0, 0}, /* 0xE2 */ {0, 0, 0}, /* 0xE3 */ {0, 0, 0}, /* 0xE4 */ {0, 0, 0}, /* 0xE5 */ {0, 0, 0}, /* 0xE6 */ {0, 0, 0}, /* 0xE7 */ {0, 0, 0}, /* 0xE8 */ {0, 0, 0}, /* 0xE9 */ {0, 0, 0}, /* 0xEA */ {0, 0, 0}, /* 0xEB */ {0, 0, 0}, /* 0xEC */ {0, 0, 0}, /* 0xED */ {0, 0, 0}, /* 0xEE */ {0, 0, 0}, /* 0xEF */ {0, 0, 0}, /* 0xF0 */ {0, 0, 0}, /* 0xF1 */ {0, 0, 0}, /* 0xF2 */ {0, 0, 0}, /* 0xF3 */ {0, 0, 0}, /* 0xF4 */ {0, 0, 0}, /* 0xF5 */ {0, 0, 0}, /* 0xF6 */ {0, 0, 0}, /* 0xF7 */ {0, 0, 0}, /* 0xF8 */ {0, 0, 0}, /* 0xF9 */ {0, 0, 0}, /* 0xFA */ {0, 0, 0}, /* 0xFB */ {0, 0, 0}, /* 0xFC */ {0, 0, 0}, /* 0xFD */ {0, 0, 0}, /* 0xFE */ {0, 0, 0}, /* 0xFF */ {0, 0, 0}, }; static const ucs2_t __jisx0213_2_bmp_decmap[2425] = { 0x4e02, 0x4e0f, 0x4e12, 0x4e29, 0x4e2b, 0x4e2e, 0x4e40, 0x4e47, 0x4e48, UNIINV, 0x4e51, 0x3406, UNIINV, 0x4e5a, 0x4e69, 0x4e9d, 0x342c, 0x342e, 0x4eb9, 0x4ebb, UNIINV, 0x4ebc, 0x4ec3, 0x4ec8, 0x4ed0, 0x4eeb, 0x4eda, 0x4ef1, 0x4ef5, 0x4f00, 0x4f16, 0x4f64, 0x4f37, 0x4f3e, 0x4f54, 0x4f58, UNIINV, 0x4f77, 0x4f78, 0x4f7a, 0x4f7d, 0x4f82, 0x4f85, 0x4f92, 0x4f9a, 0x4fe6, 0x4fb2, 0x4fbe, 0x4fc5, 0x4fcb, 0x4fcf, 0x4fd2, 0x346a, 0x4ff2, 0x5000, 0x5010, 0x5013, 0x501c, 0x501e, 0x5022, 0x3468, 0x5042, 0x5046, 0x504e, 0x5053, 0x5057, 0x5063, 0x5066, 0x506a, 0x5070, 0x50a3, 0x5088, 0x5092, 0x5093, 0x5095, 0x5096, 0x509c, 0x50aa, UNIINV, 0x50b1, 0x50ba, 0x50bb, 0x50c4, 0x50c7, 0x50f3, UNIINV, 0x50ce, UNIINV, 0x50d4, 0x50d9, 0x50e1, 0x50e9, 0x3492, 0x5108, UNIINV, 0x5117, 0x511b, UNIINV, 0x5160, UNIINV, 0x5173, 0x5183, 0x518b, 0x34bc, 0x5198, 0x51a3, 0x51ad, 0x34c7, 0x51bc, UNIINV, UNIINV, 0x51f3, 0x51f4, 0x5202, 0x5212, 0x5216, UNIINV, 0x5255, 0x525c, 0x526c, 0x5277, 0x5284, 0x5282, UNIINV, 0x5298, UNIINV, 0x52a4, 0x52a6, 0x52af, 0x52ba, 0x52bb, 0x52ca, 0x351f, 0x52d1, UNIINV, 0x52f7, 0x530a, 0x530b, 0x5324, 0x5335, 0x533e, 0x5342, UNIINV, UNIINV, 0x5367, 0x536c, 0x537a, 0x53a4, 0x53b4, UNIINV, 0x53b7, 0x53c0, UNIINV, 0x355d, 0x355e, 0x53d5, 0x53da, 0x3563, 0x53f4, 0x53f5, 0x5455, 0x5424, 0x5428, 0x356e, 0x5443, 0x5462, 0x5466, 0x546c, 0x548a, 0x548d, 0x5495, 0x54a0, 0x54a6, 0x54ad, 0x54ae, 0x54b7, 0x54ba, 0x54bf, 0x54c3, UNIINV, 0x54ec, 0x54ef, 0x54f1, 0x54f3, 0x5500, 0x5501, 0x5509, 0x553c, 0x5541, 0x35a6, 0x5547, 0x554a, 0x35a8, 0x5560, 0x5561, 0x5564, UNIINV, 0x557d, 0x5582, 0x5588, 0x5591, 0x35c5, 0x55d2, UNIINV, UNIINV, 0x55bf, 0x55c9, 0x55cc, 0x55d1, 0x55dd, 0x35da, 0x55e2, UNIINV, 0x55e9, 0x5628, UNIINV, 0x5607, 0x5610, 0x5630, 0x5637, 0x35f4, 0x563d, 0x563f, 0x5640, 0x5647, 0x565e, 0x5660, 0x566d, 0x3605, 0x5688, 0x568c, 0x5695, 0x569a, 0x569d, 0x56a8, 0x56ad, 0x56b2, 0x56c5, 0x56cd, 0x56df, 0x56e8, 0x56f6, 0x56f7, UNIINV, 0x5715, 0x5723, UNIINV, 0x5729, UNIINV, 0x5745, 0x5746, 0x574c, 0x574d, UNIINV, 0x5768, 0x576f, 0x5773, 0x5774, 0x5775, 0x577b, UNIINV, UNIINV, 0x57ac, 0x579a, 0x579d, 0x579e, 0x57a8, 0x57d7, UNIINV, 0x57cc, UNIINV, UNIINV, 0x57de, 0x57e6, 0x57f0, 0x364a, 0x57f8, 0x57fb, 0x57fd, 0x5804, 0x581e, 0x5820, 0x5827, 0x5832, 0x5839, UNIINV, 0x5849, 0x584c, 0x5867, 0x588a, 0x588b, 0x588d, 0x588f, 0x5890, 0x5894, 0x589d, 0x58aa, 0x58b1, UNIINV, 0x58c3, 0x58cd, 0x58e2, 0x58f3, 0x58f4, 0x5905, 0x5906, 0x590b, 0x590d, 0x5914, 0x5924, UNIINV, 0x3691, 0x593d, 0x3699, 0x5946, 0x3696, UNIINV, 0x595b, 0x595f, UNIINV, 0x5975, 0x5976, 0x597c, 0x599f, 0x59ae, 0x59bc, 0x59c8, 0x59cd, 0x59de, 0x59e3, 0x59e4, 0x59e7, 0x59ee, UNIINV, UNIINV, 0x36cf, 0x5a0c, 0x5a0d, 0x5a17, 0x5a27, 0x5a2d, 0x5a55, 0x5a65, 0x5a7a, 0x5a8b, 0x5a9c, 0x5a9f, 0x5aa0, 0x5aa2, 0x5ab1, 0x5ab3, 0x5ab5, 0x5aba, 0x5abf, 0x5ada, 0x5adc, 0x5ae0, 0x5ae5, 0x5af0, 0x5aee, 0x5af5, 0x5b00, 0x5b08, 0x5b17, 0x5b34, 0x5b2d, 0x5b4c, 0x5b52, 0x5b68, 0x5b6f, 0x5b7c, 0x5b7f, 0x5b81, 0x5b84, 0x5b96, 0x5bac, 0x3761, 0x5bc0, 0x3762, 0x5bce, 0x5bd6, 0x376c, 0x376b, 0x5bf1, 0x5bfd, 0x3775, 0x5c03, 0x5c29, 0x5c30, UNIINV, 0x5c5f, 0x5c63, 0x5c67, 0x5c68, 0x5c69, 0x5c70, UNIINV, UNIINV, 0x5c7c, UNIINV, UNIINV, 0x5c88, 0x5c8a, 0x37c1, UNIINV, UNIINV, 0x5ca0, 0x5ca2, 0x5ca6, 0x5ca7, UNIINV, 0x5cad, 0x5cb5, UNIINV, 0x5cc9, UNIINV, UNIINV, 0x5d06, 0x5d10, 0x5d2b, 0x5d1d, 0x5d20, 0x5d24, 0x5d26, 0x5d31, 0x5d39, 0x5d42, 0x37e8, 0x5d61, 0x5d6a, 0x37f4, 0x5d70, UNIINV, 0x37fd, 0x5d88, 0x3800, 0x5d92, 0x5d94, 0x5d97, 0x5d99, 0x5db0, 0x5db2, 0x5db4, UNIINV, 0x5db9, 0x5dd1, 0x5dd7, 0x5dd8, 0x5de0, UNIINV, 0x5de4, 0x5de9, 0x382f, 0x5e00, 0x3836, 0x5e12, 0x5e15, 0x3840, 0x5e1f, 0x5e2e, 0x5e3e, 0x5e49, 0x385c, 0x5e56, 0x3861, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, UNIINV, 0x5ea5, 0x5eaa, 0x5eac, 0x5eb9, 0x5ebf, 0x5ec6, 0x5ed2, 0x5ed9, UNIINV, 0x5efd, 0x5f08, 0x5f0e, 0x5f1c, UNIINV, 0x5f1e, 0x5f47, 0x5f63, 0x5f72, 0x5f7e, 0x5f8f, 0x5fa2, 0x5fa4, 0x5fb8, 0x5fc4, 0x38fa, 0x5fc7, 0x5fcb, 0x5fd2, 0x5fd3, 0x5fd4, 0x5fe2, 0x5fee, 0x5fef, 0x5ff3, 0x5ffc, 0x3917, 0x6017, 0x6022, 0x6024, 0x391a, 0x604c, 0x607f, 0x608a, 0x6095, 0x60a8, UNIINV, 0x60b0, 0x60b1, 0x60be, 0x60c8, 0x60d9, 0x60db, 0x60ee, 0x60f2, 0x60f5, 0x6110, 0x6112, 0x6113, 0x6119, 0x611e, 0x613a, 0x396f, 0x6141, 0x6146, 0x6160, 0x617c, UNIINV, 0x6192, 0x6193, 0x6197, 0x6198, 0x61a5, 0x61a8, 0x61ad, UNIINV, 0x61d5, 0x61dd, 0x61df, 0x61f5, UNIINV, 0x6215, 0x6223, 0x6229, 0x6246, 0x624c, 0x6251, 0x6252, 0x6261, 0x6264, 0x627b, 0x626d, 0x6273, 0x6299, 0x62a6, 0x62d5, UNIINV, 0x62fd, 0x6303, 0x630d, 0x6310, UNIINV, UNIINV, 0x6332, 0x6335, 0x633b, 0x633c, 0x6341, 0x6344, 0x634e, UNIINV, 0x6359, UNIINV, UNIINV, 0x636c, 0x6384, 0x6399, UNIINV, 0x6394, 0x63bd, 0x63f7, 0x63d4, 0x63d5, 0x63dc, 0x63e0, 0x63eb, 0x63ec, 0x63f2, 0x6409, 0x641e, 0x6425, 0x6429, 0x642f, 0x645a, 0x645b, 0x645d, 0x6473, 0x647d, 0x6487, 0x6491, 0x649d, 0x649f, 0x64cb, 0x64cc, 0x64d5, 0x64d7, UNIINV, 0x64e4, 0x64e5, 0x64ff, 0x6504, 0x3a6e, 0x650f, 0x6514, 0x6516, 0x3a73, 0x651e, 0x6532, 0x6544, 0x6554, 0x656b, 0x657a, 0x6581, 0x6584, 0x6585, 0x658a, 0x65b2, 0x65b5, 0x65b8, 0x65bf, 0x65c2, 0x65c9, 0x65d4, 0x3ad6, 0x65f2, 0x65f9, 0x65fc, 0x6604, 0x6608, 0x6621, 0x662a, 0x6645, 0x6651, 0x664e, 0x3aea, UNIINV, 0x6657, 0x665b, 0x6663, UNIINV, UNIINV, 0x666a, 0x666b, 0x666c, 0x666d, 0x667b, 0x6680, 0x6690, 0x6692, 0x6699, 0x3b0e, 0x66ad, 0x66b1, 0x66b5, 0x3b1a, 0x66bf, 0x3b1c, 0x66ec, 0x3ad7, 0x6701, 0x6705, 0x6712, UNIINV, 0x6719, UNIINV, UNIINV, 0x674c, 0x674d, 0x6754, 0x675d, UNIINV, UNIINV, UNIINV, 0x6774, 0x6776, UNIINV, 0x6792, UNIINV, 0x8363, 0x6810, 0x67b0, 0x67b2, 0x67c3, 0x67c8, 0x67d2, 0x67d9, 0x67db, 0x67f0, 0x67f7, UNIINV, UNIINV, UNIINV, 0x6818, 0x681f, 0x682d, UNIINV, 0x6833, 0x683b, 0x683e, 0x6844, 0x6845, 0x6849, 0x684c, 0x6855, 0x6857, 0x3b77, 0x686b, 0x686e, 0x687a, 0x687c, 0x6882, 0x6890, 0x6896, 0x3b6d, 0x6898, 0x6899, 0x689a, 0x689c, 0x68aa, 0x68ab, 0x68b4, 0x68bb, 0x68fb, UNIINV, UNIINV, 0xfa13, 0x68c3, 0x68c5, 0x68cc, 0x68cf, 0x68d6, 0x68d9, 0x68e4, 0x68e5, 0x68ec, 0x68f7, 0x6903, 0x6907, 0x3b87, 0x3b88, UNIINV, 0x693b, 0x3b8d, 0x6946, 0x6969, 0x696c, 0x6972, 0x697a, 0x697f, 0x6992, 0x3ba4, 0x6996, 0x6998, 0x69a6, 0x69b0, 0x69b7, 0x69ba, 0x69bc, 0x69c0, 0x69d1, 0x69d6, UNIINV, UNIINV, 0x6a30, UNIINV, UNIINV, 0x69e3, 0x69ee, 0x69ef, 0x69f3, 0x3bcd, 0x69f4, 0x69fe, 0x6a11, 0x6a1a, 0x6a1d, UNIINV, 0x6a32, 0x6a33, 0x6a34, 0x6a3f, 0x6a46, 0x6a49, 0x6a7a, 0x6a4e, 0x6a52, 0x6a64, UNIINV, 0x6a7e, 0x6a83, 0x6a8b, 0x3bf0, 0x6a91, 0x6a9f, 0x6aa1, UNIINV, 0x6aab, 0x6abd, 0x6ac6, 0x6ad4, 0x6ad0, 0x6adc, 0x6add, UNIINV, UNIINV, 0x6aec, 0x6af1, 0x6af2, 0x6af3, 0x6afd, UNIINV, 0x6b0b, 0x6b0f, 0x6b10, 0x6b11, UNIINV, 0x6b17, 0x3c26, 0x6b2f, 0x6b4a, 0x6b58, 0x6b6c, 0x6b75, 0x6b7a, 0x6b81, 0x6b9b, 0x6bae, UNIINV, 0x6bbd, 0x6bbe, 0x6bc7, 0x6bc8, 0x6bc9, 0x6bda, 0x6be6, 0x6be7, 0x6bee, 0x6bf1, 0x6c02, 0x6c0a, 0x6c0e, 0x6c35, 0x6c36, 0x6c3a, UNIINV, 0x6c3f, 0x6c4d, 0x6c5b, 0x6c6d, 0x6c84, 0x6c89, 0x3cc3, 0x6c94, 0x6c95, 0x6c97, 0x6cad, 0x6cc2, 0x6cd0, 0x3cd2, 0x6cd6, 0x6cda, 0x6cdc, 0x6ce9, 0x6cec, 0x6ced, UNIINV, 0x6d00, 0x6d0a, 0x6d24, 0x6d26, 0x6d27, 0x6c67, 0x6d2f, 0x6d3c, 0x6d5b, 0x6d5e, 0x6d60, 0x6d70, 0x6d80, 0x6d81, 0x6d8a, 0x6d8d, 0x6d91, 0x6d98, UNIINV, 0x6e17, UNIINV, UNIINV, UNIINV, 0x6dab, 0x6dae, 0x6db4, 0x6dc2, 0x6d34, 0x6dc8, 0x6dce, 0x6dcf, 0x6dd0, 0x6ddf, 0x6de9, 0x6df6, 0x6e36, 0x6e1e, 0x6e22, 0x6e27, 0x3d11, 0x6e32, 0x6e3c, 0x6e48, 0x6e49, 0x6e4b, 0x6e4c, 0x6e4f, 0x6e51, 0x6e53, 0x6e54, 0x6e57, 0x6e63, 0x3d1e, 0x6e93, 0x6ea7, 0x6eb4, 0x6ebf, 0x6ec3, 0x6eca, 0x6ed9, 0x6f35, 0x6eeb, 0x6ef9, 0x6efb, 0x6f0a, 0x6f0c, 0x6f18, 0x6f25, 0x6f36, 0x6f3c, UNIINV, 0x6f52, 0x6f57, 0x6f5a, 0x6f60, 0x6f68, 0x6f98, 0x6f7d, 0x6f90, 0x6f96, 0x6fbe, 0x6f9f, 0x6fa5, 0x6faf, 0x3d64, 0x6fb5, 0x6fc8, 0x6fc9, 0x6fda, 0x6fde, 0x6fe9, UNIINV, 0x6ffc, 0x7000, 0x7007, 0x700a, 0x7023, UNIINV, 0x7039, 0x703a, 0x703c, 0x7043, 0x7047, 0x704b, 0x3d9a, 0x7054, 0x7065, 0x7069, 0x706c, 0x706e, 0x7076, 0x707e, 0x7081, 0x7086, 0x7095, 0x7097, 0x70bb, UNIINV, 0x709f, 0x70b1, UNIINV, 0x70ec, 0x70ca, 0x70d1, 0x70d3, 0x70dc, 0x7103, 0x7104, 0x7106, 0x7107, 0x7108, 0x710c, 0x3dc0, 0x712f, 0x7131, 0x7150, 0x714a, 0x7153, 0x715e, 0x3dd4, 0x7196, 0x7180, 0x719b, 0x71a0, 0x71a2, 0x71ae, 0x71af, 0x71b3, UNIINV, 0x71cb, 0x71d3, 0x71d9, 0x71dc, 0x7207, 0x3e05, 0xfa49, 0x722b, 0x7234, 0x7238, 0x7239, 0x4e2c, 0x7242, 0x7253, 0x7257, 0x7263, UNIINV, 0x726e, 0x726f, 0x7278, 0x727f, 0x728e, UNIINV, 0x72ad, 0x72ae, 0x72b0, 0x72b1, 0x72c1, 0x3e60, 0x72cc, 0x3e66, 0x3e68, 0x72f3, 0x72fa, 0x7307, 0x7312, 0x7318, 0x7319, 0x3e83, 0x7339, 0x732c, 0x7331, 0x7333, 0x733d, 0x7352, 0x3e94, 0x736b, 0x736c, UNIINV, 0x736e, 0x736f, 0x7371, 0x7377, 0x7381, 0x7385, 0x738a, 0x7394, 0x7398, 0x739c, 0x739e, 0x73a5, 0x73a8, 0x73b5, 0x73b7, 0x73b9, 0x73bc, 0x73bf, 0x73c5, 0x73cb, 0x73e1, 0x73e7, 0x73f9, 0x7413, 0x73fa, 0x7401, 0x7424, 0x7431, 0x7439, 0x7453, 0x7440, 0x7443, 0x744d, 0x7452, 0x745d, 0x7471, 0x7481, 0x7485, 0x7488, UNIINV, 0x7492, 0x7497, 0x7499, 0x74a0, 0x74a1, 0x74a5, 0x74aa, 0x74ab, 0x74b9, 0x74bb, 0x74ba, 0x74d6, 0x74d8, 0x74de, 0x74ef, 0x74eb, UNIINV, 0x74fa, UNIINV, 0x7520, 0x7524, 0x752a, 0x3f57, UNIINV, 0x753d, 0x753e, 0x7540, 0x7548, 0x754e, 0x7550, 0x7552, 0x756c, 0x7572, 0x7571, 0x757a, 0x757d, 0x757e, 0x7581, UNIINV, 0x758c, 0x3f75, 0x75a2, 0x3f77, 0x75b0, 0x75b7, 0x75bf, 0x75c0, 0x75c6, 0x75cf, 0x75d3, 0x75dd, 0x75df, 0x75e0, 0x75e7, 0x75ec, 0x75ee, 0x75f1, 0x75f9, 0x7603, 0x7618, 0x7607, 0x760f, 0x3fae, UNIINV, 0x7613, 0x761b, 0x761c, UNIINV, 0x7625, 0x7628, 0x763c, 0x7633, UNIINV, 0x3fc9, 0x7641, UNIINV, 0x7649, 0x7655, 0x3fd7, 0x766e, 0x7695, 0x769c, 0x76a1, 0x76a0, 0x76a7, 0x76a8, 0x76af, UNIINV, 0x76c9, UNIINV, 0x76e8, 0x76ec, UNIINV, 0x7717, 0x771a, 0x772d, 0x7735, 0x4039, UNIINV, UNIINV, 0x7758, 0x7760, 0x776a, UNIINV, 0x7772, 0x777c, 0x777d, UNIINV, 0x4058, 0x779a, 0x779f, 0x77a2, 0x77a4, 0x77a9, 0x77de, 0x77df, 0x77e4, 0x77e6, 0x77ea, 0x77ec, 0x4093, 0x77f0, 0x77f4, 0x77fb, UNIINV, 0x7805, 0x7806, 0x7809, 0x780d, 0x7819, 0x7821, 0x782c, 0x7847, 0x7864, 0x786a, UNIINV, 0x788a, 0x7894, 0x78a4, 0x789d, 0x789e, 0x789f, 0x78bb, 0x78c8, 0x78cc, 0x78ce, 0x78d5, 0x78e0, 0x78e1, 0x78e6, 0x78f9, 0x78fa, 0x78fb, 0x78fe, UNIINV, 0x7910, 0x791b, 0x7930, 0x7925, 0x793b, 0x794a, 0x7958, 0x795b, 0x4105, 0x7967, 0x7972, 0x7994, 0x7995, 0x7996, 0x799b, 0x79a1, 0x79a9, 0x79b4, 0x79bb, 0x79c2, 0x79c7, 0x79cc, 0x79cd, 0x79d6, 0x4148, UNIINV, UNIINV, 0x414f, 0x7a0a, 0x7a11, 0x7a15, 0x7a1b, 0x7a1e, 0x4163, 0x7a2d, 0x7a38, 0x7a47, 0x7a4c, 0x7a56, 0x7a59, 0x7a5c, 0x7a5f, 0x7a60, 0x7a67, 0x7a6a, 0x7a75, 0x7a78, 0x7a82, 0x7a8a, 0x7a90, 0x7aa3, 0x7aac, UNIINV, 0x41b4, 0x7ab9, 0x7abc, 0x7abe, 0x41bf, 0x7acc, 0x7ad1, 0x7ae7, 0x7ae8, 0x7af4, UNIINV, UNIINV, 0x7b07, UNIINV, 0x7b3d, 0x7b27, 0x7b2a, 0x7b2e, 0x7b2f, 0x7b31, 0x41e6, 0x41f3, 0x7b7f, 0x7b41, 0x41ee, 0x7b55, 0x7b79, 0x7b64, 0x7b66, 0x7b69, 0x7b73, UNIINV, 0x4207, 0x7b90, 0x7b91, 0x7b9b, 0x420e, 0x7baf, 0x7bb5, 0x7bbc, 0x7bc5, 0x7bca, UNIINV, UNIINV, 0x7bd4, 0x7bd6, 0x7bda, 0x7bea, 0x7bf0, 0x7c03, 0x7c0b, 0x7c0e, 0x7c0f, 0x7c26, 0x7c45, 0x7c4a, 0x7c51, 0x7c57, 0x7c5e, 0x7c61, 0x7c69, 0x7c6e, 0x7c6f, 0x7c70, UNIINV, UNIINV, UNIINV, 0x7ca6, UNIINV, 0x7cb6, 0x7cb7, 0x7cbf, UNIINV, 0x7cc4, UNIINV, 0x7cc8, 0x7ccd, UNIINV, 0x7cd7, UNIINV, 0x7ce6, 0x7ceb, UNIINV, 0x7cf5, 0x7d03, 0x7d09, 0x42c6, 0x7d12, 0x7d1e, UNIINV, UNIINV, 0x7d3d, 0x7d3e, 0x7d40, 0x7d47, UNIINV, UNIINV, 0x42d6, 0x7d59, 0x7d5a, 0x7d6a, 0x7d70, 0x42dd, 0x7d7f, UNIINV, 0x7d86, 0x7d88, 0x7d8c, 0x7d97, UNIINV, 0x7d9d, 0x7da7, 0x7daa, 0x7db6, 0x7db7, 0x7dc0, 0x7dd7, 0x7dd9, 0x7de6, 0x7df1, 0x7df9, 0x4302, UNIINV, 0xfa58, 0x7e10, 0x7e17, 0x7e1d, 0x7e20, 0x7e27, 0x7e2c, 0x7e45, 0x7e73, 0x7e75, 0x7e7e, 0x7e86, 0x7e87, 0x432b, 0x7e91, 0x7e98, 0x7e9a, 0x4343, 0x7f3c, 0x7f3b, 0x7f3e, 0x7f43, 0x7f44, 0x7f4f, 0x34c1, UNIINV, 0x7f52, UNIINV, 0x7f61, 0x7f63, 0x7f64, 0x7f6d, 0x7f7d, 0x7f7e, UNIINV, 0x7f90, 0x517b, UNIINV, 0x7f96, 0x7f9c, 0x7fad, UNIINV, 0x7fc3, 0x7fcf, 0x7fe3, 0x7fe5, 0x7fef, 0x7ff2, 0x8002, 0x800a, 0x8008, 0x800e, 0x8011, 0x8016, 0x8024, 0x802c, 0x8030, 0x8043, 0x8066, 0x8071, 0x8075, 0x807b, 0x8099, 0x809c, 0x80a4, 0x80a7, 0x80b8, UNIINV, 0x80c5, 0x80d5, 0x80d8, 0x80e6, UNIINV, 0x810d, 0x80f5, 0x80fb, 0x43ee, 0x8135, 0x8116, 0x811e, 0x43f0, 0x8124, 0x8127, 0x812c, UNIINV, 0x813d, 0x4408, 0x8169, 0x4417, 0x8181, 0x441c, 0x8184, 0x8185, 0x4422, 0x8198, 0x81b2, 0x81c1, 0x81c3, 0x81d6, 0x81db, UNIINV, 0x81e4, UNIINV, 0x81ec, UNIINV, 0x81fd, 0x81ff, UNIINV, 0x8204, UNIINV, 0x8219, 0x8221, 0x8222, UNIINV, 0x8232, 0x8234, 0x823c, 0x8246, 0x8249, 0x8245, UNIINV, 0x824b, 0x4476, 0x824f, 0x447a, 0x8257, UNIINV, 0x825c, 0x8263, UNIINV, 0xfa5d, 0xfa5e, 0x8279, 0x4491, 0x827d, 0x827f, 0x8283, 0x828a, 0x8293, 0x82a7, 0x82a8, 0x82b2, 0x82b4, 0x82ba, 0x82bc, 0x82e2, 0x82e8, 0x82f7, 0x8307, 0x8308, 0x830c, 0x8354, 0x831b, 0x831d, 0x8330, 0x833c, 0x8344, 0x8357, 0x44be, 0x837f, 0x44d4, 0x44b3, 0x838d, 0x8394, 0x8395, 0x839b, 0x839d, 0x83c9, 0x83d0, 0x83d4, 0x83dd, 0x83e5, 0x83f9, 0x840f, 0x8411, 0x8415, UNIINV, 0x8417, 0x8439, 0x844a, 0x844f, 0x8451, 0x8452, 0x8459, 0x845a, 0x845c, UNIINV, 0x8465, 0x8476, 0x8478, 0x847c, 0x8481, 0x450d, 0x84dc, 0x8497, 0x84a6, 0x84be, 0x4508, 0x84ce, 0x84cf, 0x84d3, UNIINV, 0x84e7, 0x84ea, 0x84ef, 0x84f0, 0x84f1, 0x84fa, 0x84fd, 0x850c, 0x851b, 0x8524, 0x8525, 0x852b, 0x8534, 0x854f, 0x856f, 0x4525, 0x4543, 0x853e, 0x8551, 0x8553, 0x855e, 0x8561, 0x8562, UNIINV, 0x857b, 0x857d, 0x857f, 0x8581, 0x8586, 0x8593, 0x859d, 0x859f, 0x85b7, 0x85bc, 0x85c7, 0x85ca, 0x85d8, 0x85d9, 0x85df, 0x85e1, 0x85e6, 0x85f6, 0x8600, 0x8611, 0x861e, 0x8621, 0x8624, 0x8627, UNIINV, 0x8639, 0x863c, UNIINV, 0x8640, 0xfa20, 0x8653, 0x8656, 0x866f, 0x8677, 0x867a, 0x8687, 0x8689, 0x868d, 0x8691, 0x869c, 0x869d, 0x86a8, 0xfa21, 0x86b1, 0x86b3, 0x86c1, 0x86c3, 0x86d1, 0x86d5, 0x86d7, 0x86e3, 0x86e6, 0x45b8, 0x8705, 0x8707, 0x870e, 0x8710, 0x8713, 0x8719, 0x871f, 0x8721, 0x8723, 0x8731, 0x873a, 0x873e, 0x8740, 0x8743, 0x8751, 0x8758, 0x8764, 0x8765, 0x8772, 0x877c, UNIINV, UNIINV, 0x87a7, 0x8789, 0x878b, 0x8793, 0x87a0, UNIINV, 0x45e5, 0x87be, UNIINV, 0x87c1, 0x87ce, 0x87f5, 0x87df, UNIINV, 0x87e3, 0x87e5, 0x87e6, 0x87ea, 0x87eb, 0x87ed, 0x8801, 0x8803, 0x880b, 0x8813, 0x8828, 0x882e, 0x8832, 0x883c, 0x460f, 0x884a, 0x8858, 0x885f, 0x8864, UNIINV, UNIINV, 0x8869, UNIINV, 0x886f, 0x88a0, 0x88bc, 0x88bd, 0x88be, 0x88c0, 0x88d2, UNIINV, 0x88d1, 0x88d3, 0x88db, 0x88f0, 0x88f1, 0x4641, 0x8901, UNIINV, 0x8937, UNIINV, 0x8942, 0x8945, 0x8949, UNIINV, 0x4665, 0x8962, 0x8980, 0x8989, 0x8990, 0x899f, 0x89b0, 0x89b7, 0x89d6, 0x89d8, 0x89eb, 0x46a1, 0x89f1, 0x89f3, 0x89fd, 0x89ff, 0x46af, 0x8a11, 0x8a14, UNIINV, 0x8a21, 0x8a35, 0x8a3e, 0x8a45, 0x8a4d, 0x8a58, 0x8aae, 0x8a90, 0x8ab7, 0x8abe, 0x8ad7, 0x8afc, UNIINV, 0x8b0a, 0x8b05, 0x8b0d, 0x8b1c, 0x8b1f, 0x8b2d, 0x8b43, 0x470c, 0x8b51, 0x8b5e, 0x8b76, 0x8b7f, 0x8b81, 0x8b8b, 0x8b94, 0x8b95, 0x8b9c, 0x8b9e, 0x8c39, UNIINV, 0x8c3d, UNIINV, UNIINV, 0x8c45, 0x8c47, 0x8c4f, 0x8c54, 0x8c57, 0x8c69, 0x8c6d, 0x8c73, UNIINV, 0x8c93, 0x8c92, 0x8c99, 0x4764, 0x8c9b, 0x8ca4, 0x8cd6, 0x8cd5, 0x8cd9, UNIINV, 0x8cf0, 0x8cf1, UNIINV, 0x8d09, 0x8d0e, 0x8d6c, 0x8d84, 0x8d95, 0x8da6, UNIINV, 0x8dc6, 0x8dc8, 0x8dd9, 0x8dec, 0x8e0c, 0x47fd, 0x8dfd, 0x8e06, UNIINV, 0x8e14, 0x8e16, 0x8e21, 0x8e22, 0x8e27, UNIINV, 0x4816, 0x8e36, 0x8e39, 0x8e4b, 0x8e54, 0x8e62, 0x8e6c, 0x8e6d, 0x8e6f, 0x8e98, 0x8e9e, 0x8eae, 0x8eb3, 0x8eb5, 0x8eb6, 0x8ebb, UNIINV, 0x8ed1, 0x8ed4, 0x484e, 0x8ef9, UNIINV, 0x8f00, 0x8f08, 0x8f17, 0x8f2b, 0x8f40, 0x8f4a, 0x8f58, UNIINV, 0x8fa4, 0x8fb4, 0xfa66, 0x8fb6, UNIINV, 0x8fc1, 0x8fc6, 0xfa24, 0x8fca, 0x8fcd, 0x8fd3, 0x8fd5, 0x8fe0, 0x8ff1, 0x8ff5, 0x8ffb, 0x9002, 0x900c, 0x9037, UNIINV, 0x9043, 0x9044, 0x905d, 0x9085, 0x908c, 0x9090, 0x961d, 0x90a1, 0x48b5, 0x90b0, 0x90b6, 0x90c3, 0x90c8, UNIINV, 0x90dc, 0x90df, UNIINV, 0x90f6, 0x90f2, 0x9100, 0x90eb, 0x90fe, 0x90ff, 0x9104, 0x9106, 0x9118, 0x911c, 0x911e, 0x9137, 0x9139, 0x913a, 0x9146, 0x9147, 0x9157, 0x9159, 0x9161, 0x9164, 0x9174, 0x9179, 0x9185, 0x918e, 0x91a8, 0x91ae, 0x91b3, 0x91b6, 0x91c3, 0x91c4, 0x91da, UNIINV, UNIINV, 0x91ec, 0x91ee, 0x9201, 0x920a, 0x9216, 0x9217, UNIINV, 0x9233, 0x9242, 0x9247, 0x924a, 0x924e, 0x9251, 0x9256, 0x9259, 0x9260, 0x9261, 0x9265, 0x9267, 0x9268, UNIINV, UNIINV, 0x927c, 0x927d, 0x927f, 0x9289, 0x928d, 0x9297, 0x9299, 0x929f, 0x92a7, 0x92ab, UNIINV, UNIINV, 0x92b2, 0x92bf, 0x92c0, 0x92c6, 0x92ce, 0x92d0, 0x92d7, 0x92d9, 0x92e5, 0x92e7, 0x9311, 0x92f7, 0x92f9, 0x92fb, 0x9302, 0x930d, 0x9315, 0x931d, 0x931e, 0x9327, 0x9329, UNIINV, UNIINV, 0x9347, 0x9351, 0x9357, 0x935a, 0x936b, 0x9371, 0x9373, 0x93a1, UNIINV, UNIINV, 0x9388, 0x938b, 0x938f, 0x939e, 0x93f5, UNIINV, UNIINV, 0x93f1, 0x93c1, 0x93c7, 0x93dc, 0x93e2, 0x93e7, 0x9409, 0x940f, 0x9416, 0x9417, 0x93fb, 0x9432, 0x9434, 0x943b, 0x9445, UNIINV, UNIINV, 0x946d, 0x946f, 0x9578, 0x9579, 0x9586, 0x958c, 0x958d, UNIINV, 0x95ab, 0x95b4, UNIINV, 0x95c8, UNIINV, UNIINV, 0x962c, 0x9633, 0x9634, UNIINV, 0x963c, 0x9641, 0x9661, UNIINV, 0x9682, UNIINV, 0x969a, UNIINV, 0x49e7, 0x96a9, 0x96af, 0x96b3, 0x96ba, 0x96bd, 0x49fa, UNIINV, 0x96d8, 0x96da, 0x96dd, 0x4a04, 0x9714, 0x9723, 0x4a29, 0x9736, 0x9741, 0x9747, 0x9755, 0x9757, 0x975b, 0x976a, UNIINV, UNIINV, 0x9796, 0x979a, 0x979e, 0x97a2, 0x97b1, 0x97b2, 0x97be, 0x97cc, 0x97d1, 0x97d4, 0x97d8, 0x97d9, 0x97e1, 0x97f1, 0x9804, 0x980d, 0x980e, 0x9814, 0x9816, 0x4abc, UNIINV, 0x9823, 0x9832, 0x9833, 0x9825, 0x9847, 0x9866, 0x98ab, 0x98ad, 0x98b0, UNIINV, 0x98b7, 0x98b8, 0x98bb, 0x98bc, 0x98bf, 0x98c2, 0x98c7, 0x98cb, 0x98e0, UNIINV, 0x98e1, 0x98e3, 0x98e5, 0x98ea, 0x98f0, 0x98f1, 0x98f3, 0x9908, 0x4b3b, UNIINV, 0x9916, 0x9917, UNIINV, 0x991a, 0x991b, 0x991c, UNIINV, 0x9931, 0x9932, 0x9933, 0x993a, 0x993b, 0x993c, 0x9940, 0x9941, 0x9946, 0x994d, 0x994e, 0x995c, 0x995f, 0x9960, 0x99a3, 0x99a6, 0x99b9, 0x99bd, 0x99bf, 0x99c3, 0x99c9, 0x99d4, 0x99d9, 0x99de, UNIINV, 0x99f0, 0x99f9, 0x99fc, 0x9a0a, 0x9a11, 0x9a16, 0x9a1a, 0x9a20, 0x9a31, 0x9a36, 0x9a44, 0x9a4c, 0x9a58, 0x4bc2, 0x9aaf, 0x4bca, 0x9ab7, 0x4bd2, 0x9ab9, UNIINV, 0x9ac6, 0x9ad0, 0x9ad2, 0x9ad5, 0x4be8, 0x9adc, 0x9ae0, 0x9ae5, 0x9ae9, 0x9b03, 0x9b0c, 0x9b10, 0x9b12, 0x9b16, 0x9b1d, 0x9b2b, 0x9b33, 0x9b3d, 0x4c20, 0x9b4b, 0x9b63, 0x9b65, 0x9b6b, 0x9b6c, 0x9b73, 0x9b76, 0x9b77, 0x9ba6, 0x9bac, 0x9bb1, UNIINV, UNIINV, 0x9bb2, 0x9bb8, 0x9bbe, 0x9bc7, 0x9bf3, 0x9bd8, 0x9bdd, 0x9be7, 0x9bea, 0x9beb, 0x9bef, 0x9bee, UNIINV, 0x9bfa, UNIINV, 0x9bf7, UNIINV, 0x9c16, 0x9c18, 0x9c19, 0x9c1a, 0x9c1d, 0x9c22, 0x9c27, 0x9c29, 0x9c2a, UNIINV, 0x9c31, 0x9c36, 0x9c37, 0x9c45, 0x9c5c, UNIINV, 0x9c49, 0x9c4a, UNIINV, 0x9c54, 0x9c58, 0x9c5b, 0x9c5d, 0x9c5f, 0x9c69, 0x9c6a, 0x9c6b, 0x9c6d, 0x9c6e, 0x9c70, 0x9c72, 0x9c75, 0x9c7a, 0x9ce6, 0x9cf2, 0x9d0b, 0x9d02, UNIINV, 0x9d11, 0x9d17, 0x9d18, UNIINV, 0x4cc4, UNIINV, 0x9d32, 0x4cd1, 0x9d42, 0x9d4a, 0x9d5f, 0x9d62, UNIINV, 0x9d69, 0x9d6b, UNIINV, 0x9d73, 0x9d76, 0x9d77, 0x9d7e, 0x9d84, 0x9d8d, 0x9d99, 0x9da1, 0x9dbf, 0x9db5, 0x9db9, 0x9dbd, 0x9dc3, 0x9dc7, 0x9dc9, 0x9dd6, 0x9dda, 0x9ddf, 0x9de0, 0x9de3, 0x9df4, 0x4d07, 0x9e0a, 0x9e02, 0x9e0d, 0x9e19, 0x9e1c, 0x9e1d, 0x9e7b, UNIINV, 0x9e80, 0x9e85, 0x9e9b, 0x9ea8, UNIINV, 0x9ebd, UNIINV, 0x9edf, 0x9ee7, 0x9eee, 0x9eff, 0x9f02, 0x4d77, 0x9f03, 0x9f17, 0x9f19, 0x9f2f, 0x9f37, 0x9f3a, 0x9f3d, 0x9f41, 0x9f45, 0x9f46, 0x9f53, 0x9f55, 0x9f58, UNIINV, 0x9f5d, UNIINV, 0x9f69, UNIINV, 0x9f6d, 0x9f70, 0x9f75, }; static const struct dbcs_index jisx0213_2_bmp_decmap[256] = { /* 0x00 */ {0, 0, 0}, /* 0x01 */ {0, 0, 0}, /* 0x02 */ {0, 0, 0}, /* 0x03 */ {0, 0, 0}, /* 0x04 */ {0, 0, 0}, /* 0x05 */ {0, 0, 0}, /* 0x06 */ {0, 0, 0}, /* 0x07 */ {0, 0, 0}, /* 0x08 */ {0, 0, 0}, /* 0x09 */ {0, 0, 0}, /* 0x0A */ {0, 0, 0}, /* 0x0B */ {0, 0, 0}, /* 0x0C */ {0, 0, 0}, /* 0x0D */ {0, 0, 0}, /* 0x0E */ {0, 0, 0}, /* 0x0F */ {0, 0, 0}, /* 0x10 */ {0, 0, 0}, /* 0x11 */ {0, 0, 0}, /* 0x12 */ {0, 0, 0}, /* 0x13 */ {0, 0, 0}, /* 0x14 */ {0, 0, 0}, /* 0x15 */ {0, 0, 0}, /* 0x16 */ {0, 0, 0}, /* 0x17 */ {0, 0, 0}, /* 0x18 */ {0, 0, 0}, /* 0x19 */ {0, 0, 0}, /* 0x1A */ {0, 0, 0}, /* 0x1B */ {0, 0, 0}, /* 0x1C */ {0, 0, 0}, /* 0x1D */ {0, 0, 0}, /* 0x1E */ {0, 0, 0}, /* 0x1F */ {0, 0, 0}, /* 0x20 */ {0, 0, 0}, /* 0x21 */ {__jisx0213_2_bmp_decmap+0, 0x22, 0x7e}, /* 0x22 */ {0, 0, 0}, /* 0x23 */ {__jisx0213_2_bmp_decmap+93, 0x21, 0x7e}, /* 0x24 */ {__jisx0213_2_bmp_decmap+187, 0x21, 0x7e}, /* 0x25 */ {__jisx0213_2_bmp_decmap+281, 0x21, 0x7d}, /* 0x26 */ {0, 0, 0}, /* 0x27 */ {0, 0, 0}, /* 0x28 */ {__jisx0213_2_bmp_decmap+374, 0x21, 0x7e}, /* 0x29 */ {0, 0, 0}, /* 0x2A */ {0, 0, 0}, /* 0x2B */ {0, 0, 0}, /* 0x2C */ {__jisx0213_2_bmp_decmap+468, 0x21, 0x7e}, /* 0x2D */ {__jisx0213_2_bmp_decmap+562, 0x21, 0x7e}, /* 0x2E */ {__jisx0213_2_bmp_decmap+656, 0x21, 0x7e}, /* 0x2F */ {__jisx0213_2_bmp_decmap+750, 0x21, 0x7e}, /* 0x30 */ {0, 0, 0}, /* 0x31 */ {0, 0, 0}, /* 0x32 */ {0, 0, 0}, /* 0x33 */ {0, 0, 0}, /* 0x34 */ {0, 0, 0}, /* 0x35 */ {0, 0, 0}, /* 0x36 */ {0, 0, 0}, /* 0x37 */ {0, 0, 0}, /* 0x38 */ {0, 0, 0}, /* 0x39 */ {0, 0, 0}, /* 0x3A */ {0, 0, 0}, /* 0x3B */ {0, 0, 0}, /* 0x3C */ {0, 0, 0}, /* 0x3D */ {0, 0, 0}, /* 0x3E */ {0, 0, 0}, /* 0x3F */ {0, 0, 0}, /* 0x40 */ {0, 0, 0}, /* 0x41 */ {0, 0, 0}, /* 0x42 */ {0, 0, 0}, /* 0x43 */ {0, 0, 0}, /* 0x44 */ {0, 0, 0}, /* 0x45 */ {0, 0, 0}, /* 0x46 */ {0, 0, 0}, /* 0x47 */ {0, 0, 0}, /* 0x48 */ {0, 0, 0}, /* 0x49 */ {0, 0, 0}, /* 0x4A */ {0, 0, 0}, /* 0x4B */ {0, 0, 0}, /* 0x4C */ {0, 0, 0}, /* 0x4D */ {0, 0, 0}, /* 0x4E */ {0, 0, 0}, /* 0x4F */ {0, 0, 0}, /* 0x50 */ {0, 0, 0}, /* 0x51 */ {0, 0, 0}, /* 0x52 */ {0, 0, 0}, /* 0x53 */ {0, 0, 0}, /* 0x54 */ {0, 0, 0}, /* 0x55 */ {0, 0, 0}, /* 0x56 */ {0, 0, 0}, /* 0x57 */ {0, 0, 0}, /* 0x58 */ {0, 0, 0}, /* 0x59 */ {0, 0, 0}, /* 0x5A */ {0, 0, 0}, /* 0x5B */ {0, 0, 0}, /* 0x5C */ {0, 0, 0}, /* 0x5D */ {0, 0, 0}, /* 0x5E */ {0, 0, 0}, /* 0x5F */ {0, 0, 0}, /* 0x60 */ {0, 0, 0}, /* 0x61 */ {0, 0, 0}, /* 0x62 */ {0, 0, 0}, /* 0x63 */ {0, 0, 0}, /* 0x64 */ {0, 0, 0}, /* 0x65 */ {0, 0, 0}, /* 0x66 */ {0, 0, 0}, /* 0x67 */ {0, 0, 0}, /* 0x68 */ {0, 0, 0}, /* 0x69 */ {0, 0, 0}, /* 0x6A */ {0, 0, 0}, /* 0x6B */ {0, 0, 0}, /* 0x6C */ {0, 0, 0}, /* 0x6D */ {0, 0, 0}, /* 0x6E */ {__jisx0213_2_bmp_decmap+844, 0x21, 0x7e}, /* 0x6F */ {__jisx0213_2_bmp_decmap+938, 0x21, 0x7e}, /* 0x70 */ {__jisx0213_2_bmp_decmap+1032, 0x21, 0x7e}, /* 0x71 */ {__jisx0213_2_bmp_decmap+1126, 0x21, 0x7e}, /* 0x72 */ {__jisx0213_2_bmp_decmap+1220, 0x22, 0x7e}, /* 0x73 */ {__jisx0213_2_bmp_decmap+1313, 0x21, 0x7e}, /* 0x74 */ {__jisx0213_2_bmp_decmap+1407, 0x21, 0x7e}, /* 0x75 */ {__jisx0213_2_bmp_decmap+1501, 0x21, 0x7e}, /* 0x76 */ {__jisx0213_2_bmp_decmap+1595, 0x21, 0x7d}, /* 0x77 */ {__jisx0213_2_bmp_decmap+1688, 0x23, 0x7e}, /* 0x78 */ {__jisx0213_2_bmp_decmap+1780, 0x21, 0x7e}, /* 0x79 */ {__jisx0213_2_bmp_decmap+1874, 0x21, 0x7d}, /* 0x7A */ {__jisx0213_2_bmp_decmap+1967, 0x22, 0x7d}, /* 0x7B */ {__jisx0213_2_bmp_decmap+2059, 0x22, 0x7e}, /* 0x7C */ {__jisx0213_2_bmp_decmap+2152, 0x21, 0x7e}, /* 0x7D */ {__jisx0213_2_bmp_decmap+2246, 0x21, 0x7e}, /* 0x7E */ {__jisx0213_2_bmp_decmap+2340, 0x21, 0x75}, /* 0x7F */ {0, 0, 0}, /* 0x80 */ {0, 0, 0}, /* 0x81 */ {0, 0, 0}, /* 0x82 */ {0, 0, 0}, /* 0x83 */ {0, 0, 0}, /* 0x84 */ {0, 0, 0}, /* 0x85 */ {0, 0, 0}, /* 0x86 */ {0, 0, 0}, /* 0x87 */ {0, 0, 0}, /* 0x88 */ {0, 0, 0}, /* 0x89 */ {0, 0, 0}, /* 0x8A */ {0, 0, 0}, /* 0x8B */ {0, 0, 0}, /* 0x8C */ {0, 0, 0}, /* 0x8D */ {0, 0, 0}, /* 0x8E */ {0, 0, 0}, /* 0x8F */ {0, 0, 0}, /* 0x90 */ {0, 0, 0}, /* 0x91 */ {0, 0, 0}, /* 0x92 */ {0, 0, 0}, /* 0x93 */ {0, 0, 0}, /* 0x94 */ {0, 0, 0}, /* 0x95 */ {0, 0, 0}, /* 0x96 */ {0, 0, 0}, /* 0x97 */ {0, 0, 0}, /* 0x98 */ {0, 0, 0}, /* 0x99 */ {0, 0, 0}, /* 0x9A */ {0, 0, 0}, /* 0x9B */ {0, 0, 0}, /* 0x9C */ {0, 0, 0}, /* 0x9D */ {0, 0, 0}, /* 0x9E */ {0, 0, 0}, /* 0x9F */ {0, 0, 0}, /* 0xA0 */ {0, 0, 0}, /* 0xA1 */ {0, 0, 0}, /* 0xA2 */ {0, 0, 0}, /* 0xA3 */ {0, 0, 0}, /* 0xA4 */ {0, 0, 0}, /* 0xA5 */ {0, 0, 0}, /* 0xA6 */ {0, 0, 0}, /* 0xA7 */ {0, 0, 0}, /* 0xA8 */ {0, 0, 0}, /* 0xA9 */ {0, 0, 0}, /* 0xAA */ {0, 0, 0}, /* 0xAB */ {0, 0, 0}, /* 0xAC */ {0, 0, 0}, /* 0xAD */ {0, 0, 0}, /* 0xAE */ {0, 0, 0}, /* 0xAF */ {0, 0, 0}, /* 0xB0 */ {0, 0, 0}, /* 0xB1 */ {0, 0, 0}, /* 0xB2 */ {0, 0, 0}, /* 0xB3 */ {0, 0, 0}, /* 0xB4 */ {0, 0, 0}, /* 0xB5 */ {0, 0, 0}, /* 0xB6 */ {0, 0, 0}, /* 0xB7 */ {0, 0, 0}, /* 0xB8 */ {0, 0, 0}, /* 0xB9 */ {0, 0, 0}, /* 0xBA */ {0, 0, 0}, /* 0xBB */ {0, 0, 0}, /* 0xBC */ {0, 0, 0}, /* 0xBD */ {0, 0, 0}, /* 0xBE */ {0, 0, 0}, /* 0xBF */ {0, 0, 0}, /* 0xC0 */ {0, 0, 0}, /* 0xC1 */ {0, 0, 0}, /* 0xC2 */ {0, 0, 0}, /* 0xC3 */ {0, 0, 0}, /* 0xC4 */ {0, 0, 0}, /* 0xC5 */ {0, 0, 0}, /* 0xC6 */ {0, 0, 0}, /* 0xC7 */ {0, 0, 0}, /* 0xC8 */ {0, 0, 0}, /* 0xC9 */ {0, 0, 0}, /* 0xCA */ {0, 0, 0}, /* 0xCB */ {0, 0, 0}, /* 0xCC */ {0, 0, 0}, /* 0xCD */ {0, 0, 0}, /* 0xCE */ {0, 0, 0}, /* 0xCF */ {0, 0, 0}, /* 0xD0 */ {0, 0, 0}, /* 0xD1 */ {0, 0, 0}, /* 0xD2 */ {0, 0, 0}, /* 0xD3 */ {0, 0, 0}, /* 0xD4 */ {0, 0, 0}, /* 0xD5 */ {0, 0, 0}, /* 0xD6 */ {0, 0, 0}, /* 0xD7 */ {0, 0, 0}, /* 0xD8 */ {0, 0, 0}, /* 0xD9 */ {0, 0, 0}, /* 0xDA */ {0, 0, 0}, /* 0xDB */ {0, 0, 0}, /* 0xDC */ {0, 0, 0}, /* 0xDD */ {0, 0, 0}, /* 0xDE */ {0, 0, 0}, /* 0xDF */ {0, 0, 0}, /* 0xE0 */ {0, 0, 0}, /* 0xE1 */ {0, 0, 0}, /* 0xE2 */ {0, 0, 0}, /* 0xE3 */ {0, 0, 0}, /* 0xE4 */ {0, 0, 0}, /* 0xE5 */ {0, 0, 0}, /* 0xE6 */ {0, 0, 0}, /* 0xE7 */ {0, 0, 0}, /* 0xE8 */ {0, 0, 0}, /* 0xE9 */ {0, 0, 0}, /* 0xEA */ {0, 0, 0}, /* 0xEB */ {0, 0, 0}, /* 0xEC */ {0, 0, 0}, /* 0xED */ {0, 0, 0}, /* 0xEE */ {0, 0, 0}, /* 0xEF */ {0, 0, 0}, /* 0xF0 */ {0, 0, 0}, /* 0xF1 */ {0, 0, 0}, /* 0xF2 */ {0, 0, 0}, /* 0xF3 */ {0, 0, 0}, /* 0xF4 */ {0, 0, 0}, /* 0xF5 */ {0, 0, 0}, /* 0xF6 */ {0, 0, 0}, /* 0xF7 */ {0, 0, 0}, /* 0xF8 */ {0, 0, 0}, /* 0xF9 */ {0, 0, 0}, /* 0xFA */ {0, 0, 0}, /* 0xFB */ {0, 0, 0}, /* 0xFC */ {0, 0, 0}, /* 0xFD */ {0, 0, 0}, /* 0xFE */ {0, 0, 0}, /* 0xFF */ {0, 0, 0}, }; static const DBCHAR __jisx0213_bmp_encmap[27357] = { 0x2230, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x222f, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2231, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2232, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2922, 0x2923, NOCHAR, NOCHAR, 0x2924, NOCHAR, 0x2925, NOCHAR, NOCHAR, 0x2926, 0x2927, 0x2928, NOCHAR, 0x2929, 0x292a, 0x292b, NOCHAR, NOCHAR, 0x292c, 0x292d, NOCHAR, NOCHAR, NOCHAR, 0x292e, 0x292f, 0x2930, 0x2931, 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c, 0x293d, 0x293e, 0x293f, 0x2940, 0x2941, 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 0x294a, 0x294b, 0x294c, 0x294d, NOCHAR, 0x294e, 0x294f, 0x2950, 0x2951, 0x2952, 0x2953, 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959, 0x295a, 0x295b, MULTIC, 0x295d, 0x295e, 0x295f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x296c, NOCHAR, 0x296d, 0x296e, 0x296f, 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, 0x2975, 0x297a, 0x2a3a, 0x2a49, 0x2a21, 0x2a2c, 0x2a3c, 0x2a4b, 0x2a59, 0x2a5f, NOCHAR, NOCHAR, 0x2a3d, 0x2a4c, 0x2a40, 0x2a4f, NOCHAR, 0x2a50, 0x2978, 0x297d, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2a3e, 0x2a4d, 0x2a3f, 0x2a4e, 0x2a5a, 0x2a60, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2a5b, 0x2a61, NOCHAR, 0x2a7d, NOCHAR, NOCHAR, 0x2976, 0x297b, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2a5c, 0x2a62, NOCHAR, NOCHAR, NOCHAR, 0x2a3b, 0x2a4a, NOCHAR, NOCHAR, 0x2a24, 0x2a2f, NOCHAR, NOCHAR, 0x2a23, 0x2a2e, 0x2a41, 0x2a51, NOCHAR, NOCHAR, 0x2a42, 0x2a52, NOCHAR, NOCHAR, 0x2a7a, 0x2979, 0x297e, NOCHAR, NOCHAR, 0x2a43, 0x2a53, 0x2b2b, 0x2b2a, 0x2a39, 0x2a48, NOCHAR, NOCHAR, 0x2a44, 0x2a54, 0x2a25, 0x2a30, 0x2a5d, 0x2a63, 0x2a27, 0x2a33, 0x2a26, 0x2a32, 0x2a47, 0x2a57, 0x2a28, 0x2a34, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2977, 0x297c, 0x2a5e, 0x2a64, 0x2a45, 0x2a55, 0x2a46, 0x2a56, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2a29, 0x2a35, 0x2a2b, 0x2a38, 0x2a2a, 0x2a37, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2b29, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2b24, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x286f, 0x2870, NOCHAR, 0x2871, 0x2876, 0x2877, NOCHAR, 0x2878, NOCHAR, 0x2879, NOCHAR, 0x287a, NOCHAR, 0x287b, NOCHAR, 0x287c, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2874, 0x2875, NOCHAR, NOCHAR, NOCHAR, 0x2b45, 0x2b33, 0x2b39, 0x2b3a, 0x2b25, MULTIC, 0x2b3f, 0x2a6e, 0x2b26, 0x2b2e, MULTIC, MULTIC, NOCHAR, 0x2b31, NOCHAR, 0x2b32, 0x2a75, 0x2b28, 0x2a79, NOCHAR, NOCHAR, 0x2b36, 0x2b3c, 0x2b22, 0x2b42, 0x2b2c, NOCHAR, NOCHAR, NOCHAR, 0x2a6a, 0x2a74, 0x2a6b, 0x2b34, 0x2a7b, 0x2a65, 0x2a76, 0x2a6f, NOCHAR, 0x2b2f, NOCHAR, NOCHAR, NOCHAR, 0x2a6c, 0x2b41, 0x2a73, NOCHAR, 0x2a70, 0x2a67, NOCHAR, NOCHAR, 0x2a7c, 0x2a71, 0x2a68, 0x2b27, NOCHAR, NOCHAR, NOCHAR, 0x2a6d, 0x2b2d, 0x2b35, 0x2a66, MULTIC, 0x2b3b, 0x2a78, NOCHAR, 0x2a72, 0x2b40, 0x2a69, NOCHAR, 0x2b21, 0x2a7e, NOCHAR, NOCHAR, 0x2b23, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2a77, NOCHAR, NOCHAR, NOCHAR, 0x2b3e, 0x2b3d, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2a31, 0x2b53, NOCHAR, NOCHAR, NOCHAR, 0x2b54, NOCHAR, NOCHAR, NOCHAR, 0x2b55, 0x2b56, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2a22, 0x2a58, NOCHAR, 0x2a2d, NOCHAR, 0x2a36, 0x2b71, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, MULTIC, 0x2b61, 0x2b62, 0x2b63, MULTIC, 0x2b5c, 0x2b5a, 0x2b5f, 0x2b7d, 0x2b5b, NOCHAR, 0x2b57, NOCHAR, 0x2b6d, NOCHAR, NOCHAR, 0x2b59, 0x2b5e, NOCHAR, NOCHAR, 0x2b5d, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2b78, 0x2b79, 0x2b7e, NOCHAR, 0x2b6a, 0x2b76, 0x2b77, 0x2b6b, 0x2b6c, NOCHAR, NOCHAR, NOCHAR, 0x2b72, 0x2b67, NOCHAR, NOCHAR, NOCHAR, 0x2b6f, 0x2b7a, NOCHAR, 0x2b68, NOCHAR, NOCHAR, 0x2b70, 0x2b73, NOCHAR, NOCHAR, NOCHAR, 0x2b75, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2b69, 0x2b7b, 0x2b7c, 0x2b74, 0x2b6e, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, 0x2b52, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, NOCHAR, ... [truncated message content] |
perky 03/07/06 16:28:11 Modified: src/maps map_big5.h map_cp932ext.h map_cp949.h map_cp949ext.h map_cp950ext.h map_gb18030ext.h map_gb18030uni.h map_gb2312.h map_gbcommon.h map_gbkext.h map_jisx0208.h map_jisx0212.h map_jisxcommon.h map_ksx1001.h Log: Change maps' internal unicode type to ucs2_t. Revision Changes Path 1.5 +2 -2 cjkcodecs/src/maps/map_big5.h Index: map_big5.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_big5.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- map_big5.h 20 Jun 2003 09:04:53 -0000 1.4 +++ map_big5.h 6 Jul 2003 23:28:10 -0000 1.5 @@ -1,8 +1,8 @@ /* - * $Id: map_big5.h,v 1.4 2003/06/20 09:04:53 perky Exp $ + * $Id: map_big5.h,v 1.5 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __big5_decmap[16702] = { +static const ucs2_t __big5_decmap[16702] = { 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2022, 0xff1b, 0xff1a, 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xff64, 0xfe52, 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31, 1.5 +2 -2 cjkcodecs/src/maps/map_cp932ext.h Index: map_cp932ext.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_cp932ext.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- map_cp932ext.h 26 May 2003 13:50:09 -0000 1.4 +++ map_cp932ext.h 6 Jul 2003 23:28:10 -0000 1.5 @@ -1,8 +1,8 @@ /* - * $Id: map_cp932ext.h,v 1.4 2003/05/26 13:50:09 perky Exp $ + * $Id: map_cp932ext.h,v 1.5 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __cp932ext_decmap[969] = { +static const ucs2_t __cp932ext_decmap[969] = { 0xff3c, 0xff5e, 0x2225, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c, 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b, 0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 1.5 +1 -1 cjkcodecs/src/maps/map_cp949.h Index: map_cp949.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_cp949.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- map_cp949.h 27 May 2003 04:30:29 -0000 1.4 +++ map_cp949.h 6 Jul 2003 23:28:10 -0000 1.5 @@ -1,5 +1,5 @@ /* - * $Id: map_cp949.h,v 1.4 2003/05/27 04:30:29 perky Exp $ + * $Id: map_cp949.h,v 1.5 2003/07/06 23:28:10 perky Exp $ */ static const DBCHAR __cp949_encmap[33133] = { 1.4 +2 -2 cjkcodecs/src/maps/map_cp949ext.h Index: map_cp949ext.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_cp949ext.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_cp949ext.h 17 May 2003 20:58:58 -0000 1.3 +++ map_cp949ext.h 6 Jul 2003 23:28:10 -0000 1.4 @@ -1,8 +1,8 @@ /* - * $Id: map_cp949ext.h,v 1.3 2003/05/17 20:58:58 perky Exp $ + * $Id: map_cp949ext.h,v 1.4 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __cp949ext_decmap[9650] = { +static const ucs2_t __cp949ext_decmap[9650] = { 0xac02, 0xac03, 0xac05, 0xac06, 0xac0b, 0xac0c, 0xac0d, 0xac0e, 0xac0f, 0xac18, 0xac1e, 0xac1f, 0xac21, 0xac22, 0xac23, 0xac25, 0xac26, 0xac27, 0xac28, 0xac29, 0xac2a, 0xac2b, 0xac2e, 0xac32, 1.6 +2 -2 cjkcodecs/src/maps/map_cp950ext.h Index: map_cp950ext.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_cp950ext.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- map_cp950ext.h 20 Jun 2003 09:04:53 -0000 1.5 +++ map_cp950ext.h 6 Jul 2003 23:28:10 -0000 1.6 @@ -1,8 +1,8 @@ /* - * $Id: map_cp950ext.h,v 1.5 2003/06/20 09:04:53 perky Exp $ + * $Id: map_cp950ext.h,v 1.6 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __cp950ext_decmap[224] = { +static const ucs2_t __cp950ext_decmap[224] = { 0x2027, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xfe51, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 1.4 +2 -2 cjkcodecs/src/maps/map_gb18030ext.h Index: map_gb18030ext.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_gb18030ext.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_gb18030ext.h 17 May 2003 20:58:58 -0000 1.3 +++ map_gb18030ext.h 6 Jul 2003 23:28:10 -0000 1.4 @@ -1,8 +1,8 @@ /* - * $Id: map_gb18030ext.h,v 1.3 2003/05/17 20:58:58 perky Exp $ + * $Id: map_gb18030ext.h,v 1.4 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __gb18030ext_decmap[2729] = { +static const ucs2_t __gb18030ext_decmap[2729] = { 0xe4c6, 0xe4c7, 0xe4c8, 0xe4c9, 0xe4ca, 0xe4cb, 0xe4cc, 0xe4cd, 0xe4ce, 0xe4cf, 0xe4d0, 0xe4d1, 0xe4d2, 0xe4d3, 0xe4d4, 0xe4d5, 0xe4d6, 0xe4d7, 0xe4d8, 0xe4d9, 0xe4da, 0xe4db, 0xe4dc, 0xe4dd, 1.4 +1 -1 cjkcodecs/src/maps/map_gb18030uni.h Index: map_gb18030uni.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_gb18030uni.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_gb18030uni.h 17 May 2003 20:58:58 -0000 1.3 +++ map_gb18030uni.h 6 Jul 2003 23:28:10 -0000 1.4 @@ -1,5 +1,5 @@ /* - * $Id: map_gb18030uni.h,v 1.3 2003/05/17 20:58:58 perky Exp $ + * $Id: map_gb18030uni.h,v 1.4 2003/07/06 23:28:10 perky Exp $ */ 1.4 +2 -2 cjkcodecs/src/maps/map_gb2312.h Index: map_gb2312.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_gb2312.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_gb2312.h 17 May 2003 20:58:58 -0000 1.3 +++ map_gb2312.h 6 Jul 2003 23:28:10 -0000 1.4 @@ -1,8 +1,8 @@ /* - * $Id: map_gb2312.h,v 1.3 2003/05/17 20:58:58 perky Exp $ + * $Id: map_gb2312.h,v 1.4 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __gb2312_decmap[7482] = { +static const ucs2_t __gb2312_decmap[7482] = { 0x3000, 0x3001, 0x3002, 0x30fb, 0x02c9, 0x02c7, 0x00a8, 0x3003, 0x3005, 0x2015, 0xff5e, 0x2016, 0x2026, 0x2018, 0x2019, 0x201c, 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 1.4 +1 -1 cjkcodecs/src/maps/map_gbcommon.h Index: map_gbcommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_gbcommon.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_gbcommon.h 17 May 2003 20:58:58 -0000 1.3 +++ map_gbcommon.h 6 Jul 2003 23:28:10 -0000 1.4 @@ -1,5 +1,5 @@ /* - * $Id: map_gbcommon.h,v 1.3 2003/05/17 20:58:58 perky Exp $ + * $Id: map_gbcommon.h,v 1.4 2003/07/06 23:28:10 perky Exp $ */ static const DBCHAR __gbcommon_encmap[23231] = { 1.4 +2 -2 cjkcodecs/src/maps/map_gbkext.h Index: map_gbkext.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_gbkext.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_gbkext.h 17 May 2003 20:58:58 -0000 1.3 +++ map_gbkext.h 6 Jul 2003 23:28:10 -0000 1.4 @@ -1,8 +1,8 @@ /* - * $Id: map_gbkext.h,v 1.3 2003/05/17 20:58:58 perky Exp $ + * $Id: map_gbkext.h,v 1.4 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __gbkext_decmap[14531] = { +static const ucs2_t __gbkext_decmap[14531] = { 0x4e02, 0x4e04, 0x4e05, 0x4e06, 0x4e0f, 0x4e12, 0x4e17, 0x4e1f, 0x4e20, 0x4e21, 0x4e23, 0x4e26, 0x4e29, 0x4e2e, 0x4e2f, 0x4e31, 0x4e33, 0x4e35, 0x4e37, 0x4e3c, 0x4e40, 0x4e41, 0x4e42, 0x4e44, 1.4 +2 -2 cjkcodecs/src/maps/map_jisx0208.h Index: map_jisx0208.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_jisx0208.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_jisx0208.h 17 May 2003 20:58:58 -0000 1.3 +++ map_jisx0208.h 6 Jul 2003 23:28:10 -0000 1.4 @@ -1,8 +1,8 @@ /* - * $Id: map_jisx0208.h,v 1.3 2003/05/17 20:58:58 perky Exp $ + * $Id: map_jisx0208.h,v 1.4 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __jisx0208_decmap[6956] = { +static const ucs2_t __jisx0208_decmap[6956] = { 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b, 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e, 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd, 1.4 +2 -2 cjkcodecs/src/maps/map_jisx0212.h Index: map_jisx0212.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_jisx0212.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_jisx0212.h 17 May 2003 20:58:58 -0000 1.3 +++ map_jisx0212.h 6 Jul 2003 23:28:10 -0000 1.4 @@ -1,8 +1,8 @@ /* - * $Id: map_jisx0212.h,v 1.3 2003/05/17 20:58:58 perky Exp $ + * $Id: map_jisx0212.h,v 1.4 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __jisx0212_decmap[6179] = { +static const ucs2_t __jisx0212_decmap[6179] = { 0x02d8, 0x02c7, 0x00b8, 0x02d9, 0x02dd, 0x00af, 0x02db, 0x02da, 0x007e, 0x0384, 0x0385, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x00a1, 0x00a6, 0x00bf, UNIINV, UNIINV, 1.5 +1 -1 cjkcodecs/src/maps/map_jisxcommon.h Index: map_jisxcommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_jisxcommon.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- map_jisxcommon.h 17 May 2003 21:17:16 -0000 1.4 +++ map_jisxcommon.h 6 Jul 2003 23:28:10 -0000 1.5 @@ -1,5 +1,5 @@ /* - * $Id: map_jisxcommon.h,v 1.4 2003/05/17 21:17:16 perky Exp $ + * $Id: map_jisxcommon.h,v 1.5 2003/07/06 23:28:10 perky Exp $ */ static const DBCHAR __jisxcommon_encmap[22016] = { 1.4 +2 -2 cjkcodecs/src/maps/map_ksx1001.h Index: map_ksx1001.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/maps/map_ksx1001.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_ksx1001.h 17 May 2003 20:58:58 -0000 1.3 +++ map_ksx1001.h 6 Jul 2003 23:28:10 -0000 1.4 @@ -1,8 +1,8 @@ /* - * $Id: map_ksx1001.h,v 1.3 2003/05/17 20:58:58 perky Exp $ + * $Id: map_ksx1001.h,v 1.4 2003/07/06 23:28:10 perky Exp $ */ -static const Py_UNICODE __ksx1001_decmap[8264] = { +static const ucs2_t __ksx1001_decmap[8264] = { 0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003, 0x00ad, 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c, 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, |
From: Hye-Shik C. <pe...@us...> - 2003-07-06 23:28:11
|
perky 03/07/06 16:28:09 Modified: src cjkcommon.h Log: Change maps' internal unicode type to ucs2_t. Revision Changes Path 1.10 +15 -10 cjkcodecs/src/cjkcommon.h Index: cjkcommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/cjkcommon.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- cjkcommon.h 20 Jun 2003 17:22:59 -0000 1.9 +++ cjkcommon.h 6 Jul 2003 23:28:09 -0000 1.10 @@ -26,25 +26,36 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: cjkcommon.h,v 1.9 2003/06/20 17:22:59 perky Exp $ + * $Id: cjkcommon.h,v 1.10 2003/07/06 23:28:09 perky Exp $ */ #ifndef _CJKCOMMON_H_ #define _CJKCOMMON_H_ -typedef unsigned short DBCHAR; +#ifdef uint32_t +typedef uint32_t ucs4_t; +#else +typedef unsigned int ucs4_t; +#endif + +#ifdef uint16_t +typedef uint16_t ucs2_t, DBCHAR; +#else +typedef unsigned short ucs2_t, DBCHAR; +#endif + #define UNIINV Py_UNICODE_REPLACEMENT_CHARACTER #define NOCHAR 0xFFFF #define DBCINV 0xFFFD struct dbcs_index { - const Py_UNICODE *map; + const ucs2_t *map; unsigned char bottom, top; }; typedef struct dbcs_index decode_map; struct unim_index { - const DBCHAR *map; + const DBCHAR *map; unsigned char bottom, top; }; typedef struct unim_index encode_map; @@ -54,12 +65,6 @@ const struct unim_index *encmap; const struct dbcs_index *decmap; }; - -#ifdef uint32_t -typedef uint32_t ucs4_t; -#else -typedef unsigned int ucs4_t; -#endif #endif |
From: Hye-Shik C. <pe...@us...> - 2003-07-06 23:19:32
|
perky 03/07/06 16:19:26 Modified: tools genmap_support.py Log: - Change internal unicode type from Py_UNICODE to ucs2_t (we use only ucs2 range of Py_UNICODE even on ucs4 python) - Seek from first of maps Revision Changes Path 1.9 +5 -3 cjkcodecs/tools/genmap_support.py Index: genmap_support.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_support.py,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- genmap_support.py 6 Jul 2003 18:44:41 -0000 1.8 +++ genmap_support.py 6 Jul 2003 23:19:26 -0000 1.9 @@ -26,14 +26,14 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_support.py,v 1.8 2003/07/06 18:44:41 perky Exp $ +# $Id: genmap_support.py,v 1.9 2003/07/06 23:19:26 perky Exp $ # import re COPYRIGHT_HEADER = """\ /* - * $Id: genmap_support.py,v 1.8 2003/07/06 18:44:41 perky Exp $ + * $Id: genmap_support.py,v 1.9 2003/07/06 23:19:26 perky Exp $ */ """ @@ -113,7 +113,7 @@ codebunch.append('UNIINV,') def print_decmap(fo, codebunch, fmapprefix, fmap, f2map={}, f2mapprefix=''): - print >> fo, ("static const Py_UNICODE __%s_decmap[%d] = {" % ( + print >> fo, ("static const ucs2_t __%s_decmap[%d] = {" % ( fmapprefix, len(codebunch))) i = 0 while i < len(codebunch): @@ -141,6 +141,8 @@ print >> fo def loadmap(fo, natcol=0, unicol=1, sbcs=0): + print "Loading from", fo + fo.seek(0, 0) decmap = {} for line in fo: line = line.split('#', 1)[0].strip() |
From: Hye-Shik C. <pe...@us...> - 2003-07-06 22:44:24
|
perky 03/07/06 15:44:22 Added: tools jisx0213-2000-std.txt.diff Log: Add JIS X 0208 consistency patch for JIS X 0213 mapping table. Revision Changes Path 1.1 cjkcodecs/tools/jisx0213-2000-std.txt.diff Index: jisx0213-2000-std.txt.diff =================================================================== --- jisx0213-2000-std.txt.orig Tue Apr 16 23:32:38 2002 +++ jisx0213-2000-std.txt Mon Jul 7 07:42:36 2003 @@ -23,21 +23,21 @@ 3-2121 U+3000 # IDEOGRAPHIC SPACE 3-2122 U+3001 # IDEOGRAPHIC COMMA 3-2123 U+3002 # IDEOGRAPHIC FULL STOP -3-2124 U+002C # COMMA Fullwidth: U+FF0C -3-2125 U+002E # FULL STOP Fullwidth: U+FF0E +3-2124 U+FF0C # COMMA Fullwidth: U+FF0C +3-2125 U+FF0E # FULL STOP Fullwidth: U+FF0E 3-2126 U+30FB # KATAKANA MIDDLE DOT -3-2127 U+003A # COLON Fullwidth: U+FF1A -3-2128 U+003B # SEMICOLON Fullwidth: U+FF1B -3-2129 U+003F # QUESTION MARK Fullwidth: U+FF1F -3-212A U+0021 # EXCLAMATION MARK Fullwidth: U+FF01 +3-2127 U+FF1A # COLON Fullwidth: U+FF1A +3-2128 U+FF1B # SEMICOLON Fullwidth: U+FF1B +3-2129 U+FF1F # QUESTION MARK Fullwidth: U+FF1F +3-212A U+FF01 # EXCLAMATION MARK Fullwidth: U+FF01 3-212B U+309B # KATAKANA-HIRAGANA VOICED SOUND MARK 3-212C U+309C # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK 3-212D U+00B4 # ACUTE ACCENT -3-212E U+0060 # GRAVE ACCENT Fullwidth: U+FF40 +3-212E U+FF40 # GRAVE ACCENT Fullwidth: U+FF40 3-212F U+00A8 # DIAERESIS -3-2130 U+005E # CIRCUMFLEX ACCENT Fullwidth: U+FF3E -3-2131 U+203E # OVERLINE Windows: U+FFE3 -3-2132 U+005F # LOW LINE Fullwidth: U+FF3F +3-2130 U+FF3E # CIRCUMFLEX ACCENT Fullwidth: U+FF3E +3-2131 U+FFE3 # OVERLINE Windows: U+FFE3 +3-2132 U+FF3F # LOW LINE Fullwidth: U+FF3F 3-2133 U+30FD # KATAKANA ITERATION MARK 3-2134 U+30FE # KATAKANA VOICED ITERATION MARK 3-2135 U+309D # HIRAGANA ITERATION MARK @@ -48,27 +48,27 @@ 3-213A U+3006 # IDEOGRAPHIC CLOSING MARK 3-213B U+3007 # IDEOGRAPHIC NUMBER ZERO 3-213C U+30FC # KATAKANA-HIRAGANA PROLONGED SOUND MARK -3-213D U+2014 # EM DASH Windows: U+2015 +3-213D U+2015 # EM DASH Windows: U+2015 3-213E U+2010 # HYPHEN -3-213F U+002F # SOLIDUS Fullwidth: U+FF0F +3-213F U+FF0F # SOLIDUS Fullwidth: U+FF0F 3-2140 U+005C # REVERSE SOLIDUS Fullwidth: U+FF3C 3-2141 U+301C # WAVE DASH Windows: U+FF5E 3-2142 U+2016 # DOUBLE VERTICAL LINE Windows: U+2225 -3-2143 U+007C # VERTICAL LINE Fullwidth: U+FF5C +3-2143 U+FF5C # VERTICAL LINE Fullwidth: U+FF5C 3-2144 U+2026 # HORIZONTAL ELLIPSIS 3-2145 U+2025 # TWO DOT LEADER 3-2146 U+2018 # LEFT SINGLE QUOTATION MARK 3-2147 U+2019 # RIGHT SINGLE QUOTATION MARK 3-2148 U+201C # LEFT DOUBLE QUOTATION MARK 3-2149 U+201D # RIGHT DOUBLE QUOTATION MARK -3-214A U+0028 # LEFT PARENTHESIS Fullwidth: U+FF08 -3-214B U+0029 # RIGHT PARENTHESIS Fullwidth: U+FF09 +3-214A U+FF08 # LEFT PARENTHESIS Fullwidth: U+FF08 +3-214B U+FF09 # RIGHT PARENTHESIS Fullwidth: U+FF09 3-214C U+3014 # LEFT TORTOISE SHELL BRACKET 3-214D U+3015 # RIGHT TORTOISE SHELL BRACKET -3-214E U+005B # LEFT SQUARE BRACKET Fullwidth: U+FF3B -3-214F U+005D # RIGHT SQUARE BRACKET Fullwidth: U+FF3D -3-2150 U+007B # LEFT CURLY BRACKET Fullwidth: U+FF5B -3-2151 U+007D # RIGHT CURLY BRACKET Fullwidth: U+FF5D +3-214E U+FF3B # LEFT SQUARE BRACKET Fullwidth: U+FF3B +3-214F U+FF3D # RIGHT SQUARE BRACKET Fullwidth: U+FF3D +3-2150 U+FF5B # LEFT CURLY BRACKET Fullwidth: U+FF5B +3-2151 U+FF5D # RIGHT CURLY BRACKET Fullwidth: U+FF5D 3-2152 U+3008 # LEFT ANGLE BRACKET 3-2153 U+3009 # RIGHT ANGLE BRACKET 3-2154 U+300A # LEFT DOUBLE ANGLE BRACKET @@ -79,15 +79,15 @@ 3-2159 U+300F # RIGHT WHITE CORNER BRACKET 3-215A U+3010 # LEFT BLACK LENTICULAR BRACKET 3-215B U+3011 # RIGHT BLACK LENTICULAR BRACKET -3-215C U+002B # PLUS SIGN Fullwidth: U+FF0B +3-215C U+FF0B # PLUS SIGN Fullwidth: U+FF0B 3-215D U+2212 # MINUS SIGN Windows: U+FF0D 3-215E U+00B1 # PLUS-MINUS SIGN 3-215F U+00D7 # MULTIPLICATION SIGN 3-2160 U+00F7 # DIVISION SIGN -3-2161 U+003D # EQUALS SIGN Fullwidth: U+FF1D +3-2161 U+FF1D # EQUALS SIGN Fullwidth: U+FF1D 3-2162 U+2260 # NOT EQUAL TO -3-2163 U+003C # LESS-THAN SIGN Fullwidth: U+FF1C -3-2164 U+003E # GREATER-THAN SIGN Fullwidth: U+FF1E +3-2163 U+FF1C # LESS-THAN SIGN Fullwidth: U+FF1C +3-2164 U+FF1E # GREATER-THAN SIGN Fullwidth: U+FF1E 3-2165 U+2266 # LESS-THAN OVER EQUAL TO 3-2166 U+2267 # GREATER-THAN OVER EQUAL TO 3-2167 U+221E # INFINITY @@ -98,15 +98,15 @@ 3-216C U+2032 # PRIME 3-216D U+2033 # DOUBLE PRIME 3-216E U+2103 # DEGREE CELSIUS -3-216F U+00A5 # YEN SIGN Windows: U+FFE5 -3-2170 U+0024 # DOLLAR SIGN Fullwidth: U+FF04 +3-216F U+FFE5 # YEN SIGN Windows: U+FFE5 +3-2170 U+FF04 # DOLLAR SIGN Fullwidth: U+FF04 3-2171 U+00A2 # CENT SIGN Windows: U+FFE0 3-2172 U+00A3 # POUND SIGN Windows: U+FFE1 -3-2173 U+0025 # PERCENT SIGN Fullwidth: U+FF05 -3-2174 U+0023 # NUMBER SIGN Fullwidth: U+FF03 -3-2175 U+0026 # AMPERSAND Fullwidth: U+FF06 -3-2176 U+002A # ASTERISK Fullwidth: U+FF0A -3-2177 U+0040 # COMMERCIAL AT Fullwidth: U+FF20 +3-2173 U+FF05 # PERCENT SIGN Fullwidth: U+FF05 +3-2174 U+FF03 # NUMBER SIGN Fullwidth: U+FF03 +3-2175 U+FF06 # AMPERSAND Fullwidth: U+FF06 +3-2176 U+FF0A # ASTERISK Fullwidth: U+FF0A +3-2177 U+FF20 # COMMERCIAL AT Fullwidth: U+FF20 3-2178 U+00A7 # SECTION SIGN 3-2179 U+2606 # WHITE STAR 3-217A U+2605 # BLACK STAR @@ -223,16 +223,16 @@ 3-232D U+21E9 # DOWNWARDS WHITE ARROW [2000] 3-232E U+2934 # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS [2000] [Unicode3.2] 3-232F U+2935 # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS [2000] [Unicode3.2] -3-2330 U+0030 # DIGIT ZERO Fullwidth: U+FF10 -3-2331 U+0031 # DIGIT ONE Fullwidth: U+FF11 -3-2332 U+0032 # DIGIT TWO Fullwidth: U+FF12 -3-2333 U+0033 # DIGIT THREE Fullwidth: U+FF13 -3-2334 U+0034 # DIGIT FOUR Fullwidth: U+FF14 -3-2335 U+0035 # DIGIT FIVE Fullwidth: U+FF15 -3-2336 U+0036 # DIGIT SIX Fullwidth: U+FF16 -3-2337 U+0037 # DIGIT SEVEN Fullwidth: U+FF17 -3-2338 U+0038 # DIGIT EIGHT Fullwidth: U+FF18 -3-2339 U+0039 # DIGIT NINE Fullwidth: U+FF19 +3-2330 U+FF10 # DIGIT ZERO Fullwidth: U+FF10 +3-2331 U+FF11 # DIGIT ONE Fullwidth: U+FF11 +3-2332 U+FF12 # DIGIT TWO Fullwidth: U+FF12 +3-2333 U+FF13 # DIGIT THREE Fullwidth: U+FF13 +3-2334 U+FF14 # DIGIT FOUR Fullwidth: U+FF14 +3-2335 U+FF15 # DIGIT FIVE Fullwidth: U+FF15 +3-2336 U+FF16 # DIGIT SIX Fullwidth: U+FF16 +3-2337 U+FF17 # DIGIT SEVEN Fullwidth: U+FF17 +3-2338 U+FF18 # DIGIT EIGHT Fullwidth: U+FF18 +3-2339 U+FF19 # DIGIT NINE Fullwidth: U+FF19 3-233A U+29BF # CIRCLED BULLET [2000] [Unicode3.2] 3-233B U+25C9 # FISHEYE [2000] 3-233C U+303D # PART ALTERNATION MARK [2000] [Unicode3.2] @@ -240,64 +240,64 @@ 3-233E U+FE45 # SESAME DOT [2000] [Unicode3.2] 3-233F U+25E6 # WHITE BULLET [2000] 3-2340 U+2022 # BULLET [2000] -3-2341 U+0041 # LATIN CAPITAL LETTER A Fullwidth: U+FF21 -3-2342 U+0042 # LATIN CAPITAL LETTER B Fullwidth: U+FF22 -3-2343 U+0043 # LATIN CAPITAL LETTER C Fullwidth: U+FF23 -3-2344 U+0044 # LATIN CAPITAL LETTER D Fullwidth: U+FF24 -3-2345 U+0045 # LATIN CAPITAL LETTER E Fullwidth: U+FF25 -3-2346 U+0046 # LATIN CAPITAL LETTER F Fullwidth: U+FF26 -3-2347 U+0047 # LATIN CAPITAL LETTER G Fullwidth: U+FF27 -3-2348 U+0048 # LATIN CAPITAL LETTER H Fullwidth: U+FF28 -3-2349 U+0049 # LATIN CAPITAL LETTER I Fullwidth: U+FF29 -3-234A U+004A # LATIN CAPITAL LETTER J Fullwidth: U+FF2A -3-234B U+004B # LATIN CAPITAL LETTER K Fullwidth: U+FF2B -3-234C U+004C # LATIN CAPITAL LETTER L Fullwidth: U+FF2C -3-234D U+004D # LATIN CAPITAL LETTER M Fullwidth: U+FF2D -3-234E U+004E # LATIN CAPITAL LETTER N Fullwidth: U+FF2E -3-234F U+004F # LATIN CAPITAL LETTER O Fullwidth: U+FF2F -3-2350 U+0050 # LATIN CAPITAL LETTER P Fullwidth: U+FF30 -3-2351 U+0051 # LATIN CAPITAL LETTER Q Fullwidth: U+FF31 -3-2352 U+0052 # LATIN CAPITAL LETTER R Fullwidth: U+FF32 -3-2353 U+0053 # LATIN CAPITAL LETTER S Fullwidth: U+FF33 -3-2354 U+0054 # LATIN CAPITAL LETTER T Fullwidth: U+FF34 -3-2355 U+0055 # LATIN CAPITAL LETTER U Fullwidth: U+FF35 -3-2356 U+0056 # LATIN CAPITAL LETTER V Fullwidth: U+FF36 -3-2357 U+0057 # LATIN CAPITAL LETTER W Fullwidth: U+FF37 -3-2358 U+0058 # LATIN CAPITAL LETTER X Fullwidth: U+FF38 -3-2359 U+0059 # LATIN CAPITAL LETTER Y Fullwidth: U+FF39 -3-235A U+005A # LATIN CAPITAL LETTER Z Fullwidth: U+FF3A +3-2341 U+FF21 # LATIN CAPITAL LETTER A Fullwidth: U+FF21 +3-2342 U+FF22 # LATIN CAPITAL LETTER B Fullwidth: U+FF22 +3-2343 U+FF23 # LATIN CAPITAL LETTER C Fullwidth: U+FF23 +3-2344 U+FF24 # LATIN CAPITAL LETTER D Fullwidth: U+FF24 +3-2345 U+FF25 # LATIN CAPITAL LETTER E Fullwidth: U+FF25 +3-2346 U+FF26 # LATIN CAPITAL LETTER F Fullwidth: U+FF26 +3-2347 U+FF27 # LATIN CAPITAL LETTER G Fullwidth: U+FF27 +3-2348 U+FF28 # LATIN CAPITAL LETTER H Fullwidth: U+FF28 +3-2349 U+FF29 # LATIN CAPITAL LETTER I Fullwidth: U+FF29 +3-234A U+FF2A # LATIN CAPITAL LETTER J Fullwidth: U+FF2A +3-234B U+FF2B # LATIN CAPITAL LETTER K Fullwidth: U+FF2B +3-234C U+FF2C # LATIN CAPITAL LETTER L Fullwidth: U+FF2C +3-234D U+FF2D # LATIN CAPITAL LETTER M Fullwidth: U+FF2D +3-234E U+FF2E # LATIN CAPITAL LETTER N Fullwidth: U+FF2E +3-234F U+FF2F # LATIN CAPITAL LETTER O Fullwidth: U+FF2F +3-2350 U+FF30 # LATIN CAPITAL LETTER P Fullwidth: U+FF30 +3-2351 U+FF31 # LATIN CAPITAL LETTER Q Fullwidth: U+FF31 +3-2352 U+FF32 # LATIN CAPITAL LETTER R Fullwidth: U+FF32 +3-2353 U+FF33 # LATIN CAPITAL LETTER S Fullwidth: U+FF33 +3-2354 U+FF34 # LATIN CAPITAL LETTER T Fullwidth: U+FF34 +3-2355 U+FF35 # LATIN CAPITAL LETTER U Fullwidth: U+FF35 +3-2356 U+FF36 # LATIN CAPITAL LETTER V Fullwidth: U+FF36 +3-2357 U+FF37 # LATIN CAPITAL LETTER W Fullwidth: U+FF37 +3-2358 U+FF38 # LATIN CAPITAL LETTER X Fullwidth: U+FF38 +3-2359 U+FF39 # LATIN CAPITAL LETTER Y Fullwidth: U+FF39 +3-235A U+FF3A # LATIN CAPITAL LETTER Z Fullwidth: U+FF3A 3-235B U+2213 # MINUS-OR-PLUS SIGN [2000] 3-235C U+2135 # ALEF SYMBOL [2000] 3-235D U+210F # PLANCK CONSTANT OVER TWO PI [2000] 3-235E U+33CB # SQUARE HP [2000] 3-235F U+2113 # SCRIPT SMALL L [2000] 3-2360 U+2127 # INVERTED OHM SIGN [2000] -3-2361 U+0061 # LATIN SMALL LETTER A Fullwidth: U+FF41 -3-2362 U+0062 # LATIN SMALL LETTER B Fullwidth: U+FF42 -3-2363 U+0063 # LATIN SMALL LETTER C Fullwidth: U+FF43 -3-2364 U+0064 # LATIN SMALL LETTER D Fullwidth: U+FF44 -3-2365 U+0065 # LATIN SMALL LETTER E Fullwidth: U+FF45 -3-2366 U+0066 # LATIN SMALL LETTER F Fullwidth: U+FF46 -3-2367 U+0067 # LATIN SMALL LETTER G Fullwidth: U+FF47 -3-2368 U+0068 # LATIN SMALL LETTER H Fullwidth: U+FF48 -3-2369 U+0069 # LATIN SMALL LETTER I Fullwidth: U+FF49 -3-236A U+006A # LATIN SMALL LETTER J Fullwidth: U+FF4A -3-236B U+006B # LATIN SMALL LETTER K Fullwidth: U+FF4B -3-236C U+006C # LATIN SMALL LETTER L Fullwidth: U+FF4C -3-236D U+006D # LATIN SMALL LETTER M Fullwidth: U+FF4D -3-236E U+006E # LATIN SMALL LETTER N Fullwidth: U+FF4E -3-236F U+006F # LATIN SMALL LETTER O Fullwidth: U+FF4F -3-2370 U+0070 # LATIN SMALL LETTER P Fullwidth: U+FF50 -3-2371 U+0071 # LATIN SMALL LETTER Q Fullwidth: U+FF51 -3-2372 U+0072 # LATIN SMALL LETTER R Fullwidth: U+FF52 -3-2373 U+0073 # LATIN SMALL LETTER S Fullwidth: U+FF53 -3-2374 U+0074 # LATIN SMALL LETTER T Fullwidth: U+FF54 -3-2375 U+0075 # LATIN SMALL LETTER U Fullwidth: U+FF55 -3-2376 U+0076 # LATIN SMALL LETTER V Fullwidth: U+FF56 -3-2377 U+0077 # LATIN SMALL LETTER W Fullwidth: U+FF57 -3-2378 U+0078 # LATIN SMALL LETTER X Fullwidth: U+FF58 -3-2379 U+0079 # LATIN SMALL LETTER Y Fullwidth: U+FF59 -3-237A U+007A # LATIN SMALL LETTER Z Fullwidth: U+FF5A +3-2361 U+FF41 # LATIN SMALL LETTER A Fullwidth: U+FF41 +3-2362 U+FF42 # LATIN SMALL LETTER B Fullwidth: U+FF42 +3-2363 U+FF43 # LATIN SMALL LETTER C Fullwidth: U+FF43 +3-2364 U+FF44 # LATIN SMALL LETTER D Fullwidth: U+FF44 +3-2365 U+FF45 # LATIN SMALL LETTER E Fullwidth: U+FF45 +3-2366 U+FF46 # LATIN SMALL LETTER F Fullwidth: U+FF46 +3-2367 U+FF47 # LATIN SMALL LETTER G Fullwidth: U+FF47 +3-2368 U+FF48 # LATIN SMALL LETTER H Fullwidth: U+FF48 +3-2369 U+FF49 # LATIN SMALL LETTER I Fullwidth: U+FF49 +3-236A U+FF4A # LATIN SMALL LETTER J Fullwidth: U+FF4A +3-236B U+FF4B # LATIN SMALL LETTER K Fullwidth: U+FF4B +3-236C U+FF4C # LATIN SMALL LETTER L Fullwidth: U+FF4C +3-236D U+FF4D # LATIN SMALL LETTER M Fullwidth: U+FF4D +3-236E U+FF4E # LATIN SMALL LETTER N Fullwidth: U+FF4E +3-236F U+FF4F # LATIN SMALL LETTER O Fullwidth: U+FF4F +3-2370 U+FF50 # LATIN SMALL LETTER P Fullwidth: U+FF50 +3-2371 U+FF51 # LATIN SMALL LETTER Q Fullwidth: U+FF51 +3-2372 U+FF52 # LATIN SMALL LETTER R Fullwidth: U+FF52 +3-2373 U+FF53 # LATIN SMALL LETTER S Fullwidth: U+FF53 +3-2374 U+FF54 # LATIN SMALL LETTER T Fullwidth: U+FF54 +3-2375 U+FF55 # LATIN SMALL LETTER U Fullwidth: U+FF55 +3-2376 U+FF56 # LATIN SMALL LETTER V Fullwidth: U+FF56 +3-2377 U+FF57 # LATIN SMALL LETTER W Fullwidth: U+FF57 +3-2378 U+FF58 # LATIN SMALL LETTER X Fullwidth: U+FF58 +3-2379 U+FF59 # LATIN SMALL LETTER Y Fullwidth: U+FF59 +3-237A U+FF5A # LATIN SMALL LETTER Z Fullwidth: U+FF5A 3-237B U+30A0 # KATAKANA-HIRAGANA DOUBLE HYPHEN [2000] [Unicode3.2] 3-237C U+2013 # EN DASH [2000] 3-237D U+29FA # DOUBLE PLUS [2000] [Unicode3.2] |
From: Hye-Shik C. <pe...@us...> - 2003-07-06 18:44:42
|
perky 03/07/06 11:44:41 Modified: tools genmap_support.py Log: Remove needless old code Revision Changes Path 1.8 +2 -6 cjkcodecs/tools/genmap_support.py Index: genmap_support.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_support.py,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- genmap_support.py 10 Jun 2003 11:12:12 -0000 1.7 +++ genmap_support.py 6 Jul 2003 18:44:41 -0000 1.8 @@ -26,14 +26,14 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_support.py,v 1.7 2003/06/10 11:12:12 perky Exp $ +# $Id: genmap_support.py,v 1.8 2003/07/06 18:44:41 perky Exp $ # import re COPYRIGHT_HEADER = """\ /* - * $Id: genmap_support.py,v 1.7 2003/06/10 11:12:12 perky Exp $ + * $Id: genmap_support.py,v 1.8 2003/07/06 18:44:41 perky Exp $ */ """ @@ -141,10 +141,6 @@ print >> fo def loadmap(fo, natcol=0, unicol=1, sbcs=0): - fo.seek(0, 0) - head = fo.read(1024) - - fo.seek(0, 0) decmap = {} for line in fo: line = line.split('#', 1)[0].strip() |
From: Hye-Shik C. <pe...@us...> - 2003-07-06 17:32:26
|
perky 03/07/06 10:32:25 Modified: src iso2022common.h Log: Enable G2,G3 designation by utilizing state->c. Revision Changes Path 1.2 +29 -18 cjkcodecs/src/iso2022common.h Index: iso2022common.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/iso2022common.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- iso2022common.h 2 Jun 2003 07:39:22 -0000 1.1 +++ iso2022common.h 6 Jul 2003 17:32:25 -0000 1.2 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: iso2022common.h,v 1.1 2003/06/02 07:39:22 perky Exp $ + * $Id: iso2022common.h,v 1.2 2003/07/06 17:32:25 perky Exp $ */ /* This ISO-2022 implementation is intended to comply ECMA-43 Level 1 @@ -47,14 +47,19 @@ /* STATE - 00000000 00000000 00000000 - || ||^^^^^| ||^^^^^| - || || | |+-----+---- G0 Character Set - || || | +----------- Is G0 double byte? - || |+-----+------------- G1 Character Set - || +-------------------- Is G1 double byte? - |+---------------------- Shifted in? - +----------------------- ESC Throughout + state->c[0-3] + + 00000000 + ||^^^^^| + |+-----+---- G0-3 Character Set + +----------- Is G0-3 double byte? + + state->c[4] + + 00000000 + || + |+---- Locked-Shift? + +----- ESC Throughout */ #define CHARSET_DOUBLEBYTE 0x80 @@ -77,18 +82,24 @@ #define CHARSET_DESIGN(c) ((c) & 0x7f) #define CHARSET_ISDBCS(c) ((c) & 0x80) -#define F_SHIFTED 0x010000 -#define F_ESCTHROUGHOUT 0x020000 +#define F_SHIFTED 0x01 +#define F_ESCTHROUGHOUT 0x02 + +#define STATE_SETG0(s, v) ((s)->c[0]) = (v); +#define STATE_GETG0(s) ((s)->c[0]) + +#define STATE_SETG1(s, v) ((s)->c[1]) = (v); +#define STATE_GETG1(s) ((s)->c[1]) -#define STATE_SETG0(s, v) ((s)->i) = (((s)->i) & ~0x0000ff) | (v); -#define STATE_GETG0(s) ((s)->i & 0x0000ff) +#define STATE_SETG2(s, v) ((s)->c[2]) = (v); +#define STATE_GETG2(s) ((s)->c[2]) -#define STATE_SETG1(s, v) ((s)->i) = (((s)->i) & ~0x00ff00) | ((v) << 8); -#define STATE_GETG1(s) (((s)->i & 0x00ff00) >> 8) +#define STATE_SETG3(s, v) ((s)->c[3]) = (v); +#define STATE_GETG3(s) ((s)->c[3]) -#define STATE_SETFLAG(s, f) ((s)->i) |= (f); -#define STATE_GETFLAG(s, f) ((s)->i & (f)) -#define STATE_CLEARFLAG(s, f) ((s)->i) &= ~(f); +#define STATE_SETFLAG(s, f) ((s)->c[4]) |= (f); +#define STATE_GETFLAG(s, f) ((s)->c[4] & (f)) +#define STATE_CLEARFLAG(s, f) ((s)->c[4]) &= ~(f); static int iso2022esclen(const unsigned char *s, size_t len) |
From: Hye-Shik C. <pe...@us...> - 2003-07-06 10:30:27
|
perky 03/07/06 03:30:26 Modified: tests test_encoding_euc_jp.py Log: *) EUC-JP codec's mapping for 0xA1C0 is changed from U+005C to U+FF3C because EUC-JP 0x5C is also a REVERSE SOLIDUS and 0xA1C0 is FULLWIDTH REVERSE SOLIDUS on japanese environments. Revision Changes Path 1.4 +2 -1 cjkcodecs/tests/test_encoding_euc_jp.py Index: test_encoding_euc_jp.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tests/test_encoding_euc_jp.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- test_encoding_euc_jp.py 6 Jun 2003 05:55:31 -0000 1.3 +++ test_encoding_euc_jp.py 6 Jul 2003 10:30:26 -0000 1.4 @@ -27,7 +27,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: test_encoding_euc_jp.py,v 1.3 2003/06/06 05:55:31 perky Exp $ +# $Id: test_encoding_euc_jp.py,v 1.4 2003/07/06 10:30:26 perky Exp $ # from test import test_support @@ -46,6 +46,7 @@ ("abc\x80\x80\xc1\xc4", "ignore", u"abc\u7956"), ("abc\x8f\x83\x83", "replace", u"abc\ufffd"), ("\xc1\x64", "strict", None), + ("\xa1\xc0", "strict", u"\uff3c"), ) def test_main(): |
From: Hye-Shik C. <pe...@us...> - 2003-07-06 10:30:27
|
perky 03/07/06 03:30:26 Modified: src _euc_jp.c Log: *) EUC-JP codec's mapping for 0xA1C0 is changed from U+005C to U+FF3C because EUC-JP 0x5C is also a REVERSE SOLIDUS and 0xA1C0 is FULLWIDTH REVERSE SOLIDUS on japanese environments. Revision Changes Path 1.4 +6 -3 cjkcodecs/src/_euc_jp.c Index: _euc_jp.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/_euc_jp.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- _euc_jp.c 31 May 2003 11:50:19 -0000 1.3 +++ _euc_jp.c 6 Jul 2003 10:30:26 -0000 1.4 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: _euc_jp.c,v 1.3 2003/05/31 11:50:19 perky Exp $ + * $Id: _euc_jp.c,v 1.4 2003/07/06 10:30:26 perky Exp $ */ #include "codeccommon.h" @@ -73,7 +73,9 @@ (*outbuf)[2] = (Py_UNICODE)(c - 0xe3ac) % 94 + 0xa1; NEXT(1, 3) continue; - } else + } else if (c == 0xff3c) /* F/W REVERSE SOLIDUS (see NOTES.euc-jp) */ + code = 0x2140; + else return 1; if (code & 0x8000) { @@ -143,7 +145,8 @@ c2 = (*inbuf)[1]; if (c < 0xf5) { /* JIS X 0208 */ - TRYMAP_DEC(jisx0208, **outbuf, c ^ 0x80, c2 ^ 0x80); + if (c == 0xa1 && c2 == 0xc0) **outbuf = 0xff3c; + else TRYMAP_DEC(jisx0208, **outbuf, c ^ 0x80, c2 ^ 0x80); else return 2; } else { /* User-defined area 1 */ |
From: Hye-Shik C. <pe...@us...> - 2003-07-06 10:30:27
|
perky 03/07/06 03:30:26 Modified: . CHANGES Added: . NOTES.euc-jp Log: *) EUC-JP codec's mapping for 0xA1C0 is changed from U+005C to U+FF3C because EUC-JP 0x5C is also a REVERSE SOLIDUS and 0xA1C0 is FULLWIDTH REVERSE SOLIDUS on japanese environments. Revision Changes Path 1.9 +4 -0 cjkcodecs/CHANGES Index: CHANGES =================================================================== RCS file: /cvsroot/koco/cjkcodecs/CHANGES,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- CHANGES 5 Jul 2003 19:49:02 -0000 1.8 +++ CHANGES 6 Jul 2003 10:30:26 -0000 1.9 @@ -29,3 +29,7 @@ (this feature is used for surrogate-pair and mapping from unicode character with a following modifier) + *) EUC-JP codec's mapping for 0xA1C0 is changed from U+005C to + U+FF3C because EUC-JP 0x5C is also a REVERSE SOLIDUS and 0xA1C0 is + FULLWIDTH REVERSE SOLIDUS on japanese environments. + 1.1 cjkcodecs/NOTES.euc-jp Index: NOTES.euc-jp =================================================================== euc-jp codec maps JIS X 0208 code 0x2140 into unicode U+FF3C instead of U+005C as on unicode.org's mapping. Because euc-jp has REVERSE SOLIDUS on 0x5c already and A140 is shown as a full width character, mapping to U+FF3C can make more sense. |