From 5e12d3dec99e7a506683cf625fa4344f57df0b77 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 11 Nov 2007 15:02:33 -0600 Subject: Fix display of -Qip output when a package file is given Too many fields were being shown on -Qip output, and sizes were not always correct (-Qi and -Qip output on the same package did not agree). Signed-off-by: Dan McGee --- lib/libalpm/be_files.c | 4 ++++ src/pacman/package.c | 3 ++- src/pacman/query.c | 7 ++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/libalpm/be_files.c b/lib/libalpm/be_files.c index 4b85306b..2f88a16d 100644 --- a/lib/libalpm/be_files.c +++ b/lib/libalpm/be_files.c @@ -385,6 +385,10 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) } _alpm_strtrim(tmp); info->size = atol(tmp); + /* also store this value to isize if isize is unset */ + if(info->isize == 0) { + info->isize = atol(tmp); + } } else if(!strcmp(line, "%ISIZE%")) { /* ISIZE (installed size) tag only appears in sync repositories, * not the local one. */ diff --git a/src/pacman/package.c b/src/pacman/package.c index 2e2eec91..caaed462 100644 --- a/src/pacman/package.c +++ b/src/pacman/package.c @@ -86,7 +86,8 @@ void dump_pkg_full(pmpkg_t *pkg, int level) } list_display(_("Conflicts With :"), alpm_pkg_get_conflicts(pkg)); list_display(_("Replaces :"), alpm_pkg_get_replaces(pkg)); - printf(_("Installed Size : %6.2f K\n"), (float)alpm_pkg_get_size(pkg) / 1024.0); + printf(_("Installed Size : %6.2f K\n"), + (float)alpm_pkg_get_isize(pkg) / 1024.0); printf(_("Packager : %s\n"), (char *)alpm_pkg_get_packager(pkg)); printf(_("Architecture : %s\n"), (char *)alpm_pkg_get_arch(pkg)); printf(_("Build Date : %s\n"), bdatestr); diff --git a/src/pacman/query.c b/src/pacman/query.c index ed48799c..9ede00ab 100644 --- a/src/pacman/query.c +++ b/src/pacman/query.c @@ -280,7 +280,12 @@ static int filter(pmpkg_t *pkg) static void display(pmpkg_t *pkg) { if(config->op_q_info) { - dump_pkg_full(pkg, config->op_q_info); + if(config->op_q_isfile) { + /* omit info that isn't applicable for a file package */ + dump_pkg_full(pkg, 0); + } else { + dump_pkg_full(pkg, config->op_q_info); + } } if(config->op_q_list) { dump_pkg_files(pkg); -- cgit v1.2.3-70-g09d2