From: Michael Schroeder Date: Thu, 3 Apr 2025 11:05:54 +0000 (+0200) Subject: Add dataiterator_final_{solvable,repo} functions X-Git-Tag: 0.7.32~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69e515104392e0c78d0a33e075ab59cf04dfcbd9;p=thirdparty%2Flibsolv.git Add dataiterator_final_{solvable,repo} functions Those are needed by libzypp. They tell the dataiterator that it should stay in the solvable/repository. --- diff --git a/src/dataiterator.h b/src/dataiterator.h index efa76b7e..bd98b29a 100644 --- a/src/dataiterator.h +++ b/src/dataiterator.h @@ -179,10 +179,12 @@ void dataiterator_setpos(Dataiterator *di); 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); diff --git a/src/libsolv.ver b/src/libsolv.ver index b9f9f960..accb5aa7 100644 --- a/src/libsolv.ver +++ b/src/libsolv.ver @@ -2,6 +2,8 @@ SOLV_1.0 { global: dataiterator_clonepos; dataiterator_entersub; + dataiterator_final_repo; + dataiterator_final_solvable; dataiterator_free; dataiterator_init; dataiterator_init_clone; diff --git a/src/repodata.c b/src/repodata.c index 72f03d48..10e7b42b 100644 --- a/src/repodata.c +++ b/src/repodata.c @@ -2143,6 +2143,19 @@ dataiterator_skip_repo(Dataiterator *di) 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) {