From 86845f7098888c8cf96a759ed68ee563999b3ba8 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Thu, 9 Aug 2012 17:14:56 -0500 Subject: [PATCH] fragment: reparent a fragment-list when a duplicate is encountered (closes issue #34). --- fragment.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fragment.c b/fragment.c index f7d4c8f..be34d6f 100644 --- a/fragment.c +++ b/fragment.c @@ -86,8 +86,13 @@ pkg_fragment_copy(pkg_fragment_t *head, pkg_fragment_t *base) { pkg_fragment_t *frag; - if (pkg_fragment_exists(head, base)) - return head; + if ((frag = pkg_fragment_lookup(head, base)) != NULL) + { + if (head == frag) + head = frag->next; + + pkg_fragment_delete(frag); + } frag = calloc(sizeof(pkg_fragment_t), 1);