diff --git a/libbb/progress.c b/libbb/progress.c index 6154dca17..3c2f01667 100644 --- a/libbb/progress.c +++ b/libbb/progress.c @@ -73,7 +73,7 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p, { uoff_t beg_and_transferred; unsigned since_last_update, elapsed; - int barlength; + int notty; int kiloscale; //transferred = 1234; /* use for stall detection testing */ @@ -130,14 +130,17 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p, } } + notty = !isatty(STDERR_FILENO); + if (ENABLE_UNICODE_SUPPORT) - fprintf(stderr, "\r%s", p->curfile); + fprintf(stderr, "\r%s" + notty, p->curfile); else - fprintf(stderr, "\r%-20.20s", p->curfile); + fprintf(stderr, "\r%-20.20s" + notty, p->curfile); beg_and_transferred = beg_size + transferred; if (totalsize != 0) { + int barlength; unsigned ratio = 100 * beg_and_transferred / totalsize; fprintf(stderr, "%4u%%", ratio); @@ -197,4 +200,6 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p, hours = eta / 3600; fprintf(stderr, "%3u:%02u:%02u ETA", hours, secs / 60, secs % 60); } + if (notty) + fputc('\n', stderr); }