[git commit] wget: if stderr is not a tty, progress bar shouldn't use tty-tricks

Denys Vlasenko vda.linux at googlemail.com
Fri Oct 23 00:01:38 UTC 2015


commit: http://git.busybox.net/busybox/commit/?id=d3d6534b2a86bdd651aa39dfabe620fe2208459f
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
bb_progress_update                                   706     768     +62

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/progress.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/libbb/progress.c b/libbb/progress.c
index 6154dca..3c2f016 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);
 }


More information about the busybox-cvs mailing list