1
0
mirror of https://github.com/moparisthebest/pacman synced 2025-01-08 12:28:00 -05:00

Fix download progress rounding edge case

Allan's original message: Occasionally when the download rate showed
100.0 the output got messed up. This was caused by the rounding of a
number between 99.95 and 100.  Adjust the threshold to avoid this
rounding issue.

Dan: make this fix, but also show values between 0 and 9.995 with two
decimal places since we have the room.

Original-fix-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2011-11-03 09:54:33 -05:00
parent 1953fe4368
commit 601c808b8d

View File

@ -697,8 +697,11 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
xfered_human = humanize_size(xfered, '\0', &xfered_label);
printf(" %ls%-*s ", wcfname, padwid, "");
/* We will show 1.6M/s, 11.6M/s, but 116K/s and 1116K/s */
if(rate_human < 100.0) {
/* We will show 1.62M/s, 11.6M/s, but 116K/s and 1116K/s */
if(rate_human < 9.995) {
printf("%6.1f %3s %4.2f%c/s ",
xfered_human, xfered_label, rate_human, rate_label[0]);
} else if(rate_human < 99.95) {
printf("%6.1f %3s %4.1f%c/s ",
xfered_human, xfered_label, rate_human, rate_label[0]);
} else {