[pacman-dev] [PATCH 1/2] print installed packages
Xavier Chantry
shiningxc at gmail.com
Mon Sep 7 18:43:04 EDT 2009
Signed-off-by: Xavier Chantry <shiningxc at gmail.com>
---
src/pacman/sync.c | 24 ++++++++++++++++++++++--
1 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index 4f101f9..896d028 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -274,6 +274,21 @@ static int sync_synctree(int level, alpm_list_t *syncs)
return(success > 0);
}
+static void print_installed(pmpkg_t *pkg)
+{
+ const char *pkgname = alpm_pkg_get_name(pkg);
+ const char *pkgver = alpm_pkg_get_version(pkg);
+ pmpkg_t *lpkg = alpm_db_get_pkg(db_local, pkgname);
+ if(lpkg) {
+ const char *lpkgver = alpm_pkg_get_version(lpkg);
+ if(strcmp(lpkgver,pkgver) == 0) {
+ printf(" [%s]", _("installed"));
+ } else {
+ printf(_(" [%s: %s]"), _("installed"), lpkgver);
+ }
+ }
+}
+
/* search the sync dbs for a matching package */
static int sync_search(alpm_list_t *syncs, alpm_list_t *targets)
{
@@ -330,6 +345,8 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets)
printf(")");
}
+ print_installed(pkg);
+
/* we need a newline and initial indent first */
printf("\n ");
indentprint(alpm_pkg_get_desc(pkg), 4);
@@ -514,9 +531,12 @@ static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
for(j = alpm_db_get_pkgcache(db); j; j = alpm_list_next(j)) {
pmpkg_t *pkg = alpm_list_getdata(j);
+
if (!config->quiet) {
- printf("%s %s %s\n", alpm_db_get_name(db), alpm_pkg_get_name(pkg),
- alpm_pkg_get_version(pkg));
+ printf("%s %s %s", alpm_db_get_name(db), alpm_pkg_get_name(pkg),
+ alpm_pkg_get_version(pkg));
+ print_installed(pkg);
+ printf("\n");
} else {
printf("%s\n", alpm_pkg_get_name(pkg));
}
--
1.6.4.2
More information about the pacman-dev
mailing list