int repo_lookup_deparray(Repo *repo, Id entry, Id keyname, Queue *q, Id marker) { int r = repo_lookup_idarray(repo, entry, keyname, q); if (r && marker) { int i; if (marker < 0) { marker = -marker; for (i = 0; i < q->count; i++) if (q->elements[i] == marker) { queue_truncate(q, i); return r; } } else { for (i = 0; i < q->count; i++) if (q->elements[i] == marker) { queue_deleten(q, 0, i + 1); return r; } } } return r; }
int solvable_lookup_idarray(Solvable *s, Id keyname, Queue *q) { if (!s->repo) { queue_empty(q); return 0; } return repo_lookup_idarray(s->repo, s - s->repo->pool->solvables, keyname, q); }