diff options
| author | Julian Andres Klode <jak@debian.org> | 2009-06-25 18:11:13 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2009-06-25 18:11:13 +0200 |
| commit | 128c1f00b2006c9c24638c11000e1864fc15bd04 (patch) | |
| tree | 3d98eb7877f4d2bfcf149c7803309da1f0b3cb52 /python/generic.h | |
| parent | ca4408170dd5d2a6bba176409e0f0af1156357a6 (diff) | |
| download | python-apt-128c1f00b2006c9c24638c11000e1864fc15bd04.tar.gz | |
python/generic.h: Make PyObject_AsString() only accept unicode on Python 3.
Diffstat (limited to 'python/generic.h')
| -rw-r--r-- | python/generic.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/python/generic.h b/python/generic.h index 2a87b39c..182b1b53 100644 --- a/python/generic.h +++ b/python/generic.h @@ -83,15 +83,25 @@ static inline const char *PyUnicode_AsString(PyObject *op) { } // Convert any type of string based object to a const char. +#if PY_MAJOR_VERSION < 3 static inline const char *PyObject_AsString(PyObject *object) { if (PyBytes_Check(object)) return PyBytes_AsString(object); else if (PyUnicode_Check(object)) return PyUnicode_AsString(object); else - PyErr_SetObject(PyExc_TypeError, object); + PyErr_SetString(PyExc_TypeError, "Argument must be str."); return 0; } +#else +static inline const char *PyObject_AsString(PyObject *object) { + if (PyUnicode_Check(object) == 0) { + PyErr_SetString(PyExc_TypeError, "Argument must be str."); + return 0; + } + return PyUnicode_AsString(object); +} +#endif template <class T> struct CppPyObject : public PyObject { |
