support SOLVER_FLAG_DUP_ALLOW* flags in solver_set_flags and bindings
[platform/upstream/libsolv.git] / src / solver_private.h
index 43bc66e..170efc2 100644 (file)
@@ -28,12 +28,18 @@ solver_dep_fulfilled(Solver *solv, Id dep)
   if (ISRELDEP(dep))
     {
       Reldep *rd = GETRELDEP(pool, dep);
-      if (rd->flags == REL_AND)
+      if (rd->flags == REL_AND || rd->flags == REL_COND)
         {
           if (!solver_dep_fulfilled(solv, rd->name))
             return 0;
           return solver_dep_fulfilled(solv, rd->evr);
         }
+      if (rd->flags == REL_OR)
+       {
+          if (solver_dep_fulfilled(solv, rd->name))
+           return 1;
+          return solver_dep_fulfilled(solv, rd->evr);
+       }
       if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_SPLITPROVIDES)
         return solver_splitprovides(solv, rd->evr);
       if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_INSTALLED)