]> granicus.if.org Git - python/commitdiff
Fix to bug #393 (UTF16 codec didn't like empty strings) and
authorMarc-André Lemburg <mal@egenix.com>
Fri, 7 Jul 2000 11:27:45 +0000 (11:27 +0000)
committerMarc-André Lemburg <mal@egenix.com>
Fri, 7 Jul 2000 11:27:45 +0000 (11:27 +0000)
corrected some usage of 'unsigned long' where Py_UNICODE
should have been used.

Objects/unicodeobject.c

index 052a489b4f008e7c75390c228ef04ece3f84bace..e94cef2b4532d1c501fa5e5e538f191e0d5770cb 100644 (file)
@@ -953,14 +953,13 @@ PyObject *PyUnicode_EncodeUTF16(const Py_UNICODE *s,
                        sizeof(Py_UNICODE) * (size + (byteorder == 0)));
     if (v == NULL)
         return NULL;
-    if (size == 0)
-        goto done;
 
     q = PyString_AS_STRING(v);
     p = (Py_UNICODE *)q;
-    
     if (byteorder == 0)
        *p++ = 0xFEFF;
+    if (size == 0)
+        goto done;
     if (byteorder == 0 ||
 #ifdef BYTEORDER_IS_LITTLE_ENDIAN      
        byteorder == -1
@@ -994,7 +993,7 @@ PyObject *PyUnicode_AsUTF16String(PyObject *unicode)
 
 static
 int unicodeescape_decoding_error(const char **source,
-                                 unsigned long *x,
+                                 Py_UNICODE *x,
                                  const char *errors,
                                  const char *details) 
 {
@@ -1009,7 +1008,7 @@ int unicodeescape_decoding_error(const char **source,
         return 0;
     }
     else if (strcmp(errors,"replace") == 0) {
-        *x = (unsigned long)Py_UNICODE_REPLACEMENT_CHARACTER;
+        *x = Py_UNICODE_REPLACEMENT_CHARACTER;
         return 0;
     }
     else {
@@ -1063,7 +1062,7 @@ PyObject *PyUnicode_DecodeUnicodeEscape(const char *s,
     end = s + size;
     while (s < end) {
         unsigned char c;
-        unsigned long x;
+        Py_UNICODE x;
         int i;
 
         /* Non-escape characters are interpreted as Unicode ordinals */
@@ -1372,7 +1371,7 @@ PyObject *PyUnicode_DecodeRawUnicodeEscape(const char *s,
     end = s + size;
     while (s < end) {
        unsigned char c;
-       unsigned long x;
+       Py_UNICODE x;
        int i;
 
        /* Non-escape characters are interpreted as Unicode ordinals */