bug-wget
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-wget] Feature: Disabling progress bar when wget is backgrounded


From: Christian Neukirchen
Subject: [Bug-wget] Feature: Disabling progress bar when wget is backgrounded
Date: Tue, 08 Sep 2015 16:29:18 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Hi,

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
+++ src/progress.c
@@ -1179,10 +1179,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

This probably needs some guards for portability to all platforms.
Only tested on Linux 4.1 so far.

Opinions?

-- 
Christian Neukirchen  <address@hidden>  http://chneukirchen.org



reply via email to

[Prev in Thread] Current Thread [Next in Thread]