]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
always provide pool_setdisttype
authorMichael Schroeder <mls@suse.de>
Thu, 9 Oct 2014 13:22:15 +0000 (15:22 +0200)
committerMichael Schroeder <mls@suse.de>
Thu, 9 Oct 2014 13:22:15 +0000 (15:22 +0200)
Also return an error for unsupported distributions.

src/pool.c
src/pool.h

index 8dff38a6e3469b8a1cf1a2ecb0c26ad069458ba8..8de4cc5519d7d84eb9758060eaa53f236a0e4a8e 100644 (file)
@@ -141,22 +141,33 @@ pool_freeallrepos(Pool *pool, int reuseids)
   pool_free_solvable_block(pool, 2, pool->nsolvables - 2, reuseids);
 }
 
-#ifdef MULTI_SEMANTICS
-void
+int
 pool_setdisttype(Pool *pool, int disttype)
 {
+#ifdef MULTI_SEMANTICS
+  int olddisttype = pool->disttype;
+  switch(disttype)
+    {
+    case DISTTYPE_RPM:
+      pool->noarchid = ARCH_NOARCH;
+      break;
+    case DISTTYPE_DEB:
+      pool->noarchid = ARCH_ALL;
+      break;
+    case DISTTYPE_ARCH:
+    case DISTTYPE_HAIKU:
+      pool->noarchid = ARCH_ANY;
+      break;
+    default:
+      return -1;
+    }
   pool->disttype = disttype;
-  if (disttype == DISTTYPE_RPM)
-    pool->noarchid = ARCH_NOARCH;
-  if (disttype == DISTTYPE_DEB)
-    pool->noarchid = ARCH_ALL;
-  if (disttype == DISTTYPE_ARCH)
-    pool->noarchid = ARCH_ANY;
-  if (disttype == DISTTYPE_HAIKU)
-    pool->noarchid = ARCH_ANY;
   pool->solvables[SYSTEMSOLVABLE].arch = pool->noarchid;
-}
+  return olddisttype;
+#else
+  return pool->disttype == disttype ? disttype : -1;
 #endif
+}
 
 int
 pool_get_flag(Pool *pool, int flag)
index 9761ce1434aa70120a8e8bf32dbf721dddd4ea95..f6e5d290d3d4ef92641fe37421d9503c6f5ea744 100644 (file)
@@ -225,9 +225,7 @@ extern void pool_free(Pool *pool);
 extern void pool_freeallrepos(Pool *pool, int reuseids);
 
 extern void pool_setdebuglevel(Pool *pool, int level);
-#ifdef MULTI_SEMANTICS
-extern void pool_setdisttype(Pool *pool, int disttype);
-#endif
+extern int  pool_setdisttype(Pool *pool, int disttype);
 extern int  pool_set_flag(Pool *pool, int flag, int value);
 extern int  pool_get_flag(Pool *pool, int flag);