From 2f283c2c19f821dd5a0f2ad4a4da4c90fe583bb9 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 2 Mar 2011 01:21:46 +0000 Subject: [PATCH] Fix my previous commit (r88709) for str.encode(errors=...) --- Objects/unicodeobject.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 68012597ca..1d0e97b8ce 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1709,21 +1709,26 @@ PyUnicode_AsEncodedString(PyObject *unicode, return NULL; } - if (encoding == NULL) - return PyUnicode_AsUTF8String(unicode); + if (encoding == NULL) { + if (errors == NULL || strcmp(errors, "strict") == 0) + return PyUnicode_AsUTF8String(unicode); + else + return PyUnicode_EncodeUTF8(PyUnicode_AS_UNICODE(unicode), + PyUnicode_GET_SIZE(unicode), + errors); + } /* Shortcuts for common default encodings */ if (normalize_encoding(encoding, lower, sizeof(lower))) { if ((strcmp(lower, "utf-8") == 0) || (strcmp(lower, "utf8") == 0)) { - if (errors == NULL || strcmp(errors, "strict") == 0) { + if (errors == NULL || strcmp(errors, "strict") == 0) return PyUnicode_AsUTF8String(unicode); - } else { + else return PyUnicode_EncodeUTF8(PyUnicode_AS_UNICODE(unicode), PyUnicode_GET_SIZE(unicode), errors); - } } else if ((strcmp(lower, "latin-1") == 0) || (strcmp(lower, "latin1") == 0) || -- 2.50.1