On 19/06/13 15:23, Andrew Gregory wrote:
> Relocated query_group() to allow calling filter().
> 
> Fixes FS#19716
> 
> Signed-off-by: Andrew Gregory <[email protected]>

Signed-off-by: Me

Aside:
I have just noticed how weird pacman -Qg is.  I'd expect "pacman -Qg
base" to show output like pacman -Q but only for packages in base.  i.e.
not have the "base" prefix and have a version.  I wonder if these could
be unified more...

> ---
> 
> The only actual changes are the two added:
>  if(!filter(...)) {
>       continue;
>  }
> 
>  src/pacman/query.c | 88 
> +++++++++++++++++++++++++++++-------------------------
>  1 file changed, 47 insertions(+), 41 deletions(-)
> 
> diff --git a/src/pacman/query.c b/src/pacman/query.c
> index f5862a2..4f5d80e 100644
> --- a/src/pacman/query.c
> +++ b/src/pacman/query.c
> @@ -257,47 +257,6 @@ static int query_search(alpm_list_t *targets)
>       return dump_pkg_search(db_local, targets, 0);
>  }
>  
> -static int query_group(alpm_list_t *targets)
> -{
> -     alpm_list_t *i, *j;
> -     const char *grpname = NULL;
> -     int ret = 0;
> -     alpm_db_t *db_local = alpm_get_localdb(config->handle);
> -
> -     if(targets == NULL) {
> -             for(j = alpm_db_get_groupcache(db_local); j; j = 
> alpm_list_next(j)) {
> -                     alpm_group_t *grp = j->data;
> -                     const alpm_list_t *p;
> -
> -                     for(p = grp->packages; p; p = alpm_list_next(p)) {
> -                             alpm_pkg_t *pkg = p->data;
> -                             printf("%s %s\n", grp->name, 
> alpm_pkg_get_name(pkg));
> -                     }
> -             }
> -     } else {
> -             for(i = targets; i; i = alpm_list_next(i)) {
> -                     alpm_group_t *grp;
> -                     grpname = i->data;
> -                     grp = alpm_db_get_group(db_local, grpname);
> -                     if(grp) {
> -                             const alpm_list_t *p;
> -                             for(p = grp->packages; p; p = 
> alpm_list_next(p)) {
> -                                     if(!config->quiet) {
> -                                             printf("%s %s\n", grpname,
> -                                                             
> alpm_pkg_get_name(p->data));
> -                                     } else {
> -                                             printf("%s\n", 
> alpm_pkg_get_name(p->data));
> -                                     }
> -                             }
> -                     } else {
> -                             pm_printf(ALPM_LOG_ERROR, _("group '%s' was not 
> found\n"), grpname);
> -                             ret++;
> -                     }
> -             }
> -     }
> -     return ret;
> -}
> -
>  static unsigned short pkg_get_locality(alpm_pkg_t *pkg)
>  {
>       const char *pkgname = alpm_pkg_get_name(pkg);
> @@ -387,6 +346,53 @@ static int display(alpm_pkg_t *pkg)
>       return ret;
>  }
>  
> +static int query_group(alpm_list_t *targets)
> +{
> +     alpm_list_t *i, *j;
> +     const char *grpname = NULL;
> +     int ret = 0;
> +     alpm_db_t *db_local = alpm_get_localdb(config->handle);
> +
> +     if(targets == NULL) {
> +             for(j = alpm_db_get_groupcache(db_local); j; j = 
> alpm_list_next(j)) {
> +                     alpm_group_t *grp = j->data;
> +                     const alpm_list_t *p;
> +
> +                     for(p = grp->packages; p; p = alpm_list_next(p)) {
> +                             alpm_pkg_t *pkg = p->data;
> +                             if(!filter(pkg)) {
> +                                     continue;
> +                             }
> +                             printf("%s %s\n", grp->name, 
> alpm_pkg_get_name(pkg));
> +                     }
> +             }
> +     } else {
> +             for(i = targets; i; i = alpm_list_next(i)) {
> +                     alpm_group_t *grp;
> +                     grpname = i->data;
> +                     grp = alpm_db_get_group(db_local, grpname);
> +                     if(grp) {
> +                             const alpm_list_t *p;
> +                             for(p = grp->packages; p; p = 
> alpm_list_next(p)) {
> +                                     if(!filter(p->data)) {
> +                                             continue;
> +                                     }
> +                                     if(!config->quiet) {
> +                                             printf("%s %s\n", grpname,
> +                                                             
> alpm_pkg_get_name(p->data));
> +                                     } else {
> +                                             printf("%s\n", 
> alpm_pkg_get_name(p->data));
> +                                     }
> +                             }
> +                     } else {
> +                             pm_printf(ALPM_LOG_ERROR, _("group '%s' was not 
> found\n"), grpname);
> +                             ret++;
> +                     }
> +             }
> +     }
> +     return ret;
> +}
> +
>  int pacman_query(alpm_list_t *targets)
>  {
>       int ret = 0;
> 


Reply via email to