[pacman-dev] [PATCH] Second attempt at fixing FS#59201, fixed line overflow caused by not updating padding settings.
Sever Oraz
severoraz at gmail.com
Tue Feb 12 22:27:05 UTC 2019
Signed-off-by: Sever Oraz <severoraz at 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
More information about the pacman-dev
mailing list