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