void dataiterator_setpos_parent(Dataiterator *di);
int dataiterator_match(Dataiterator *di, Datamatcher *ma);
void dataiterator_skip_attribute(Dataiterator *di);
-void dataiterator_skip_solvable(Dataiterator *di);
void dataiterator_skip_repo(Dataiterator *di);
-void dataiterator_jump_to_solvid(Dataiterator *di, Id solvid);
+void dataiterator_skip_solvable(Dataiterator *di);
+void dataiterator_final_repo(Dataiterator *di);
+void dataiterator_final_solvable(Dataiterator *di);
void dataiterator_jump_to_repo(Dataiterator *di, Repo *repo);
+void dataiterator_jump_to_solvid(Dataiterator *di, Id solvid);
void dataiterator_entersub(Dataiterator *di);
void dataiterator_clonepos(Dataiterator *di, Dataiterator *from);
void dataiterator_seek(Dataiterator *di, int whence);
di->state = di_nextrepo;
}
+void
+dataiterator_final_solvable(Dataiterator *di)
+{
+ di->flags |= SEARCH_THISSOLVID;
+ di->repoid = 0;
+}
+
+void
+dataiterator_final_repo(Dataiterator *di)
+{
+ di->repoid = 0;
+}
+
void
dataiterator_jump_to_solvid(Dataiterator *di, Id solvid)
{