Imported Upstream version 0.7.27
[platform/upstream/libsolv.git] / src / linkedpkg.c
index 5912f98..26fb706 100644 (file)
@@ -44,7 +44,7 @@
 
 #ifdef ENABLE_LINKED_PKGS
 
-void
+static void
 find_application_link(Pool *pool, Solvable *s, Id *reqidp, Queue *qr, Id *prvidp, Queue *qp)
 {
   Id req = 0;
@@ -121,7 +121,7 @@ find_application_link(Pool *pool, Solvable *s, Id *reqidp, Queue *qr, Id *prvidp
     *prvidp = prv;
 }
 
-void
+static void
 find_product_link(Pool *pool, Solvable *s, Id *reqidp, Queue *qr, Id *prvidp, Queue *qp)
 {
   Id p, pp, namerelid;
@@ -232,7 +232,7 @@ find_product_link(Pool *pool, Solvable *s, Id *reqidp, Queue *qr, Id *prvidp, Qu
     *prvidp = solvable_selfprovidedep(s);
 }
 
-void
+static void
 find_pattern_link(Pool *pool, Solvable *s, Id *reqidp, Queue *qr, Id *prvidp, Queue *qp)
 {
   Id p, pp, *pr, apevr = 0, aprel = 0;
@@ -274,37 +274,31 @@ find_pattern_link(Pool *pool, Solvable *s, Id *reqidp, Queue *qr, Id *prvidp, Qu
     *prvidp = aprel;
 }
 
-/* the following two functions are used in solvable_lookup_str_base to do
+/* the following function is used in solvable_lookup_str_base to do
  * translated lookups on the product/pattern packages
  */
 Id
-find_autopattern_name(Pool *pool, Solvable *s)
+find_autopackage_name(Pool *pool, Solvable *s)
 {
+  const char *autoprv = 0;
+  const char *n = pool_id2str(pool, s->name);
   Id prv, *prvp;
-  if (!s->provides)
-    return 0;
-  for (prvp = s->repo->idarraydata + s->provides; (prv = *prvp++) != 0; )
-    if (ISRELDEP(prv))
-      {
-        Reldep *rd = GETRELDEP(pool, prv);
-        if (rd->flags == REL_EQ && !strcmp(pool_id2str(pool, rd->name), "autopattern()"))
-          return strncmp(pool_id2str(pool, rd->evr), "pattern:", 8) != 0 ? rd->evr : 0;
-      }
-  return 0;
-}
 
-Id
-find_autoproduct_name(Pool *pool, Solvable *s)
-{
-  Id prv, *prvp;
-  if (!s->provides)
+  if (*n == 'p')
+    {
+      if (!strncmp("pattern:", n, 8))
+       autoprv = "autopattern()";
+      if (!strncmp("product:", n, 8))
+       autoprv = "autoproduct()";
+    }
+  if (!autoprv)
     return 0;
   for (prvp = s->repo->idarraydata + s->provides; (prv = *prvp++) != 0; )
     if (ISRELDEP(prv))
       {
         Reldep *rd = GETRELDEP(pool, prv);
-        if (rd->flags == REL_EQ && !strcmp(pool_id2str(pool, rd->name), "autoproduct()"))
-          return strncmp(pool_id2str(pool, rd->evr), "product:", 8) != 0 ? rd->evr : 0;
+        if (rd->flags == REL_EQ && !strcmp(pool_id2str(pool, rd->name), autoprv))
+          return rd->evr;
       }
   return 0;
 }