summaryrefslogtreecommitdiffstats
path: root/dimension/progressbar.c
diff options
context:
space:
mode:
Diffstat (limited to 'dimension/progressbar.c')
-rw-r--r--dimension/progressbar.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/dimension/progressbar.c b/dimension/progressbar.c
index 7ea1344..affb42f 100644
--- a/dimension/progressbar.c
+++ b/dimension/progressbar.c
@@ -18,10 +18,9 @@
*************************************************************************/
#include "progressbar.h"
-#include <sys/ioctl.h>
+#include "platform.h"
#include <stdarg.h>
#include <stdio.h>
-#include <unistd.h>
void
dmnsn_progressbar(const char *format, const dmnsn_progress *progress, ...)
@@ -38,13 +37,8 @@ dmnsn_progressbar(const char *format, const dmnsn_progress *progress, ...)
fflush(stdout);
- /* Try to fill the terminal with the progress bar; this is non-portable */
- struct winsize ws;
- unsigned int width = 80;
- if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) == 0) {
- width = ws.ws_col;
- }
-
+ /* Try to fill the terminal with the progress bar */
+ unsigned int width = dmnsn_terminal_width();
unsigned int increments = width - (len % width);
for (unsigned int i = 0; i < increments; ++i) {
dmnsn_wait_progress(progress, ((double)(i + 1))/increments);