From 6968f770261d337c1e8eb647a2df72d838af6304 Mon Sep 17 00:00:00 2001 From: Jelle van der Waa Date: Fri, 16 Sep 2022 12:18:42 +0200 Subject: [PATCH] util.c: extend --print-format with "%G" Add a new print attribute "%G" which prints groups. Signed-off-by: Allan McRae --- doc/pacman.8.asciidoc | 5 +++-- src/pacman/util.c | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/doc/pacman.8.asciidoc b/doc/pacman.8.asciidoc index a933275b..f4a720bc 100644 --- a/doc/pacman.8.asciidoc +++ b/doc/pacman.8.asciidoc @@ -240,8 +240,9 @@ Transaction Options (apply to '-S', '-R' and '-U') "%g" for base64 encoded PGP signature, "%h" for sha256sum, "%n" for pkgname, "%p" for packager, "%v" for pkgver, "%l" for location, "%r" for repository, "%s" for size, "%C" for checkdepends, "%D" for depends, - "%H" for conflicts, "%L" for licenses, "%M" for makedepends, "%O" for - optional depends, "%P" for provides and "%R" for replaces. + "%G" for groups, "%H" for conflicts, "%L" for licenses, "%M" for + makedepends, "%O" for optional depends, "%P" for provides and "%R" for + replaces. Implies '\--print'. diff --git a/src/pacman/util.c b/src/pacman/util.c index 455b7b2c..93938b05 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -1270,6 +1270,15 @@ void print_packages(const alpm_list_t *packages) free(temp); temp = string; } + /* %G : groups */ + if(strstr(temp, "%G")) { + alpm_list_t *lst = alpm_pkg_get_groups(pkg); + char *depends = concat_list(lst, NULL); + string = strreplace(temp, "%G", depends); + free(depends); + free(temp); + temp = string; + } /* %H : conflicts */ if(strstr(temp, "%H")) { alpm_list_t *lst = alpm_pkg_get_conflicts(pkg);