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
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 */
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;
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 */
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)
}
}
}
- 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
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;
}
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;
}
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;
}
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;
}
DBCHAR coded;
assert(*length == 1);
if (*data < 0x10000) {
- TRYMAP_ENC(gbcommon, coded, *data) {
+ if (TRYMAP_ENC(gbcommon, coded, *data)) {
if (!(coded & 0x8000))
return coded;
}
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;
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) {
}
}
}
- 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)
}
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
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)
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 */
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) {
}
}
}
- else TRYMAP_ENC(jisxcommon, code, c) {
+ else if (TRYMAP_ENC(jisxcommon, code, c)) {
/* abandon JIS X 0212 codes */
if (code & 0x8000)
return 1;
}
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
return 1;
REQUIRE_OUTBUF(2)
- TRYMAP_ENC(cp949, code, c);
+ if (TRYMAP_ENC(cp949, code, c));
else return 1;
if ((code & 0x8000) == 0) {
return 1;
REQUIRE_OUTBUF(2)
- TRYMAP_ENC(cp949, code, c);
+ if (TRYMAP_ENC(cp949, code, c));
else return 1;
OUTBYTE1((code >> 8) | 0x80)
}
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;
REQUIRE_OUTBUF(2)
- TRYMAP_ENC(big5, code, c);
+ if (TRYMAP_ENC(big5, code, c));
else return 1;
OUTBYTE1(code >> 8)
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)
((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 && \