diff options
author | Martin Szulecki | 2012-03-22 15:12:26 +0100 |
---|---|---|
committer | Martin Szulecki | 2012-03-22 15:12:26 +0100 |
commit | 7060250b7583ad9cd20007b6fda5dcf068d55cbe (patch) | |
tree | cea14cb2c218e6ec8b4ab225138e68628443fb78 /cython | |
parent | d01bdae204ceaf2bd658d4cc303e79adb1e7e3a8 (diff) | |
download | libplist-7060250b7583ad9cd20007b6fda5dcf068d55cbe.tar.gz libplist-7060250b7583ad9cd20007b6fda5dcf068d55cbe.tar.bz2 |
cython: Fix broken String plist handling in Python
Diffstat (limited to 'cython')
-rw-r--r-- | cython/plist.pyx | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/cython/plist.pyx b/cython/plist.pyx index 4732d0f..3716a9c 100644 --- a/cython/plist.pyx +++ b/cython/plist.pyx @@ -283,8 +283,8 @@ cdef class String(Node): if isinstance(value, unicode): utf8_data = value.encode('utf-8') elif (PY_MAJOR_VERSION < 3) and isinstance(value, str): - value.decode('ascii') # trial decode - utf8_data = value.decode('ascii') + value.encode('ascii') # trial decode + utf8_data = value.encode('ascii') else: raise ValueError("Requires unicode input, got %s" % type(value)) c_utf8_data = utf8_data @@ -319,8 +319,8 @@ cdef class String(Node): if isinstance(value, unicode): utf8_data = value.encode('utf-8') elif (PY_MAJOR_VERSION < 3) and isinstance(value, str): - value.decode('ascii') # trial decode - utf8_data = value.decode('ascii') + value.encode('ascii') # trial decode + utf8_data = value.encode('ascii') else: raise ValueError("Requires unicode input, got %s" % type(value)) c_utf8_data = utf8_data @@ -331,7 +331,7 @@ cdef class String(Node): char* c_value = NULL plist_get_string_val(self._c_node, &c_value) try: - return cpython.PyUnicode_DecodeUTF8(c_value, libc.stdlib.strlen(c_value), 'strict') + return cpython.PyUnicode_DecodeUTF8(c_value, len(c_value), 'strict') finally: libc.stdlib.free(c_value) |