[pacman-dev] [PATCH] pacman: show groups once with -Sg
Pierre
pierre at spotify.com
Sun Apr 1 22:16:28 EDT 2012
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 <pierre at spotify.com>
---
src/pacman/sync.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index d782a94..7d73cc4 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -418,7 +418,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)) {
@@ -454,10 +454,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;
--
1.7.9.5
More information about the pacman-dev
mailing list