return 0;
}
-PAKFIRE_EXPORT int pakfire_package_set_filelist(struct pakfire_package* pkg, struct pakfire_filelist* filelist) {
- int r;
-
- for (unsigned int i = 0; i < pakfire_filelist_size(filelist); i++) {
- struct pakfire_file* file = pakfire_filelist_get(filelist, i);
+static int __pakfire_package_set_filelist(struct pakfire* pakfire,
+ struct pakfire_file* file, void* data) {
+ struct pakfire_package* pkg = (struct pakfire_package*)data;
- const char* path = pakfire_file_get_path(file);
- if (path) {
- r = pakfire_package_append_file(pkg, path);
- if (r) {
- pakfire_file_unref(file);
- return r;
- }
- }
+ // Fetch the path
+ const char* path = pakfire_file_get_path(file);
- pakfire_file_unref(file);
- }
+ return pakfire_package_append_file(pkg, path);
+}
- return 0;
+PAKFIRE_EXPORT int pakfire_package_set_filelist(
+ struct pakfire_package* pkg, struct pakfire_filelist* filelist) {
+ return pakfire_filelist_walk(filelist, __pakfire_package_set_filelist, pkg);
}
int pakfire_package_set_filelist_from_string(struct pakfire_package* pkg, const char* files) {