diff --git a/fragment.c b/fragment.c index e8b0484..c230d40 100644 --- a/fragment.c +++ b/fragment.c @@ -65,3 +65,16 @@ pkg_fragment_add(pkg_fragment_t *head, const char *string) return pkg_fragment_append(head, frag); } + +void +pkg_fragment_delete(pkg_fragment_t *node) +{ + if (node->prev != NULL) + node->prev->next = node->next; + + if (node->next != NULL) + node->next->prev = node->prev; + + free(node->data); + free(node); +} diff --git a/pkg.h b/pkg.h index 7ebe0ee..9d0e77e 100644 --- a/pkg.h +++ b/pkg.h @@ -136,5 +136,6 @@ int argv_split(const char *src, int *argc, char ***argv); /* fragment.c */ pkg_fragment_t *pkg_fragment_append(pkg_fragment_t *head, pkg_fragment_t *tail); pkg_fragment_t *pkg_fragment_add(pkg_fragment_t *head, const char *string); +void pkg_fragment_delete(pkg_fragment_t *node); #endif