diff --git a/writeimg.c b/writeimg.c index f606624..1e473bf 100644 --- a/writeimg.c +++ b/writeimg.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -41,8 +42,12 @@ #define BAR_WIDTH 50 void print_progress(int current, int total) { - float fraction = (float)current / total; - int filled = (int)(fraction * BAR_WIDTH); + static int last = INT_MAX; + float fraction = (float)current / total; + int filled = (int)(fraction * BAR_WIDTH); + + if (filled == last) + return; /* Avoid unnecessary io/flushes */ printf("\r["); for (int i = 0; i < BAR_WIDTH; i++) {