summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2012-03-15 03:19:13 +0100
committerDan McGee <dan@archlinux.org>2012-03-16 15:49:32 +0100
commit9e1a20022d8186eba0005e20b8b6db16cf7dec64 (patch)
tree06ddce13c9a4406795ba6bbae6abaf6ef9c6e3e6
parent56f821b72a6b56cdcbc727515e43c16affd39f08 (diff)
downloadpacman-9e1a20022d8186eba0005e20b8b6db16cf7dec64.tar.gz
pacman-9e1a20022d8186eba0005e20b8b6db16cf7dec64.tar.xz
Always display download size if it applies
Currently, we try to do a bunch of funkyness constraining download size to print only when doing a -S/--sync operation. However, it is possible we try to download packages on a -U/--upgrade operation, and we currently won't show any itemized download sizes. Fix this ommission by always including the download size stuff in the built table rows; this column will be completely omitted anyway if there are no values due to prior work in commit 33bb7dbd35. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--src/pacman/util.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/pacman/util.c b/src/pacman/util.c
index ef6de6bf..a5242aeb 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -793,7 +793,7 @@ void signature_display(const char *title, alpm_siglist_t *siglist)
}
/* creates a header row for use with table_display */
-static alpm_list_t *create_verbose_header(int dl_size)
+static alpm_list_t *create_verbose_header(void)
{
alpm_list_t *res = NULL;
char *str;
@@ -806,16 +806,14 @@ static alpm_list_t *create_verbose_header(int dl_size)
res = alpm_list_add(res, str);
str = _("Net Change");
res = alpm_list_add(res, str);
- if(dl_size) {
- str = _("Download Size");
- res = alpm_list_add(res, str);
- }
+ str = _("Download Size");
+ res = alpm_list_add(res, str);
return res;
}
/* returns package info as list of strings */
-static alpm_list_t *create_verbose_row(pm_target_t *target, int dl_size)
+static alpm_list_t *create_verbose_row(pm_target_t *target)
{
char *str;
off_t size = 0;
@@ -852,16 +850,14 @@ static alpm_list_t *create_verbose_row(pm_target_t *target, int dl_size)
pm_asprintf(&str, "%.2f %s", human_size, label);
ret = alpm_list_add(ret, str);
- if(dl_size) {
- size = target->install ? alpm_pkg_download_size(target->install) : 0;
+ size = target->install ? alpm_pkg_download_size(target->install) : 0;
+ if(size != 0) {
human_size = humanize_size(size, 'M', 2, &label);
- if(size != 0) {
- pm_asprintf(&str, "%.2f %s", human_size, label);
- } else {
- str = strdup("");
- }
- ret = alpm_list_add(ret, str);
+ pm_asprintf(&str, "%.2f %s", human_size, label);
+ } else {
+ str = NULL;
}
+ ret = alpm_list_add(ret, str);
return ret;
}
@@ -874,7 +870,6 @@ static void _display_targets(alpm_list_t *targets, int verbose)
double size;
off_t isize = 0, rsize = 0, dlsize = 0;
alpm_list_t *i, *rows = NULL, *names = NULL;
- int show_dl_size = config->op == PM_OP_SYNC;
if(!targets) {
return;
@@ -898,7 +893,7 @@ static void _display_targets(alpm_list_t *targets, int verbose)
for(i = targets; i; i = alpm_list_next(i)) {
pm_target_t *target = i->data;
- rows = alpm_list_add(rows, create_verbose_row(target, show_dl_size));
+ rows = alpm_list_add(rows, create_verbose_row(target));
if(target->install) {
pm_asprintf(&str, "%s-%s", alpm_pkg_get_name(target->install),
alpm_pkg_get_version(target->install));
@@ -917,7 +912,7 @@ static void _display_targets(alpm_list_t *targets, int verbose)
printf("\n");
if(verbose) {
- alpm_list_t *header = create_verbose_header(show_dl_size);
+ alpm_list_t *header = create_verbose_header();
if(table_display(str, header, rows) != 0) {
/* fallback to list display if table wouldn't fit */
list_display(str, names);