[KoCo-CVS] [Commit] iconvcodec _iconv_codec.c
Brought to you by:
perky
From: Hye-Shik C. <pe...@us...> - 2003-06-11 12:07:02
|
perky 03/06/11 05:07:01 Modified: . _iconv_codec.c Log: Use ucs4_t than Py_UNICODE in internal calculations Revision Changes Path 1.9 +21 -21 iconvcodec/_iconv_codec.c Index: _iconv_codec.c =================================================================== RCS file: /cvsroot/koco/iconvcodec/_iconv_codec.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- _iconv_codec.c 11 Jun 2003 12:01:57 -0000 1.8 +++ _iconv_codec.c 11 Jun 2003 12:07:01 -0000 1.9 @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: _iconv_codec.c,v 1.8 2003/06/11 12:01:57 perky Exp $ + * $Id: _iconv_codec.c,v 1.9 2003/06/11 12:07:01 perky Exp $ */ #include "Python.h" @@ -1027,17 +1027,17 @@ } else if (*ubuf < 0xe0) { if (uleft < 2 || !((ubuf[1] ^ 0x80) < 0x40)) goto ilseq; - code = ((Py_UNICODE)(ubuf[0] & 0x1f) << 6) - | (Py_UNICODE)(ubuf[1] ^ 0x80); + code = ((ucs4_t)(ubuf[0] & 0x1f) << 6) + | (ucs4_t)(ubuf[1] ^ 0x80); ubuf += 2; } else if (*ubuf < 0xf0) { if (uleft < 3 || !((ubuf[1] ^ 0x80) < 0x40 && (ubuf[2] ^ 0x80) < 0x40 && (ubuf[0] >= 0xe1 || ubuf[1] >= 0xa0))) goto ilseq; - code = ((Py_UNICODE)(ubuf[0] & 0x0f) << 12) - | ((Py_UNICODE)(ubuf[1] ^ 0x80) << 6) - | (Py_UNICODE)(ubuf[2] ^ 0x80); + code = ((ucs4_t)(ubuf[0] & 0x0f) << 12) + | ((ucs4_t)(ubuf[1] ^ 0x80) << 6) + | (ucs4_t)(ubuf[2] ^ 0x80); ubuf += 3; } else if (*ubuf < 0xf8) { @@ -1045,10 +1045,10 @@ (ubuf[2] ^ 0x80) < 0x40 && (ubuf[3] ^ 0x80) < 0x40 && (ubuf[0] >= 0xf1 || ubuf[1] >= 0x90))) goto ilseq; - code = ((Py_UNICODE)(ubuf[0] & 0x07) << 18) - | ((Py_UNICODE)(ubuf[1] ^ 0x80) << 12) - | ((Py_UNICODE)(ubuf[2] ^ 0x80) << 6) - | (Py_UNICODE)(ubuf[3] ^ 0x80); + code = ((ucs4_t)(ubuf[0] & 0x07) << 18) + | ((ucs4_t)(ubuf[1] ^ 0x80) << 12) + | ((ucs4_t)(ubuf[2] ^ 0x80) << 6) + | (ucs4_t)(ubuf[3] ^ 0x80); ubuf += 4; } else if (*ubuf < 0xfc) { if (uleft < 5 || !((ubuf[1] ^ 0x80) < 0x40 && @@ -1056,11 +1056,11 @@ (ubuf[4] ^ 0x80) < 0x40 && (ubuf[0] >= 0xf9 || ubuf[1] >= 0x88))) goto ilseq; - code = ((Py_UNICODE)(ubuf[0] & 0x03) << 24) - | ((Py_UNICODE)(ubuf[1] ^ 0x80) << 18) - | ((Py_UNICODE)(ubuf[2] ^ 0x80) << 12) - | ((Py_UNICODE)(ubuf[3] ^ 0x80) << 6) - | (Py_UNICODE)(ubuf[4] ^ 0x80); + code = ((ucs4_t)(ubuf[0] & 0x03) << 24) + | ((ucs4_t)(ubuf[1] ^ 0x80) << 18) + | ((ucs4_t)(ubuf[2] ^ 0x80) << 12) + | ((ucs4_t)(ubuf[3] ^ 0x80) << 6) + | (ucs4_t)(ubuf[4] ^ 0x80); ubuf += 5; } else if (*ubuf < 0xff) { if (uleft < 6 || !((ubuf[1] ^ 0x80) < 0x40 && @@ -1068,12 +1068,12 @@ (ubuf[4] ^ 0x80) < 0x40 && (ubuf[5] ^ 0x80) < 0x40 && (ubuf[0] >= 0xfd || ubuf[1] >= 0x84))) goto ilseq; - code = ((Py_UNICODE)(ubuf[0] & 0x01) << 30) - | ((Py_UNICODE)(ubuf[1] ^ 0x80) << 24) - | ((Py_UNICODE)(ubuf[2] ^ 0x80) << 18) - | ((Py_UNICODE)(ubuf[3] ^ 0x80) << 12) - | ((Py_UNICODE)(ubuf[4] ^ 0x80) << 6) - | (Py_UNICODE)(ubuf[5] ^ 0x80); + code = ((ucs4_t)(ubuf[0] & 0x01) << 30) + | ((ucs4_t)(ubuf[1] ^ 0x80) << 24) + | ((ucs4_t)(ubuf[2] ^ 0x80) << 18) + | ((ucs4_t)(ubuf[3] ^ 0x80) << 12) + | ((ucs4_t)(ubuf[4] ^ 0x80) << 6) + | (ucs4_t)(ubuf[5] ^ 0x80); ubuf += 6; } else goto ilseq; |