summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorMarc-André Lemburg <mal@egenix.com>2000-07-07 11:27:45 (GMT)
committerMarc-André Lemburg <mal@egenix.com>2000-07-07 11:27:45 (GMT)
commit063e0cb4c6396c20ce878cfb1a5ef196dba66679 (patch)
tree7d2bc3d765d0e96bc6d46ee4fd084ec894863b81 /Objects
parent295b1bbca10b3b919e11812f6946facd8217f248 (diff)
downloadcpython-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.c13
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 */