[pacman-dev] [PATCH v2] pacman: stop eta timer breaking allignment

morganamilo morganamilo at archlinux.org
Mon Apr 19 09:36:14 UTC 2021


When the download estimate is over an hour the format displayed changes
from mm:ss to hh:mm:ss. This causes everything to be out of alignment
due to the extra characters.

So instead lets just go back to --:-- when the download => 100 minutes.
---
 src/pacman/callback.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/pacman/callback.c b/src/pacman/callback.c
index a28a79a9..3c1d3f14 100644
--- a/src/pacman/callback.c
+++ b/src/pacman/callback.c
@@ -811,12 +811,8 @@ static void draw_pacman_progress_bar(struct pacman_progress_bar *bar)
 
 	/* 1 space + filenamelen + 1 space + 6 for size + 1 space + 3 for label +
 	 * + 2 spaces + 4 for rate + 1 space + 3 for label + 2 for /s + 1 space +
-	 * 8 for eta, gives us the magic 33 */
-	filenamelen = infolen - 33;
-	/* see printf() code, we omit 'HH:' in these conditions */
-	if(eta_h == 0 || eta_h >= 100) {
-		filenamelen += 3;
-	}
+	 * 5 for eta, gives us the magic 33 */
+	filenamelen = infolen - 30;
 
 	/* In order to deal with characters from all locales, we have to worry
 	 * about wide characters and their column widths. A lot of stuff is
@@ -860,8 +856,8 @@ static void draw_pacman_progress_bar(struct pacman_progress_bar *bar)
 	}
 	if(eta_h == 0) {
 		printf("%02u:%02u", eta_m, eta_s);
-	} else if(eta_h < 100) {
-		printf("%02u:%02u:%02u", eta_h, eta_m, eta_s);
+	} else if(eta_h == 1 && eta_m < 40) {
+		printf("%02u:%02u", eta_m + 60, eta_s);
 	} else {
 		fputs("--:--", stdout);
 	}
-- 
2.31.1


More information about the pacman-dev mailing list