1 From 53de52b533ee30676d051ee941cfc0a517e9190e Mon Sep 17 00:00:00 2001
2 From: Andreas Oberritter <obi@opendreambox.org>
3 Date: Thu, 17 May 2012 01:18:42 +0200
4 Subject: [PATCH 08/10] pkg_hash_fetch_conflicts: take into account conflicts
7 Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
9 libopkg/pkg_depends.c | 17 +++++++++++++++++
10 1 file changed, 17 insertions(+)
12 diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
13 index 1999b64..f237733 100644
14 --- a/libopkg/pkg_depends.c
15 +++ b/libopkg/pkg_depends.c
16 @@ -337,6 +337,22 @@ static void __pkg_hash_fetch_conflicts(pkg_t * pkg, pkg_vec_t * installed_confli
20 +static void __pkg_hash_fetch_conflictees(pkg_t *pkg, pkg_vec_t *installed_conflicts)
24 + pkg_vec_t *available_pkgs = pkg_vec_alloc();
25 + pkg_hash_fetch_all_installed(available_pkgs);
27 + for (i = 0; i < available_pkgs->len; i++) {
28 + pkg_t *cpkg = available_pkgs->pkgs[i];
29 + if (pkg_conflicts(cpkg, pkg) && !is_pkg_in_pkg_vec(installed_conflicts, cpkg))
30 + pkg_vec_insert(installed_conflicts, cpkg);
33 + pkg_vec_free(available_pkgs);
36 pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
38 pkg_vec_t * installed_conflicts;
39 @@ -354,6 +370,7 @@ pkg_vec_t * pkg_hash_fetch_conflicts(pkg_t * pkg)
40 installed_conflicts = pkg_vec_alloc();
42 __pkg_hash_fetch_conflicts(pkg, installed_conflicts);
43 + __pkg_hash_fetch_conflictees(pkg, installed_conflicts);
45 if (installed_conflicts->len)
46 return installed_conflicts;