- if (pool->solvables[p].repo != installed)
- continue;
- MAPCLR(&userinstalled, p - installed->start);
+ if (pool->solvables[p].repo == installed)
+ MAPCLR(&userinstalled, p - installed->start);
+ }
+ /* set userinstalled bits for all packages not in the considered map */
+ if (pool->considered)
+ {
+ for (p = installed->start; p < installed->end; p++)
+ if (!MAPTST(pool->considered, p))
+ MAPSET(&userinstalled, p - installed->start); /* we may not remove those */
+ }
+ if (!unneeded && solv->cleandeps_updatepkgs)
+ {
+ /* find update seeds */
+ queue_init(&updatepkgs_filtered);
+ find_update_seeds(solv, &updatepkgs_filtered, &userinstalled);
+ /* clear userinstalled bit for the packages we want to update */
+ /* also add them to the erase list */
+ for (i = 0; i < solv->cleandeps_updatepkgs->count; i++)
+ {
+ p = solv->cleandeps_updatepkgs->elements[i];
+ if (pool->considered && !MAPTST(pool->considered, p))
+ continue;
+ queue_push(&iq, p);
+ MAPCLR(&userinstalled, p - installed->start);
+ }