summaryrefslogtreecommitdiff
path: root/src/policy.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/policy.c')
-rw-r--r--src/policy.c33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/policy.c b/src/policy.c
index 3a0a737..7ed52d9 100644
--- a/src/policy.c
+++ b/src/policy.c
@@ -1231,8 +1231,15 @@ urpm_reorder(Solver *solv, Queue *plist)
if (knid)
{
FOR_PROVIDES(p, pp, knid)
- if (solv->decisionmap[p] > 0 || (pool->installed && pool->solvables[p].repo == pool->installed))
- score = 3;
+ {
+ if (solv->decisionmap[p] > 0)
+ {
+ score = 4;
+ break;
+ }
+ else if (pool->installed && pool->solvables[p].repo == pool->installed)
+ score = 3;
+ }
}
}
}
@@ -1257,8 +1264,15 @@ urpm_reorder(Solver *solv, Queue *plist)
if (knid)
{
FOR_PROVIDES(p, pp, knid)
- if (solv->decisionmap[p] > 0 || (pool->installed && pool->solvables[p].repo == pool->installed))
- score = 3;
+ {
+ if (solv->decisionmap[p] > 0)
+ {
+ score = 4;
+ break;
+ }
+ if (pool->installed && pool->solvables[p].repo == pool->installed)
+ score = 3;
+ }
}
}
}
@@ -1284,8 +1298,15 @@ urpm_reorder(Solver *solv, Queue *plist)
{
score = 0;
FOR_PROVIDES(p, pp, id)
- if (solv->decisionmap[p] > 0 || (pool->installed && pool->solvables[p].repo == pool->installed))
- score = 3;
+ {
+ if (solv->decisionmap[p] > 0)
+ {
+ score = 4;
+ break;
+ }
+ if (pool->installed && pool->solvables[p].repo == pool->installed)
+ score = 3;
+ }
break;
}
}