From e22040efac37667c67da13b304ec3c80d1db497e Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Fri, 27 Mar 2015 13:26:48 -0400 Subject: [PATCH] pkgman: make progressbar work properly when the width is < 70. --- src/bin/pkgman/PackageManager.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/bin/pkgman/PackageManager.cpp b/src/bin/pkgman/PackageManager.cpp index 1d6ef4230a..c351ba7dbb 100644 --- a/src/bin/pkgman/PackageManager.cpp +++ b/src/bin/pkgman/PackageManager.cpp @@ -10,6 +10,9 @@ #include "PackageManager.h" +#include +#include + #include #include #include @@ -189,7 +192,10 @@ PackageManager::ProgressPackageDownloadActive(const char* packageName, "\xE2\x96\x88", }; - const int width = 70; + struct winsize w; + ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); + const int width = (w.ws_col > 77) + ? 70 : (w.ws_col - 7); // we need 70 chars for the bar + 7 for %. int position; int ipart = (int)(completionPercentage * width);