summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2007-11-11 15:02:33 -0600
committerDan McGee <dan@archlinux.org>2007-11-13 00:09:45 -0600
commit5e12d3dec99e7a506683cf625fa4344f57df0b77 (patch)
tree274ae7b1acd23ed43b7a3f6cbe11935acc7dbf1c
parenta0c908dd0da4a00cc98a46407534da67d4aee8a8 (diff)
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 <dan@archlinux.org>
-rw-r--r--lib/libalpm/be_files.c4
-rw-r--r--src/pacman/package.c3
-rw-r--r--src/pacman/query.c7
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);