diff options
author | Tavian Barnes <tavianator@gmail.com> | 2010-11-30 23:46:52 -0500 |
---|---|---|
committer | Tavian Barnes <tavianator@gmail.com> | 2010-11-30 23:46:52 -0500 |
commit | 950fe8f2b1249369ab0b419b0063e6683bc8080e (patch) | |
tree | d1252a031054f8c8e7b2789966b625426be4f69a /dimension/progressbar.c | |
parent | 4b9641002a7b0edac8d88762385315939d2ff753 (diff) | |
download | dimension-950fe8f2b1249369ab0b419b0063e6683bc8080e.tar.xz |
Check for platform support for ioctl(TIOCGWINSZ).
Diffstat (limited to 'dimension/progressbar.c')
-rw-r--r-- | dimension/progressbar.c | 12 |
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); |