From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1RBYXL-0003Yw-A8 for garchives@archives.gentoo.org; Wed, 05 Oct 2011 20:57:55 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E3E1521C19F; Wed, 5 Oct 2011 20:56:52 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id A44EE21C1AC for ; Wed, 5 Oct 2011 20:56:52 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1C3E51B4044 for ; Wed, 5 Oct 2011 20:56:52 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 3B8D280060 for ; Wed, 5 Oct 2011 20:56:51 +0000 (UTC) From: "Brian Dolbec" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Brian Dolbec" Message-ID: <4e75e7f79601122313e83c4e8d22492492e970e2.dol-sen@gentoo> Subject: [gentoo-commits] proj/layman:master commit in: src/ X-VCS-Repository: proj/layman X-VCS-Files: src/interpreter.c src/overlay.c src/overlay.h src/tester.c X-VCS-Directories: src/ X-VCS-Committer: dol-sen X-VCS-Committer-Name: Brian Dolbec X-VCS-Revision: 4e75e7f79601122313e83c4e8d22492492e970e2 Date: Wed, 5 Oct 2011 20:56:51 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: d6023d162c718ab6d488f79a5b0ed5e0 commit: 4e75e7f79601122313e83c4e8d22492492e970e2 Author: Detlev Casanova gmail com> AuthorDate: Fri Jul 9 10:41:42 2010 +0000 Commit: Brian Dolbec gmail com> CommitDate: Fri Jul 9 10:41:42 2010 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/layman.git;a=3D= commit;h=3D4e75e7f7 Add some methods to Overlay, fix some warnings --- src/interpreter.c | 4 ++++ src/overlay.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++= ++++ src/overlay.h | 6 +++++- src/tester.c | 4 ++++ 4 files changed, 64 insertions(+), 1 deletions(-) diff --git a/src/interpreter.c b/src/interpreter.c index e68f1a2..619a157 100644 --- a/src/interpreter.c +++ b/src/interpreter.c @@ -69,7 +69,9 @@ void freeList(PyObjectList *list, int deref) PyObjectListElem *tmp =3D node; node =3D node->next; if (deref) + { Py_DECREF(tmp->object); + } free(tmp); } =20 @@ -173,7 +175,9 @@ PyObject *executeFunction(const char *module, const c= har *funcName, const char* PyObject *val =3D PyObject_CallObject(func, args); =20 if (args !=3D NULL) + { Py_DECREF(args); + } =20 return val; } 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); } =20 +int overlayIsSupported(Overlay *o) +{ + if (!o || !o->object) + return -1; + + PyObject *iss =3D 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 =3D 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 =3D 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 =3D PyObject_CallMethod(o->object, "to_xml", NULL); + PyObject *str =3D 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); } diff --git a/src/overlay.h b/src/overlay.h index 9125de0..2f64bde 100644 --- a/src/overlay.h +++ b/src/overlay.h @@ -6,9 +6,13 @@ typedef struct Overlay Overlay; Overlay* createOverlay(const char*, const char*, int, int); const char* overlayName(Overlay*); const char* overlayOwnerEmail(Overlay*); -int overlayPriority(Overlay*); const char* overlayDescription(Overlay*); +const char* overlayShortList(Overlay *o); +const char* overlayStr(Overlay *o); +const char* overlayToXml(Overlay *o); +int overlayPriority(Overlay*); int overlayIsOfficial(Overlay*); +int overlayIsSupported(Overlay *o); void overlayFree(Overlay*); =20 #endif diff --git a/src/tester.c b/src/tester.c index 53e4776..40be2ff 100644 --- a/src/tester.c +++ b/src/tester.c @@ -3,6 +3,8 @@ =20 int main(int argc, char *argv[]) { + argc =3D argc; + argv =3D argv; interpreterInit(); =09 Overlay *o =3D createOverlay("Test", "", 1, 0); @@ -15,6 +17,8 @@ int main(int argc, char *argv[]) =09 printf("Overlay name =3D %s, owner email : %s, description : %s, priori= ty : %d, it is %sofficial.\n", overlayName(o), overlayOwnerEmail(o), over= layDescription(o), overlayPriority(o), overlayIsOfficial(o) ? "" : "not "= ); =20 + printf("xml is %s\n", overlayToXml(o)); + interpreterFinalize(); =20 return 0;