On 16/07/12 08:33, Clemens Buchacher wrote:
> If an upgraded package version contains new optdeps, the user is
> notified of that. If the new optdep is already installed, that
> information is redundant.
> 
> Instead, do not output new optdeps if they are already installed.
> 
> Signed-off-by: Clemens Buchacher <[email protected]>
> ---


FYI - there is a large patchset fo optdepends that needs tidied up with
includes this functionality:
https://github.com/moben/pacman/commit/bd6c1294

I would also like to see this filter out things that are about to be
installed...


>  src/pacman/util.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/src/pacman/util.c b/src/pacman/util.c
> index 7f7f6a7..e774fa8 100644
> --- a/src/pacman/util.c
> +++ b/src/pacman/util.c
> @@ -1192,6 +1192,20 @@ static int depend_cmp(const void *d1, const void *d2)
>       return ret;
>  }
>  
> +static alpm_list_t *filter_out_installed(alpm_list_t *list)
> +{
> +     alpm_list_t *i, *not_installed = NULL;
> +     alpm_db_t *db_local = alpm_get_localdb(config->handle);
> +
> +     for(i = list; i; i = alpm_list_next(i)) {
> +             if(!alpm_db_get_pkg(db_local, i->data))
> +                     not_installed = alpm_list_add(not_installed, i->data);
> +     }
> +     alpm_list_free(list);
> +
> +     return not_installed;
> +}
> +
>  void display_new_optdepends(alpm_pkg_t *oldpkg, alpm_pkg_t *newpkg)
>  {
>       alpm_list_t *i, *old, *new, *optdeps, *optstrings = NULL;
> @@ -1206,6 +1220,8 @@ void display_new_optdepends(alpm_pkg_t *oldpkg, 
> alpm_pkg_t *newpkg)
>               optstrings = alpm_list_add(optstrings, 
> alpm_dep_compute_string(optdep));
>       }
>  
> +     optstrings = filter_out_installed(optstrings);
> +
>       if(optstrings) {
>               printf(_("New optional dependencies for %s\n"), 
> alpm_pkg_get_name(newpkg));
>               unsigned short cols = getcols(fileno(stdout));
> 



Reply via email to