From: Michael Tremer Date: Mon, 8 May 2023 13:54:24 +0000 (+0000) Subject: _pakfire: archive: Allow opening packages in any repository X-Git-Tag: 0.9.29~157 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ac35d5fd2ab6fa738e263136d9759638c071862;p=pakfire.git _pakfire: archive: Allow opening packages in any repository Signed-off-by: Michael Tremer --- diff --git a/src/_pakfire/archive.c b/src/_pakfire/archive.c index 348334ba7..5c70ec749 100644 --- a/src/_pakfire/archive.c +++ b/src/_pakfire/archive.c @@ -32,6 +32,7 @@ #include "errors.h" #include "key.h" #include "package.h" +#include "repo.h" #include "util.h" PyObject* new_archive(PyTypeObject* type, struct pakfire_archive* archive) { @@ -146,13 +147,17 @@ static PyObject* Archive_extract(ArchiveObject* self) { Py_RETURN_NONE; } -static PyObject* Archive_get_package(ArchiveObject* self) { +static PyObject* Archive_get_package(ArchiveObject* self, PyObject* args) { struct pakfire_package* package = NULL; + RepoObject* repo = NULL; + + if (!PyArg_ParseTuple(args, "|O!", &RepoType, &repo)) + return NULL; Py_BEGIN_ALLOW_THREADS // Make the package - int r = pakfire_archive_make_package(self->archive, NULL, &package); + int r = pakfire_archive_make_package(self->archive, (repo) ? repo->repo : NULL, &package); if (r) { Py_BLOCK_THREADS PyErr_SetFromErrno(PyExc_OSError); @@ -212,7 +217,7 @@ static struct PyMethodDef Archive_methods[] = { { "get_package", (PyCFunction)Archive_get_package, - METH_NOARGS, + METH_VARARGS, NULL }, {