Signed-off-by: Sever Oraz <severoraz@gmail.com> --- src/pacman/callback.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/pacman/callback.c b/src/pacman/callback.c index ee75297c..4ee17d13 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -800,9 +800,11 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total) fname[len] = '\0'; /* 1 space + filenamelen + 1 space + 6 for size + 1 space + 3 for label + - * + 2 spaces + 4 for rate + 1 for label + 2 for /s + 1 space + - * 8 for eta, gives us the magic 30 */ - filenamelen = infolen - 30; + * + 2 spaces + 4 for rate + 1 space + 3 for label + 2 for /s + 1 space + + * 8 for eta, gives us the magic 33 */ + /* > filename 1000.0 MiB 1000 KiB/s HH:MM:SS + * >1 1 61 3 2 41 3 21 8 */ + filenamelen = infolen - 33; /* see printf() code, we omit 'HH:' in these conditions */ if(eta_h == 0 || eta_h >= 100) { filenamelen += 3; @@ -837,16 +839,16 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total) xfered_human = humanize_size(xfered, '\0', -1, &xfered_label); printf(" %ls%-*s ", wcfname, padwid, ""); - /* We will show 1.62M/s, 11.6M/s, but 116K/s and 1116K/s */ + /* We will show 1.62 MiB/s, 11.6 MiB/s, but 116 KiB/s and 1116 KiB/s */ if(rate_human < 9.995) { - printf("%6.1f %3s %4.2f%c/s ", - xfered_human, xfered_label, rate_human, rate_label[0]); + printf("%6.1f %3s %4.2f %3s/s ", + xfered_human, xfered_label, rate_human, rate_label); } else if(rate_human < 99.95) { - printf("%6.1f %3s %4.1f%c/s ", - xfered_human, xfered_label, rate_human, rate_label[0]); + printf("%6.1f %3s %4.1f %3s/s ", + xfered_human, xfered_label, rate_human, rate_label); } else { - printf("%6.1f %3s %4.f%c/s ", - xfered_human, xfered_label, rate_human, rate_label[0]); + printf("%6.1f %3s %4.f %3s/s ", + xfered_human, xfered_label, rate_human, rate_label); } if(eta_h == 0) { printf("%02u:%02u", eta_m, eta_s); -- 2.20.1