From 5ac35d5fd2ab6fa738e263136d9759638c071862 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 8 May 2023 13:54:24 +0000 Subject: [PATCH] _pakfire: archive: Allow opening packages in any repository Signed-off-by: Michael Tremer --- src/_pakfire/archive.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 }, { -- 2.39.5