summaryrefslogtreecommitdiff
path: root/src/solverdebug.c
diff options
context:
space:
mode:
authorMichael Schroeder <mls@suse.de>2013-01-11 13:54:53 +0100
committerMichael Schroeder <mls@suse.de>2013-01-11 13:54:53 +0100
commitb746354f4cd0ef51a155241369de1f804f5f756c (patch)
tree00649aa23a4b9e84575bb26b6b309fe92add8ee1 /src/solverdebug.c
parent80cc562d125daa090c1dbdba7aa85e0860ba9b90 (diff)
downloadlibsolv-b746354f4cd0ef51a155241369de1f804f5f756c.tar.gz
libsolv-b746354f4cd0ef51a155241369de1f804f5f756c.tar.bz2
libsolv-b746354f4cd0ef51a155241369de1f804f5f756c.zip
support "pooljobs", fixed jobs set in the pool
Those are normally jobs like USERINSTALLED or NOOBSOLETES.
Diffstat (limited to 'src/solverdebug.c')
-rw-r--r--src/solverdebug.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/solverdebug.c b/src/solverdebug.c
index 58785f7..666401f 100644
--- a/src/solverdebug.c
+++ b/src/solverdebug.c
@@ -656,9 +656,11 @@ solver_printsolution(Solver *solv, Id problem, Id solution)
element = 0;
while ((element = solver_next_solutionelement(solv, problem, solution, element, &p, &rp)) != 0)
{
- if (p == SOLVER_SOLUTION_JOB)
+ if (p == SOLVER_SOLUTION_JOB || p == SOLVER_SOLUTION_POOLJOB)
{
/* job, rp is index into job queue */
+ if (p == SOLVER_SOLUTION_JOB)
+ rp += solv->pooljobcnt;
how = solv->job.elements[rp - 1];
what = solv->job.elements[rp];
select = how & SOLVER_SELECTMASK;
@@ -1042,10 +1044,13 @@ const char *
solver_solutionelement2str(Solver *solv, Id p, Id rp)
{
Pool *pool = solv->pool;
- if (p == SOLVER_SOLUTION_JOB)
+ if (p == SOLVER_SOLUTION_JOB || p == SOLVER_SOLUTION_POOLJOB)
{
- Id how = solv->job.elements[rp - 1];
- Id what = solv->job.elements[rp];
+ Id how, what;
+ if (p == SOLVER_SOLUTION_JOB)
+ rp += solv->pooljobcnt;
+ how = solv->job.elements[rp - 1];
+ what = solv->job.elements[rp];
return pool_tmpjoin(pool, "do not ask to ", pool_job2str(pool, how, what, 0), 0);
}
else if (p == SOLVER_SOLUTION_INFARCH)