From 58c1b550e9a96dbd1efcf42a8389b6819249aee5 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 8 Aug 2009 19:34:17 +0200 Subject: python/arfile.cc: Make ArArchive iterable. --- python/arfile.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'python') diff --git a/python/arfile.cc b/python/arfile.cc index 1185c16a..2eb6f1cd 100644 --- a/python/arfile.cc +++ b/python/arfile.cc @@ -289,6 +289,14 @@ static PyObject *ararchive_getnames(PyArArchiveObject *self) return list; } +// Just run getmembers() and return an iterator over the list. +static PyObject *ararchive_iter(PyArArchiveObject *self) { + PyObject *members = ararchive_getmembers(self); + PyObject *iter = PyObject_GetIter(members); + Py_DECREF(members); + return iter; +} + PyMethodDef ararchive_methods[] = { {"getmember",(PyCFunction)ararchive_getmember,METH_O, ararchive_getmember_doc}, @@ -395,7 +403,7 @@ PyTypeObject PyArArchive_Type = { CppOwnedClear, // tp_clear 0, // tp_richcompare 0, // tp_weaklistoffset - 0, // tp_iter + (getiterfunc)ararchive_iter, // tp_iter 0, // tp_iternext ararchive_methods, // tp_methods 0, // tp_members -- cgit v1.2.3