Imported Upstream version 0.6.29
[platform/upstream/libsolv.git] / src / solver_private.h
index 8aeea18..a234223 100644 (file)
  *
  */
 
-#ifndef LIBSOLV_SOLVER_P_H
-#define LIBSOLV_SOLVER_P_H
+#ifndef LIBSOLV_SOLVER_PRIVATE_H
+#define LIBSOLV_SOLVER_PRIVATE_H
 
 extern void solver_run_sat(Solver *solv, int disablerules, int doweak);
 extern void solver_reset(Solver *solv);
 
-extern int solver_dep_installed(Solver *solv, Id dep);
-extern int solver_splitprovides(Solver *solv, Id dep);
+extern int solver_splitprovides(Solver *solv, Id dep, Map *m);
+extern int solver_dep_fulfilled_cplx(Solver *solv, Reldep *rd);
 
 static inline int
 solver_dep_fulfilled(Solver *solv, Id dep)
@@ -28,16 +28,10 @@ solver_dep_fulfilled(Solver *solv, Id dep)
   if (ISRELDEP(dep))
     {
       Reldep *rd = GETRELDEP(pool, dep);
-      if (rd->flags == REL_AND)
-        {
-          if (!solver_dep_fulfilled(solv, rd->name))
-            return 0;
-          return solver_dep_fulfilled(solv, rd->evr);
-        }
+      if (rd->flags == REL_COND || rd->flags == REL_UNLESS || rd->flags == REL_AND || rd->flags == REL_OR)
+       return solver_dep_fulfilled_cplx(solv, rd);
       if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_SPLITPROVIDES)
-        return solver_splitprovides(solv, rd->evr);
-      if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_INSTALLED)
-        return solver_dep_installed(solv, rd->evr);
+        return solver_splitprovides(solv, rd->evr, 0);
     }
   FOR_PROVIDES(p, pp, dep)
     {
@@ -73,4 +67,4 @@ solver_is_enhancing(Solver *solv, Solvable *s)
   return 0;
 }
 
-#endif /* LIBSOLV_SOLVER_P_H */
+#endif /* LIBSOLV_SOLVER_PRIVATE_H */