]> granicus.if.org Git - python/commitdiff
Use 'ISO8859-1' instead of 'ASCII' when testing whether byteswapping
authorWalter Dörwald <walter@livinglogic.de>
Fri, 21 Feb 2003 18:18:49 +0000 (18:18 +0000)
committerWalter Dörwald <walter@livinglogic.de>
Fri, 21 Feb 2003 18:18:49 +0000 (18:18 +0000)
is required for the chosen internal encoding in the init function,
as this seems to have a better chance of working under Irix and
Solaris.

Also change the test character from '\x01' to '0'.

This might fix SF bug #690309.

Modules/_iconv_codec.c

index ffae455734bb1bedabd46a87999fee1c355421c4..1d2e5d41387bddda2adff446dcf00dbaf4c9d20a 100644 (file)
@@ -663,7 +663,7 @@ init_iconv_codec(void)
 {
     PyObject *m;
 
-    char in = 1;
+    char in = '0';
     char *inptr = &in;
     size_t insize = 1;
     Py_UNICODE out = 0;
@@ -671,7 +671,7 @@ init_iconv_codec(void)
     size_t outsize = sizeof(out);
     size_t res;
 
-    iconv_t hdl = iconv_open(UNICODE_ENCODING, "ASCII");
+    iconv_t hdl = iconv_open(UNICODE_ENCODING, "ISO8859-1");
 
     if (hdl == (iconv_t)-1) {
         PyErr_SetString(PyExc_RuntimeError,
@@ -688,12 +688,12 @@ init_iconv_codec(void)
 
     /* Check whether conv() returned native endianess or not for the chosen
        encoding */
-    if (out == 0x1)
+    if (out == 0x30)
        byteswap = 0;
 #if Py_UNICODE_SIZE == 2
-    else if (out == 0x0100)
+    else if (out == 0x3000)
 #else
-    else if (out == 0x01000000)
+    else if (out == 0x30000000)
 #endif
        byteswap = 1;
     else {