From 4e75e7f79601122313e83c4e8d22492492e970e2 Mon Sep 17 00:00:00 2001 From: Detlev Casanova Date: Fri, 9 Jul 2010 12:41:42 +0200 Subject: Add some methods to Overlay, fix some warnings --- src/overlay.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'src/overlay.c') diff --git a/src/overlay.c b/src/overlay.c index 79fee08..74910f9 100644 --- a/src/overlay.c +++ b/src/overlay.c @@ -93,10 +93,61 @@ int overlayIsOfficial(Overlay *o) return (int) PyLong_AsLong(iso); } +int overlayIsSupported(Overlay *o) +{ + if (!o || !o->object) + return -1; + + PyObject *iss = PyObject_CallMethod(o->object, "is_supported", NULL); + + //TODO:Py_DECREF me ! + + return (int) PyLong_AsLong(iss); +} + +const char *overlayShortList(Overlay *o) +{ + if (!o || !o->object) + return NULL; + + PyObject *sl = PyObject_CallMethod(o->object, "short_list", NULL); + + //TODO:Py_DECREF me ! + + return PyBytes_AsString(sl); +} + +const char *overlayStr(Overlay *o) +{ + if (!o || !o->object) + return NULL; + + PyObject *str = PyObject_CallMethod(o->object, "str", NULL); + + //TODO:Py_DECREF me ! + + return PyBytes_AsString(str); +} + +const char *overlayToXml(Overlay *o) +{ + if (!o || !o->object) + return NULL; + + PyObject *element = PyObject_CallMethod(o->object, "to_xml", NULL); + PyObject *str = executeFunction("xml.etree.ElementTree", "tostring", "(O)", element); + + Py_DECREF(element); + + return PyBytes_AsString(str); +} + void overlayFree(Overlay *o) { if (o && o->object) + { Py_DECREF(o->object); + } if (o) free(o); } -- cgit v1.2.3-1-g7c22