From: Michael Schroeder Date: Wed, 25 Feb 2015 11:01:22 +0000 (+0100) Subject: Support userinstalled flags in pool_deb_get_autoinstalled X-Git-Tag: 0.6.9~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e8c3909e8471e53d657101f78532969b3e0be5bc;p=thirdparty%2Flibsolv.git Support userinstalled flags in pool_deb_get_autoinstalled (This is so that we can support a name+arch flag later) --- diff --git a/ext/repo_deb.c b/ext/repo_deb.c index c1ad9f5f..05d731b3 100644 --- a/ext/repo_deb.c +++ b/ext/repo_deb.c @@ -17,6 +17,7 @@ #include "pool.h" #include "repo.h" #include "util.h" +#include "solver.h" /* for GET_USERINSTALLED_ flags */ #include "chksum.h" #include "repo_deb.h" @@ -619,7 +620,7 @@ repo_add_deb(Repo *repo, const char *deb, int flags) } void -pool_deb_get_autoinstalled(Pool *pool, FILE *fp, Queue *q) +pool_deb_get_autoinstalled(Pool *pool, FILE *fp, Queue *q, int flags) { Id name = 0, arch = 0; int autoinstalled = -1; @@ -654,14 +655,19 @@ pool_deb_get_autoinstalled(Pool *pool, FILE *fp, Queue *q) l = 0; if (name && autoinstalled > 0) { - FOR_PROVIDES(p, pp, name) + if ((flags & GET_USERINSTALLED_NAMES) != 0) + queue_push(q, name); + else { - Solvable *s = pool->solvables + p; - if (s->name != name) - continue; - if (arch && s->arch != arch) - continue; - queue_push(q, p); + FOR_PROVIDES(p, pp, name) + { + Solvable *s = pool->solvables + p; + if (s->name != name) + continue; + if (arch && s->arch != arch) + continue; + queue_push(q, p); + } } } name = arch = 0; diff --git a/ext/repo_deb.h b/ext/repo_deb.h index 4303b053..59939910 100644 --- a/ext/repo_deb.h +++ b/ext/repo_deb.h @@ -8,6 +8,6 @@ extern int repo_add_debpackages(Repo *repo, FILE *fp, int flags); extern int repo_add_debdb(Repo *repo, int flags); extern Id repo_add_deb(Repo *repo, const char *deb, int flags); -extern void pool_deb_get_autoinstalled(Pool *pool, FILE *fp, Queue *q); +extern void pool_deb_get_autoinstalled(Pool *pool, FILE *fp, Queue *q, int flags); #define DEBS_ADD_WITH_PKGID (1 << 8)