From 0145604728360acaf56e6d50bc03e78bfab7585c Mon Sep 17 00:00:00 2001 From: Pierre Date: Mon, 2 Apr 2012 04:16:28 +0200 Subject: pacman: show groups once with -Sg Only displays groups that haven't appeared yet.. Previously 'pacman -Sg' iterated over syncs, printed every group. This change does not affect '-Sgg' which still orders by sync first. To reproduce, on a current Arch Linux with [extra] and [community]: $ pacman -Sg|sort|uniq -c|sort -n [...] 1 xorg-fonts 2 vim-plugins 2 xfce4-goodies Signed-off-by: Pierre Signed-off-by: Dan McGee --- src/pacman/sync.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/pacman/sync.c b/src/pacman/sync.c index 74e417c4..5165dca1 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -420,7 +420,7 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets) static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets) { - alpm_list_t *i, *j, *k; + alpm_list_t *i, *j, *k, *s = NULL; if(targets) { for(i = targets; i; i = alpm_list_next(i)) { @@ -456,10 +456,14 @@ static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets) } } else { /* print grp names only, no package names */ - printf("%s\n", grp->name); + if(!alpm_list_find_str (s, grp->name)) { + s = alpm_list_add (s, grp->name); + printf("%s\n", grp->name); + } } } } + alpm_list_free(s); } return 0; -- cgit v1.2.3