[pacman-dev] [PATCH] Signed-off-by: Chirantan Ekbote <chirantan.ekbote at gmail.com>

Chirantan Ekbote chirantan.ekbote at gmail.com
Mon Sep 17 19:14:19 EDT 2012


Added code that lists if an optional dependency of a package is installed
locally and additonally prints the version number of the installed dependency.
Patch for FS#13035 in the pacman bug tracker.
---
 src/pacman/util.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/pacman/util.c b/src/pacman/util.c
index 7f7f6a7..5c0d7f4 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -701,16 +701,31 @@ void list_display_linebreak(const char *title, const alpm_list_t *list,
 		printf("%s\n", _("None"));
 	} else {
 		const alpm_list_t *i;
+		alpm_db_t *db_local = alpm_get_localdb(config->handle);
+		
 		/* Print the first element */
-		indentprint((const char *)list->data, len, maxcols);
+		char *pkgname = (char *)list->data;
+		alpm_pkg_t *lpkg = alpm_db_get_pkg(db_local, (const char *)pkgname);
+		indentprint((const char *)pkgname, len, maxcols);
+		
+		/* Print the version number if the package is installed locally */
+		if(lpkg != NULL) {
+			printf(" [%s: %s]", _("installed"), alpm_pkg_get_version(lpkg));
+		}
 		printf("\n");
+		
 		/* Print the rest */
 		for(i = alpm_list_next(list); i; i = alpm_list_next(i)) {
 			size_t j;
 			for(j = 1; j <= len; j++) {
 				printf(" ");
 			}
-			indentprint((const char *)i->data, len, maxcols);
+			pkgname = (char *)i->data;
+			lpkg = alpm_db_get_pkg(db_local, (const char *)pkgname);
+			indentprint((const char *)pkgname, len, maxcols);
+			if(lpkg != NULL) {
+				printf(" [%s: %s]", _("installed"), alpm_pkg_get_version(lpkg));
+			}
 			printf("\n");
 		}
 	}
-- 
1.7.12



More information about the pacman-dev mailing list