diff --git a/parse.c b/parse.c index 4c70461..9738a02 100644 --- a/parse.c +++ b/parse.c @@ -107,6 +107,23 @@ pkg_dependency_append(pkg_dependency_t *head, pkg_dependency_t *tail) return head; } +void +pkg_dependency_free(pkg_dependency_t *head) +{ + pkg_dependency_t *node, *next; + + foreach_list_entry_safe(head, next, node) + { + if (node->package != NULL) + free(node->package); + + if (node->version != NULL) + free(node->version); + + free(node); + } +} + pkg_dependency_t * parse_deplist(pkg_t *pkg, const char *depends) { diff --git a/pkg.h b/pkg.h index 555b6f1..fa22e58 100644 --- a/pkg.h +++ b/pkg.h @@ -140,6 +140,7 @@ const char *pkg_get_comparator(pkg_dependency_t *pkgdep); pkg_t *parse_file(const char *path, FILE *f); pkg_dependency_t *parse_deplist(pkg_t *pkg, const char *depends); pkg_dependency_t *pkg_dependency_append(pkg_dependency_t *head, pkg_dependency_t *tail); +void pkg_dependency_free(pkg_dependency_t *head); /* argvsplit.c */ int argv_split(const char *src, int *argc, char ***argv);