From e6247325633d7d0007906f88d573a3bfa37307a7 Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Tue, 8 Sep 2015 16:29:18 +0200 Subject: [PATCH] Disable progress bar when wget is backgrounded (trivial patch) * src/progress.c (create_image): progress only when in foreground Sometimes I start wget, but the remote site is too slow, so I rather want to run it in background, however when I simply use job control for that, wget will keep spewing the progress bar all over my terminal. I have found the SIGHUP/SIGUSR1 feature to redirect output to a log file, but I think the following small patch is even more useful, since the progress bar will simply resume when wget is foregrounded again (also, the final message is still printed to the terminal in any case): --- src/progress.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/progress.c b/src/progress.c index 61b635df..2c7bd0f9 100644 --- a/src/progress.c +++ b/src/progress.c @@ -1194,10 +1194,12 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done) static void display_image (char *buf) { - bool old = log_set_save_context (false); - logputs (LOG_PROGRESS, "\r"); - logputs (LOG_PROGRESS, buf); - log_set_save_context (old); + if (tcgetpgrp (fileno (stderr)) == getpid ()) { + bool old = log_set_save_context (false); + logputs (LOG_PROGRESS, "\r"); + logputs (LOG_PROGRESS, buf); + log_set_save_context (old); + } } static void