summaryrefslogtreecommitdiffstats
path: root/Modules/cjkcodecs/multibytecodec.c
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2007-08-26 04:19:43 (GMT)
committerNeal Norwitz <nnorwitz@gmail.com>2007-08-26 04:19:43 (GMT)
commit6ea45d33412d4ecb2862645d57137b7ea1223281 (patch)
tree90a60a1298fff16a71f2501e87613385624a52d9 /Modules/cjkcodecs/multibytecodec.c
parent5b0fdc9d0aef58fffe225bee493d62cd905d6b80 (diff)
downloadcpython-6ea45d33412d4ecb2862645d57137b7ea1223281.zip
cpython-6ea45d33412d4ecb2862645d57137b7ea1223281.tar.gz
cpython-6ea45d33412d4ecb2862645d57137b7ea1223281.tar.bz2
Use unicode and remove support for some uses of str8.
Diffstat (limited to 'Modules/cjkcodecs/multibytecodec.c')
-rw-r--r--Modules/cjkcodecs/multibytecodec.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c
index 7d14437..4778efb 100644
--- a/Modules/cjkcodecs/multibytecodec.c
+++ b/Modules/cjkcodecs/multibytecodec.c
@@ -85,16 +85,20 @@ internal_error_callback(const char *errors)
else if (strcmp(errors, "replace") == 0)
return ERROR_REPLACE;
else
- return PyString_FromString(errors);
+ return PyUnicode_FromString(errors);
}
static PyObject *
call_error_callback(PyObject *errors, PyObject *exc)
{
PyObject *args, *cb, *r;
+ const char *str;
- assert(PyString_Check(errors));
- cb = PyCodec_LookupError(PyString_AS_STRING(errors));
+ assert(PyUnicode_Check(errors));
+ str = PyUnicode_AsString(errors);
+ if (str == NULL)
+ return NULL;
+ cb = PyCodec_LookupError(str);
if (cb == NULL)
return NULL;
@@ -129,7 +133,7 @@ codecctx_errors_get(MultibyteStatefulCodecContext *self)
return self->errors;
}
- return PyString_FromString(errors);
+ return PyUnicode_FromString(errors);
}
static int
@@ -137,18 +141,18 @@ codecctx_errors_set(MultibyteStatefulCodecContext *self, PyObject *value,
void *closure)
{
PyObject *cb;
+ const char *str;
- if (PyUnicode_Check(value)) {
- value = _PyUnicode_AsDefaultEncodedString(value, NULL);
- if (value == NULL)
- return -1;
- }
- if (!PyString_Check(value)) {
+ if (!PyUnicode_Check(value)) {
PyErr_SetString(PyExc_TypeError, "errors must be a string");
return -1;
}
- cb = internal_error_callback(PyString_AS_STRING(value));
+ str = PyUnicode_AsString(value);
+ if (str == NULL)
+ return -1;
+
+ cb = internal_error_callback(str);
if (cb == NULL)
return -1;