summaryrefslogtreecommitdiffstats
path: root/src/overlay.c
diff options
context:
space:
mode:
authorDetlev Casanova <detlev.casanova@gmail.com>2010-07-09 12:41:42 +0200
committerDetlev Casanova <detlev.casanova@gmail.com>2010-07-09 12:41:42 +0200
commit4e75e7f79601122313e83c4e8d22492492e970e2 (patch)
treef2878c129d93a147111a98478d83c38f46e135cb /src/overlay.c
parent97d75ee996220405a15f134924ac380262ec46f7 (diff)
downloadlayman-4e75e7f79601122313e83c4e8d22492492e970e2.tar.gz
layman-4e75e7f79601122313e83c4e8d22492492e970e2.tar.bz2
layman-4e75e7f79601122313e83c4e8d22492492e970e2.zip
Add some methods to Overlay, fix some warnings
Diffstat (limited to 'src/overlay.c')
-rw-r--r--src/overlay.c51
1 files changed, 51 insertions, 0 deletions
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);
}