diff options
| author | Julian Andres Klode <jak@debian.org> | 2013-10-08 18:46:37 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2013-10-08 21:55:15 +0200 |
| commit | 9305bd3ff845eb61649767b86688bb36b54d9437 (patch) | |
| tree | 901bb0cb8a76d568640ae3f73ae0a30be85cc4a7 /python/generic.cc | |
| parent | d0739a17f824a7bf3cfa217223b88979c571e7dd (diff) | |
| download | python-apt-9305bd3ff845eb61649767b86688bb36b54d9437.tar.gz | |
python/generic.cc: Move PyApt_Filename::init here
Diffstat (limited to 'python/generic.cc')
| -rw-r--r-- | python/generic.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/python/generic.cc b/python/generic.cc index 8e65c4f3..5e712899 100644 --- a/python/generic.cc +++ b/python/generic.cc @@ -93,3 +93,26 @@ PyObject *CharCharToList(const char **List,unsigned long Size) return PList; } /*}}}*/ + +int PyApt_Filename::init(PyObject *object) +{ + this->object = NULL; + this->path = NULL; + +#if PY_MAJOR_VERSION < 3 || (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 2) + this->path = PyObject_AsString(object); + return this->path ? 1 : 0; +#else + if (PyUnicode_Check(object)) { + object = PyUnicode_EncodeFSDefault(object); + } else if (PyBytes_Check(object)) { + Py_INCREF(object); + } else { + return 0; + } + + this->object = object; + this->path = PyBytes_AS_STRING(this->object); + return 1; +#endif +} |
