From d7f19b73e0f903a6c7341716822d16219e0075e9 Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 15 Oct 2018 13:27:36 +0200 Subject: [PATCH] dtoolutil: minor fix to TextEncoder::append_text --- dtool/src/dtoolutil/textEncoder_ext.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dtool/src/dtoolutil/textEncoder_ext.cxx b/dtool/src/dtoolutil/textEncoder_ext.cxx index b085b8a965..1947e6c749 100644 --- a/dtool/src/dtoolutil/textEncoder_ext.cxx +++ b/dtool/src/dtoolutil/textEncoder_ext.cxx @@ -94,7 +94,12 @@ append_text(PyObject *text) { #if PY_VERSION_HEX >= 0x03030000 Py_ssize_t len; const char *str = PyUnicode_AsUTF8AndSize(text, &len); - _this->append_text(std::string(str, len)); + std::string text_str(str, len); + if (_this->get_encoding() == TextEncoder::E_utf8) { + _this->append_text(text_str); + } else { + _this->append_wtext(TextEncoder::decode_text(text_str, TextEncoder::E_utf8)); + } #else Py_ssize_t len = PyUnicode_GET_SIZE(text); wchar_t *str = (wchar_t *)alloca(sizeof(wchar_t) * (len + 1));