]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Support userinstalled flags in pool_deb_get_autoinstalled
authorMichael Schroeder <mls@suse.de>
Wed, 25 Feb 2015 11:01:22 +0000 (12:01 +0100)
committerMichael Schroeder <mls@suse.de>
Wed, 25 Feb 2015 11:01:22 +0000 (12:01 +0100)
(This is so that we can support a name+arch flag later)

ext/repo_deb.c
ext/repo_deb.h

index c1ad9f5f081115a7b4c9b648ca1be07d926c8b50..05d731b3d00cc76b17c07c2d16ff33c1c89f8b88 100644 (file)
@@ -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;
index 4303b0538c0b307683cd5d72d052a893fad907d9..59939910a76f5e07fb38fea40792d2222718a951 100644 (file)
@@ -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)