[KoCo-CVS] [Commit] iconvcodec _iconv_codec.c
Brought to you by:
perky
From: Hye-Shik C. <pe...@us...> - 2003-06-11 11:06:53
|
perky 03/06/11 04:06:50 Modified: . _iconv_codec.c Log: Use 'UTF-16' internal encodings when Py_UNICODE_SIZE == 2. Revision Changes Path 1.7 +10 -6 iconvcodec/_iconv_codec.c Index: _iconv_codec.c =================================================================== RCS file: /cvsroot/koco/iconvcodec/_iconv_codec.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- _iconv_codec.c 11 Jun 2003 05:55:28 -0000 1.6 +++ _iconv_codec.c 11 Jun 2003 11:06:50 -0000 1.7 @@ -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.6 2003/06/11 05:55:28 perky Exp $ + * $Id: _iconv_codec.c,v 1.7 2003/06/11 11:06:50 perky Exp $ */ #include "Python.h" @@ -33,11 +33,9 @@ #ifdef Py_USING_UNICODE # if Py_UNICODE_SIZE == 2 -# define UCS_N "UCS-2" # define MBENCODED_LENGTH_MAX 4 # define _Py_UNICODE_SWAP(c) (Py_UNICODE)((c)>>8 | (c)<<8) # elif Py_UNICODE_SIZE == 4 -# define UCS_N "UCS-4" # define MBENCODED_LENGTH_MAX 6 # define _Py_UNICODE_SWAP(c) (Py_UNICODE)((c)>>24 | \ ((c)&0x00ff0000)>>8 | \ @@ -81,9 +79,15 @@ const char *encoding; uniinternal_type_t type; } uniinternal_modes[] = { - {UCS_N "-INTERNAL", UNIINTERNAL_UCS}, /* GNU libiconv, FreeBSD, APR */ - {UCS_N ENDIANSUFX, UNIINTERNAL_UCS}, /* SunOS */ - {UCS_N, UNIINTERNAL_UCS}, /* GLIBC */ +#if Py_UNICODE_SIZE == 2 +/* Py_UNICODE* may contain surrogate characters */ + {"UTF-16" ENDIANSUFX, UNIINTERNAL_UCS}, + {"UTF16" ENDIANSUFX, UNIINTERNAL_UCS}, +#else + {"UCS-4-INTERNAL", UNIINTERNAL_UCS}, /* GNU libiconv, FreeBSD, APR */ + {"UCS-4" ENDIANSUFX, UNIINTERNAL_UCS}, /* SunOS */ + {"UCS-4", UNIINTERNAL_UCS}, /* GLIBC */ +#endif {"UTF-8", UNIINTERNAL_UTF_8}, /* SunOS(CJK) */ {"\0", UNIINTERNAL_DONTUSE}, }; |