]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Add dataiterator_final_{solvable,repo} functions
authorMichael Schroeder <mls@suse.de>
Thu, 3 Apr 2025 11:05:54 +0000 (13:05 +0200)
committerMichael Schroeder <mls@suse.de>
Thu, 3 Apr 2025 11:05:54 +0000 (13:05 +0200)
Those are needed by libzypp. They tell the dataiterator that it
should stay in the solvable/repository.

src/dataiterator.h
src/libsolv.ver
src/repodata.c

index efa76b7e446e74ee2964b140301ae486524ec7d3..bd98b29a32a411d7f047bda3c428cb6ad700ce80 100644 (file)
@@ -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);
index b9f9f960d0f949c22c8cfb71a3b55ce52b1f7ffc..accb5aa7e7a28a95e303ca2f671b80ecf3ef26d9 100644 (file)
@@ -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;
index 72f03d4888f0559470cd1026acf9fb978b2dd9c8..10e7b42bbf5795cd7f733a8d2d20f8e86efcfa36 100644 (file)
@@ -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)
 {