X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fpython-systemd%2Fpyutil.c;h=722c4f5b5f89f6c11214f003e7afb13969f6ad30;hp=42e7ba72cf78d74f403a71a8942014275bb5f62a;hb=f0f2e63bb2d5cd27e6a2464ee46a670a3159c5da;hpb=04b33f69b6fba648b0d48aca03b9310b3cfdb02d diff --git a/src/python-systemd/pyutil.c b/src/python-systemd/pyutil.c index 42e7ba72c..722c4f5b5 100644 --- a/src/python-systemd/pyutil.c +++ b/src/python-systemd/pyutil.c @@ -58,3 +58,23 @@ int set_error(int r, const char* path, const char* invalid_message) { } return -1; } + +#if PY_MAJOR_VERSION >=3 && PY_MINOR_VERSION >= 1 +int Unicode_FSConverter(PyObject* obj, void *_result) { + PyObject **result = _result; + + assert(result); + + if (!obj) + /* cleanup: we don't return Py_CLEANUP_SUPPORTED, so + * we can assume that it was PyUnicode_FSConverter. */ + return PyUnicode_FSConverter(obj, result); + + if (obj == Py_None) { + *result = NULL; + return 1; + } + + return PyUnicode_FSConverter(obj, result); +} +#endif