diff options
author | Marc-André Lemburg <mal@egenix.com> | 2000-07-07 11:27:45 (GMT) |
---|---|---|
committer | Marc-André Lemburg <mal@egenix.com> | 2000-07-07 11:27:45 (GMT) |
commit | 063e0cb4c6396c20ce878cfb1a5ef196dba66679 (patch) | |
tree | 7d2bc3d765d0e96bc6d46ee4fd084ec894863b81 /Objects | |
parent | 295b1bbca10b3b919e11812f6946facd8217f248 (diff) | |
download | cpython-063e0cb4c6396c20ce878cfb1a5ef196dba66679.zip cpython-063e0cb4c6396c20ce878cfb1a5ef196dba66679.tar.gz cpython-063e0cb4c6396c20ce878cfb1a5ef196dba66679.tar.bz2 |
Fix to bug #393 (UTF16 codec didn't like empty strings) and
corrected some usage of 'unsigned long' where Py_UNICODE
should have been used.
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/unicodeobject.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 052a489b..e94cef2 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -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 */ |