diff options
author | Xavier Chantry <shiningxc@gmail.com> | 2008-08-24 02:29:10 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-08-25 18:06:51 -0500 |
commit | 9dbe5c9d1ee5fb00f25515dfb5a2feb3ae6ebd59 (patch) | |
tree | 9f071d996ef5652d7744144374adbfc30a92d9ae /src/pacman/util.c | |
parent | a06d0de104d2f03c19b917ea47394d8d6be89a9a (diff) |
pacman : smarter optdepends handling.
During an upgrade, only the new optdepends will be displayed, to only keep
the useful information and not clutter pacman output too much.
The whole optdepends list is always available with -Si / -Qi.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'src/pacman/util.c')
-rw-r--r-- | src/pacman/util.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/pacman/util.c b/src/pacman/util.c index 14ae0ed3..fd0d38c7 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -609,6 +609,25 @@ void display_synctargets(const alpm_list_t *syncpkgs) alpm_list_free(rpkglist); } +/* Helper function for comparing strings using the + * alpm "compare func" signature */ +int str_cmp(const void *s1, const void *s2) +{ + return(strcmp(s1, s2)); +} + +void display_new_optdepends(pmpkg_t *oldpkg, pmpkg_t *newpkg) +{ + alpm_list_t *old = alpm_pkg_get_optdepends(oldpkg); + alpm_list_t *new = alpm_pkg_get_optdepends(newpkg); + alpm_list_t *optdeps = alpm_list_diff(new,old,str_cmp); + if(optdeps) { + printf(_("New optional dependencies for %s\n"), alpm_pkg_get_name(newpkg)); + list_display_linebreak(" ", optdeps); + } + alpm_list_free(optdeps); +} + void display_optdepends(pmpkg_t *pkg) { alpm_list_t *optdeps = alpm_pkg_get_optdepends(pkg); |