--- a/Modules/cjkcodecs/_codecs_cn.c +++ b/Modules/cjkcodecs/_codecs_cn.c @@ -15,25 +15,9 @@ #undef hz #endif -/* GBK and GB2312 map differently in few code points that are listed below: - * - * gb2312 gbk - * A1A4 U+30FB KATAKANA MIDDLE DOT U+00B7 MIDDLE DOT - * A1AA U+2015 HORIZONTAL BAR U+2014 EM DASH - * A844 undefined U+2015 HORIZONTAL BAR - */ #define GBK_DECODE(dc1, dc2, writer) \ - if ((dc1) == 0xa1 && (dc2) == 0xaa) { \ - OUTCHAR(0x2014); \ - } \ - else if ((dc1) == 0xa8 && (dc2) == 0x44) { \ - OUTCHAR(0x2015); \ - } \ - else if ((dc1) == 0xa1 && (dc2) == 0xa4) { \ - OUTCHAR(0x00b7); \ - } \ - else if (TRYMAP_DEC(gb2312, decoded, dc1 ^ 0x80, dc2 ^ 0x80)) { \ + if (TRYMAP_DEC(gb2312, decoded, dc1 ^ 0x80, dc2 ^ 0x80)) { \ OUTCHAR(decoded); \ } \ else if (TRYMAP_DEC(gbkext, decoded, dc1, dc2)) { \ @@ -41,13 +25,7 @@ } #define GBK_ENCODE(code, assi) \ - if ((code) == 0x2014) { \ - (assi) = 0xa1aa; \ - } else if ((code) == 0x2015) { \ - (assi) = 0xa844; \ - } else if ((code) == 0x00b7) { \ - (assi) = 0xa1a4; \ - } else if ((code) != 0x30fb && TRYMAP_ENC(gbcommon, assi, code)) { \ + if (TRYMAP_ENC(gbcommon, assi, code)) { \ ; \ } --- a/Modules/cjkcodecs/mappings_cn.h +++ b/Modules/cjkcodecs/mappings_cn.h @@ -1,5 +1,5 @@ static const ucs2_t __gb2312_decmap[7482] = { -12288,12289,12290,12539,713,711,168,12291,12293,8213,65374,8214,8230,8216, +12288,12289,12290,183,713,711,168,12291,12293,8212,65374,8214,8230,8216, 8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303, 12310,12311,12304,12305,177,215,247,8758,8743,8744,8721,8719,8746,8745,8712, 8759,8730,8869,8741,8736,8978,8857,8747,8750,8801,8780,8776,8765,8733,8800, @@ -1808,7 +1808,7 @@ __gbkext_decmap+14224,64,160},{__gbkext_decmap+143 }; static const DBCHAR __gbcommon_encmap[23231] = { -8552,N,N,8556,8487,N,N,N,N,N,N,N,8547,8512,N,N,N,N,N,41380,N,N,N,N,N,N,N,N,N, +8552,N,N,8556,8487,N,N,N,N,N,N,N,8547,8512,N,N,N,N,N,8612,N,N,N,N,N,N,N,N,N, N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,8513,N,N,N,N,N,N,N,N,10276,10274, N,N,N,N,N,N,10280,10278,10298,N,10284,10282,N,N,N,N,10288,10286,N,N,N,8514,N, 10292,10290,N,10297,10273,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,10277,N,N,N,N,N,N, @@ -1830,7 +1830,7 @@ N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N, 10038,10039,10040,10041,10042,10043,10044,10045,10046,10047,10048,10049,10065, 10066,10067,10068,10069,10070,10072,10073,10074,10075,10076,10077,10078,10079, 10080,10081,10082,10083,10084,10085,10086,10087,10088,10089,10090,10091,10092, -10093,10094,10095,10096,10097,N,10071,43356,N,N,43075,41386,8490,8492,N,8494, +10093,10094,10095,10096,10097,N,10071,43356,N,N,43075,8618,43076,8492,N,8494, 8495,N,N,8496,8497,N,N,N,N,N,N,N,43077,8493,N,N,N,N,N,N,N,N,N,8555,N,8548, 8549,N,43078,N,N,N,N,N,8569,8550,N,43079,N,N,N,43080,N,N,N,N,N,N,N,N,N,N,N,N, 8557,N,N,N,N,N,N,N,N,N,N,43353,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N, @@ -1878,7 +1878,7 @@ N,43361,43362,43366,43367,N,N,9505,9506,9507,9508, 9544,9545,9546,9547,9548,9549,9550,9551,9552,9553,9554,9555,9556,9557,9558, 9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573, 9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9588, -9589,9590,N,N,N,N,8484,43360,43363,43364,10309,10310,10311,10312,10313,10314, +9589,9590,N,N,N,N,N,43360,43363,43364,10309,10310,10311,10312,10313,10314, 10315,10316,10317,10318,10319,10320,10321,10322,10323,10324,10325,10326,10327, 10328,10329,10330,10331,10332,10333,10334,10335,10336,10337,10338,10339,10340, 10341,10342,10343,10344,10345,8805,8806,8807,8808,8809,8810,8811,8812,8813,