]> granicus.if.org Git - python/commitdiff
CJK codecs: use less magic and more readable macros, write explicit if
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 28 Oct 2013 22:54:13 +0000 (23:54 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Mon, 28 Oct 2013 22:54:13 +0000 (23:54 +0100)
Modules/cjkcodecs/_codecs_cn.c
Modules/cjkcodecs/_codecs_hk.c
Modules/cjkcodecs/_codecs_iso2022.c
Modules/cjkcodecs/_codecs_jp.c
Modules/cjkcodecs/_codecs_kr.c
Modules/cjkcodecs/_codecs_tw.c
Modules/cjkcodecs/cjkcodecs.h

index 430ca5c241e4cd040d0c7453250936d0d4003264..3bd3f239fe7632a3ba22a03281ab86a2485b5246 100644 (file)
@@ -36,7 +36,7 @@
     if ((code) == 0x2014) (assi) = 0xa1aa; \
     else if ((code) == 0x2015) (assi) = 0xa844; \
     else if ((code) == 0x00b7) (assi) = 0xa1a4; \
-    else if ((code) != 0x30fb && TRYMAP_ENC_COND(gbcommon, assi, code));
+    else if ((code) != 0x30fb && TRYMAP_ENC(gbcommon, assi, code));
 
 /*
  * GB2312 codec
@@ -58,7 +58,7 @@ ENCODER(gb2312)
             return 1;
 
         REQUIRE_OUTBUF(2)
-        TRYMAP_ENC(gbcommon, code, c);
+        if (TRYMAP_ENC(gbcommon, code, c));
         else return 1;
 
         if (code & 0x8000) /* MSB set: GBK */
@@ -192,7 +192,7 @@ ENCODER(gb18030)
         REQUIRE_OUTBUF(2)
 
         GBK_ENCODE(c, code)
-        else TRYMAP_ENC(gb18030ext, code, c);
+        else if (TRYMAP_ENC(gb18030ext, code, c));
         else {
             const struct _gb18030_to_unibmp_ranges *utrrange;
 
@@ -343,7 +343,7 @@ ENCODER(hz)
         if (c > 0xFFFF)
             return 1;
 
-        TRYMAP_ENC(gbcommon, code, c);
+        if (TRYMAP_ENC(gbcommon, code, c));
         else return 1;
 
         if (code & 0x8000) /* MSB set: GBK */
index cc7627a54dcda075f0b6cf622ff56f12b8ba4ac1..825772e5c604025cedd54f62522644c869169b5f 100644 (file)
@@ -54,7 +54,7 @@ ENCODER(big5hkscs)
         REQUIRE_OUTBUF(2)
 
         if (c < 0x10000) {
-            TRYMAP_ENC(big5hkscs_bmp, code, c) {
+            if (TRYMAP_ENC(big5hkscs_bmp, code, c)) {
                 if (code == MULTIC) {
                     Py_UCS4 c2;
                     if (inlen - *inpos >= 2)
@@ -81,13 +81,13 @@ ENCODER(big5hkscs)
                     }
                 }
             }
-            else TRYMAP_ENC(big5, code, c);
+            else if (TRYMAP_ENC(big5, code, c));
             else return 1;
         }
         else if (c < 0x20000)
             return insize;
         else if (c < 0x30000) {
-            TRYMAP_ENC(big5hkscs_nonbmp, code, c & 0xffff);
+            if (TRYMAP_ENC(big5hkscs_nonbmp, code, c & 0xffff));
             else return insize;
         }
         else
index 62a3f07abd2d10d08cf8be2c9ba10a75839e864b..44234cabcd1f87f4e4fb6ddbde74fd371c03d378 100644 (file)
@@ -578,9 +578,10 @@ ksx1001_encoder(const Py_UCS4 *data, Py_ssize_t *length)
     DBCHAR coded;
     assert(*length == 1);
     if (*data < 0x10000) {
-        TRYMAP_ENC(cp949, coded, *data)
+        if (TRYMAP_ENC(cp949, coded, *data)) {
             if (!(coded & 0x8000))
                 return coded;
+        }
     }
     return MAP_UNMAPPABLE;
 }
@@ -618,7 +619,7 @@ jisx0208_encoder(const Py_UCS4 *data, Py_ssize_t *length)
     if (*data < 0x10000) {
         if (*data == 0xff3c) /* F/W REVERSE SOLIDUS */
             return 0x2140;
-        else TRYMAP_ENC(jisxcommon, coded, *data) {
+        else if (TRYMAP_ENC(jisxcommon, coded, *data)) {
             if (!(coded & 0x8000))
                 return coded;
         }
@@ -655,7 +656,7 @@ jisx0212_encoder(const Py_UCS4 *data, Py_ssize_t *length)
     DBCHAR coded;
     assert(*length == 1);
     if (*data < 0x10000) {
-        TRYMAP_ENC(jisxcommon, coded, *data) {
+        if (TRYMAP_ENC(jisxcommon, coded, *data)) {
             if (coded & 0x8000)
                 return coded & 0x7fff;
         }
@@ -759,19 +760,18 @@ jisx0213_encoder(const Py_UCS4 *data, Py_ssize_t *length, void *config)
         if (*data >= 0x10000) {
             if ((*data) >> 16 == 0x20000 >> 16) {
                 EMULATE_JISX0213_2000_ENCODE_EMP(coded, *data)
-                else TRYMAP_ENC(jisx0213_emp, coded,
-                                (*data) & 0xffff)
+                else if (TRYMAP_ENC(jisx0213_emp, coded, (*data) & 0xffff))
                     return coded;
             }
             return MAP_UNMAPPABLE;
         }
 
         EMULATE_JISX0213_2000_ENCODE_BMP(coded, *data)
-        else TRYMAP_ENC(jisx0213_bmp, coded, *data) {
+        else if (TRYMAP_ENC(jisx0213_bmp, coded, *data)) {
             if (coded == MULTIC)
                 return MAP_MULTIPLE_AVAIL;
         }
-        else TRYMAP_ENC(jisxcommon, coded, *data) {
+        else if (TRYMAP_ENC(jisxcommon, coded, *data)) {
             if (coded & 0x8000)
                 return MAP_UNMAPPABLE;
         }
@@ -962,7 +962,7 @@ gb2312_encoder(const Py_UCS4 *data, Py_ssize_t *length)
     DBCHAR coded;
     assert(*length == 1);
     if (*data < 0x10000) {
-        TRYMAP_ENC(gbcommon, coded, *data) {
+        if (TRYMAP_ENC(gbcommon, coded, *data)) {
             if (!(coded & 0x8000))
                 return coded;
         }
index a08aa1593a7ad6f7e18cb16f38e2c9bc280e51f3..993096e5d7260887ee3840b3279499df7abfd897 100644 (file)
@@ -49,11 +49,11 @@ ENCODER(cp932)
             return 1;
         REQUIRE_OUTBUF(2)
 
-        TRYMAP_ENC(cp932ext, code, c) {
+        if (TRYMAP_ENC(cp932ext, code, c)) {
             OUTBYTE1(code >> 8)
             OUTBYTE2(code & 0xff)
         }
-        else TRYMAP_ENC(jisxcommon, code, c) {
+        else if (TRYMAP_ENC(jisxcommon, code, c)) {
             if (code & 0x8000) /* MSB set: JIS X 0212 */
                 return 1;
 
@@ -165,7 +165,7 @@ ENCODER(euc_jis_2004)
 
         if (c <= 0xFFFF) {
             EMULATE_JISX0213_2000_ENCODE_BMP(code, c)
-            else TRYMAP_ENC(jisx0213_bmp, code, c) {
+            else if (TRYMAP_ENC(jisx0213_bmp, code, c)) {
                 if (code == MULTIC) {
                     if (inlen - *inpos < 2) {
                         if (flags & MBENC_FLUSH) {
@@ -197,7 +197,7 @@ ENCODER(euc_jis_2004)
                     }
                 }
             }
-            else TRYMAP_ENC(jisxcommon, code, c);
+            else if (TRYMAP_ENC(jisxcommon, code, c));
             else if (c >= 0xff61 && c <= 0xff9f) {
                 /* JIS X 0201 half-width katakana */
                 WRITEBYTE2(0x8e, c - 0xfec0)
@@ -215,7 +215,7 @@ ENCODER(euc_jis_2004)
         }
         else if (c >> 16 == EMPBASE >> 16) {
             EMULATE_JISX0213_2000_ENCODE_EMP(code, c)
-            else TRYMAP_ENC(jisx0213_emp, code, c & 0xffff);
+            else if (TRYMAP_ENC(jisx0213_emp, code, c & 0xffff));
             else return insize;
         }
         else
@@ -334,7 +334,7 @@ ENCODER(euc_jp)
         if (c > 0xFFFF)
             return 1;
 
-        TRYMAP_ENC(jisxcommon, code, c);
+        if (TRYMAP_ENC(jisxcommon, code, c));
         else if (c >= 0xff61 && c <= 0xff9f) {
             /* JIS X 0201 half-width katakana */
             WRITEBYTE2(0x8e, c - 0xfec0)
@@ -469,7 +469,7 @@ ENCODER(shift_jis)
         REQUIRE_OUTBUF(2)
 
         if (code == NOCHAR) {
-            TRYMAP_ENC(jisxcommon, code, c);
+            if (TRYMAP_ENC(jisxcommon, code, c));
 #ifndef STRICT_BUILD
             else if (c == 0xff3c)
                 code = 0x2140; /* FULL-WIDTH REVERSE SOLIDUS */
@@ -570,7 +570,7 @@ ENCODER(shift_jis_2004)
         if (code == NOCHAR) {
             if (c <= 0xffff) {
                 EMULATE_JISX0213_2000_ENCODE_BMP(code, c)
-                else TRYMAP_ENC(jisx0213_bmp, code, c) {
+                else if (TRYMAP_ENC(jisx0213_bmp, code, c)) {
                     if (code == MULTIC) {
                         if (inlen - *inpos < 2) {
                             if (flags & MBENC_FLUSH) {
@@ -603,7 +603,7 @@ ENCODER(shift_jis_2004)
                         }
                     }
                 }
-                else TRYMAP_ENC(jisxcommon, code, c) {
+                else if (TRYMAP_ENC(jisxcommon, code, c)) {
                     /* abandon JIS X 0212 codes */
                     if (code & 0x8000)
                         return 1;
@@ -612,7 +612,7 @@ ENCODER(shift_jis_2004)
             }
             else if (c >> 16 == EMPBASE >> 16) {
                 EMULATE_JISX0213_2000_ENCODE_EMP(code, c)
-                else TRYMAP_ENC(jisx0213_emp, code, c&0xffff);
+                else if (TRYMAP_ENC(jisx0213_emp, code, c&0xffff));
                 else return insize;
             }
             else
index 8291e61abe61f0031119cc816afa32ed84baff24..71d90996f90d3453e656a6228d70ce0a6c256683 100644 (file)
@@ -47,7 +47,7 @@ ENCODER(euc_kr)
             return 1;
 
         REQUIRE_OUTBUF(2)
-        TRYMAP_ENC(cp949, code, c);
+        if (TRYMAP_ENC(cp949, code, c));
         else return 1;
 
         if ((code & 0x8000) == 0) {
@@ -182,7 +182,7 @@ ENCODER(cp949)
             return 1;
 
         REQUIRE_OUTBUF(2)
-        TRYMAP_ENC(cp949, code, c);
+        if (TRYMAP_ENC(cp949, code, c));
         else return 1;
 
         OUTBYTE1((code >> 8) | 0x80)
@@ -279,7 +279,7 @@ ENCODER(johab)
         }
         else if (c >= 0x3131 && c <= 0x3163)
             code = u2johabjamo[c - 0x3131];
-        else TRYMAP_ENC(cp949, code, c) {
+        else if (TRYMAP_ENC(cp949, code, c)) {
             unsigned char c1, c2, t2;
             unsigned short t1;
 
index fb3ed00ee3f468214bbeb2bdc369396fbb6fc680..9f32bf71ca42b946d8e60ddafaf7b7fcbbe7e15d 100644 (file)
@@ -29,7 +29,7 @@ ENCODER(big5)
 
         REQUIRE_OUTBUF(2)
 
-        TRYMAP_ENC(big5, code, c);
+        if (TRYMAP_ENC(big5, code, c));
         else return 1;
 
         OUTBYTE1(code >> 8)
@@ -84,8 +84,8 @@ ENCODER(cp950)
             return 1;
 
         REQUIRE_OUTBUF(2)
-        TRYMAP_ENC(cp950ext, code, c);
-        else TRYMAP_ENC(big5, code, c);
+        if (TRYMAP_ENC(cp950ext, code, c));
+        else if (TRYMAP_ENC(big5, code, c));
         else return 1;
 
         OUTBYTE1(code >> 8)
index ea234db1a657830285f985a9181c90ad693a94ba..4a5f0c123c44a6f65cc12dd065710713c76b5bc1 100644 (file)
@@ -172,10 +172,8 @@ static const struct dbcs_map *mapping_list;
     ((m)->map != NULL && (val) >= (m)->bottom &&                \
         (val)<= (m)->top && ((assi) = (m)->map[(val) -          \
         (m)->bottom]) != NOCHAR)
-#define TRYMAP_ENC_COND(charset, assi, uni)                     \
+#define TRYMAP_ENC(charset, assi, uni)                     \
     _TRYMAP_ENC(&charset##_encmap[(uni) >> 8], assi, (uni) & 0xff)
-#define TRYMAP_ENC(charset, assi, uni)                          \
-    if TRYMAP_ENC_COND(charset, assi, uni)
 
 #define _TRYMAP_DEC(m, assi, val)                             \
     ((m)->map != NULL &&                                        \