diff -r 3f841a46eab5 -r 4204db81cdbc librazor/iterator.c --- a/librazor/iterator.c Fri Oct 17 10:10:57 2014 +0100 +++ b/librazor/iterator.c Thu Jul 07 15:17:29 2016 +0100 @@ -317,6 +317,52 @@ free(fi); } +RAZOR_EXPORT struct razor_string_iterator * +razor_install_prefix_iterator_create(struct razor_set *set, + struct razor_package *package) +{ + struct razor_string_iterator *si; + + assert (set != NULL); + assert (package != NULL); + + si = zalloc(sizeof *si); + si->set = set; + + si->index = list_first(&package->install_prefixes, + &set->prefix_pool); + + return si; +} + +RAZOR_EXPORT int +razor_string_iterator_next(struct razor_string_iterator *si, + const char **string) +{ + char *pool; + int valid; + + assert (si != NULL); + + if (si->index) { + pool = si->set->string_pool.data; + *string = &pool[si->index->data]; + si->index = list_next(si->index); + valid = 1; + } else { + *string = NULL; + valid = 0; + } + + return valid; +} + +RAZOR_EXPORT void +razor_string_iterator_destroy(struct razor_string_iterator *si) +{ + free(si); +} + struct razor_package_query { struct razor_set *set; char *vector;