summaryrefslogtreecommitdiffstats
path: root/cython
diff options
context:
space:
mode:
authorGravatar Martin Szulecki2012-03-22 15:12:26 +0100
committerGravatar Martin Szulecki2012-03-22 15:12:26 +0100
commit7060250b7583ad9cd20007b6fda5dcf068d55cbe (patch)
treecea14cb2c218e6ec8b4ab225138e68628443fb78 /cython
parentd01bdae204ceaf2bd658d4cc303e79adb1e7e3a8 (diff)
downloadlibplist-7060250b7583ad9cd20007b6fda5dcf068d55cbe.tar.gz
libplist-7060250b7583ad9cd20007b6fda5dcf068d55cbe.tar.bz2
cython: Fix broken String plist handling in Python
Diffstat (limited to 'cython')
-rw-r--r--cython/plist.pyx10
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)