[PATCH v2] Print the package arch using the %a format specifier.

Jonathan Sköld arch at skold.dev
Sun Sep 26 13:57:58 UTC 2021


Was pointed out in the IRC channel that package arch may be NULL. Revised the 
patch to include a NULL check before trying to replace string.

Signed-off-by: Jonathan Sköld <arch at skold.dev>
---
 src/pacman/util.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/pacman/util.c b/src/pacman/util.c
index 5486e7a5..70df6128 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -1146,6 +1146,16 @@ void print_packages(const alpm_list_t *packages)
 		alpm_pkg_t *pkg = i->data;
 		char *string = strdup(config->print_format);
 		char *temp = string;
+		/* %a : pkgarch */
+		if(strstr(temp, "%a")) {
+			const char *arch = alpm_pkg_get_arch(pkg);
+			if(arch == NULL) {
+				arch = "";
+			}
+			string = strreplace(temp, "%a", arch);
+			free(temp);
+			temp = string;
+		}
 		/* %n : pkgname */
 		if(strstr(temp, "%n")) {
 			string = strreplace(temp, "%n", alpm_pkg_get_name(pkg));
-- 
2.33.0



More information about the pacman-dev mailing list