Tweak unicode --> string conversion helper so UnicodeDecodeError is

raised when appropriate instead ofg just catching everything and
raising TypeError


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2004-10-15 19:28:34 +00:00
parent 7747ff60b8
commit db301e681f

View File

@@ -1911,12 +1911,18 @@ wxString* wxString_in_helper(PyObject* source) {
if (PyString_Check(source))
Py_DECREF(uni);
#else
char* tmpPtr; int tmpSize;
if (PyString_AsStringAndSize(source, &tmpPtr, &tmpSize) == -1) {
PyErr_SetString(PyExc_TypeError, "Unable to convert string");
return NULL;
// Convert to a string object if it isn't already, then to wxString
PyObject* str = source;
if (!PyString_Check(source)) {
str = PyObject_Str(source);
if (PyErr_Occurred()) return NULL;
}
char* tmpPtr; int tmpSize;
PyString_AsStringAndSize(str, &tmpPtr, &tmpSize);
target = new wxString(tmpPtr, tmpSize);
if (!PyString_Check(source))
Py_DECREF(str);
#endif // wxUSE_UNICODE
return target;