From 5bd0b98b42e8460b49d3b6c80fe4c4988685219c Mon Sep 17 00:00:00 2001 From: Jelle van der Waa Date: Fri, 16 Sep 2022 11:12:39 +0200 Subject: [PATCH] util.c: extend --print-format with %R and %P Add provides "%P" and replaces "%R" as format attribute. Signed-off-by: Jelle van der Waa Signed-off-by: Allan McRae --- doc/pacman.8.asciidoc | 3 ++- src/pacman/util.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/doc/pacman.8.asciidoc b/doc/pacman.8.asciidoc index 36541018..812fddab 100644 --- a/doc/pacman.8.asciidoc +++ b/doc/pacman.8.asciidoc @@ -240,7 +240,8 @@ 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, - "%L" for licenses, and "%M" for makedepends. + "%L" for licenses, and "%M" for makedepends, "%P" for provides and + "%R" for replaces. Implies '\--print'. diff --git a/src/pacman/util.c b/src/pacman/util.c index 92e6c535..bd901e07 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -1279,6 +1279,24 @@ void print_packages(const alpm_list_t *packages) free(temp); temp = string; } + /* %P : provides */ + if(strstr(temp, "%P")) { + alpm_list_t *lst = alpm_pkg_get_provides(pkg); + char *depends = concat_list(lst, (formatfn)alpm_dep_compute_string); + string = strreplace(temp, "%P", depends); + free(depends); + free(temp); + temp = string; + } + /* %R : replaces */ + if(strstr(temp, "%R")) { + alpm_list_t *lst = alpm_pkg_get_replaces(pkg); + char *depends = concat_list(lst, (formatfn)alpm_dep_compute_string); + string = strreplace(temp, "%R", depends); + free(depends); + free(temp); + temp = string; + } /* %L : license */ if(strstr(temp, "%L")) { alpm_list_t *lst = alpm_pkg_get_licenses(pkg);