bug-wget
[Top][All Lists]
Advanced

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

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


From: Tim Ruehsen
Subject: Re: [Bug-wget] Feature: Disabling progress bar when wget is backgrounded
Date: Wed, 09 Sep 2015 10:03:14 +0200
User-agent: KMail/4.14.2 (Linux/4.1.0-2-amd64; KDE/4.14.2; x86_64; ; )

Thanks, Christian.

I made a few tests (on Linux) with --progress=bar, ctrl-z + 'bg'. Than put 
wget to foreground again with 'fg'. Doing it again and again with a good user 
experience from my side.

A very short and elegant patch !

If nobody complains, I'll push it.

Regards, Tim

On Tuesday 08 September 2015 16:29:18 Christian Neukirchen wrote:
> 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?




reply via email to

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