Signed-off-by: Sever Oraz <[email protected]>
---
 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

Reply via email to