Signed-off-by: Allan McRae <[email protected]>
---
 lib/libalpm/package.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index f1682cb..ed6d71d 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -565,7 +565,9 @@ static void find_requiredby(pmpkg_t *pkg, pmdb_t *db, 
alpm_list_t **reqs)
                pmpkg_t *cachepkg = i->data;
                if(_alpm_dep_edge(cachepkg, pkg)) {
                        const char *cachepkgname = cachepkg->name;
-                       *reqs = alpm_list_add(*reqs, strdup(cachepkgname));
+                       if(alpm_list_find_str(*reqs, cachepkgname) == 0) {
+                               *reqs = alpm_list_add(*reqs, 
strdup(cachepkgname));
+                       }
                }
        }
 }
@@ -595,6 +597,7 @@ alpm_list_t SYMEXPORT *alpm_pkg_compute_requiredby(pmpkg_t 
*pkg)
                        for(i = handle->dbs_sync; i; i = i->next) {
                                db = i->data;
                                find_requiredby(pkg, db, &reqs);
+                               reqs = alpm_list_msort(reqs, 
alpm_list_count(reqs), _alpm_str_cmp);
                        }
                }
        }
-- 
1.7.0.3



Reply via email to