bug-wget
[Top][All Lists]
Advanced

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

Re: [Bug-wget] bug #45790: wget prints it's progress even when backgroun


From: Darshit Shah
Subject: Re: [Bug-wget] bug #45790: wget prints it's progress even when background
Date: Mon, 19 Sep 2016 19:30:33 +0200
User-agent: NeoMutt/20160916 (1.7.0)

Hi Piotr,

The patch looks fine. However, when Wget is foregrounded again, the progress bar remains invisible. When the process is foregrounded again, you should undo the effects of `redirect_output_signal()`

* address@hidden <address@hidden> [160919 18:01]:
Hi Darshit,
Sorry for pasting patch into email incorrectly. I've send 2 other patches before, but as attachments, so they should be fine.

Thanks
Piotr

W dniu 19.09.2016 o 17:28, Darshit Shah pisze:
Hi Piotr,

Thanks for your interest in Wget. I shall review your patch soon. However, for future reference please do not send patches that are pasted into the mail like this. It makes it extremely difficult for us to apply the patch. I was unable to apply the provided diff after simply saving your email. Either use `git format-patch` to create a patch file that you attach to the emails, or use `git send-email` to correctly send an inline diff.

* address@hidden <address@hidden> [160918 18:41]:
Hi,
I've implemented fix for bug #45790. Basically I used approach Noel showed in comment.
Please check below diff if it's sane.

diff --git a/src/main.c b/src/main.c
index ac6ee2c..f324253 100644
--- a/src/main.c
+++ b/src/main.c
@@ -113,7 +113,7 @@ int numurls = 0;
  setting up gettext's message catalog using bindtextdomain and
  textdomain.  Does nothing if NLS is disabled or missing.  */

-#if defined(SIGHUP) || defined(SIGUSR1)
+#if defined(SIGHUP) || defined(SIGUSR1) || defined(SIGCONT)
/* Hangup signal handler.  When wget receives SIGHUP or SIGUSR1, it
  will proceed operation as usual, trying to write into a log file.
  If that is impossible, the output will be turned off.  */
@@ -131,12 +131,20 @@ redirect_output_signal (int sig)
 if (sig == SIGUSR1)
   signal_name = "SIGUSR1";
#endif
+#ifdef SIGCONT
+  if(sig == SIGCONT) {
+    /* If process goes to foreground, don't redirect output */
+    if(getpgrp() == tcgetpgrp(STDOUT_FILENO))
+      return;
+    signal_name = "SIGCONT";
+  }
+#endif

 log_request_redirect_output (signal_name);
 progress_schedule_redirect ();
 signal (sig, redirect_output_signal);
}
-#endif /* defined(SIGHUP) || defined(SIGUSR1) */
+#endif /* defined(SIGHUP) || defined(SIGUSR1) || defined(SIGCONT)*/

static void
i18n_initialize (void)
@@ -2003,6 +2011,9 @@ only if outputting to a regular file.\n"));
#ifdef SIGUSR1
 signal (SIGUSR1, redirect_output_signal);
#endif
+#ifdef SIGCONT
+  signal (SIGCONT, redirect_output_signal);
+#endif
#ifdef SIGPIPE
 /* Writing to a closed socket normally signals SIGPIPE, and the
    process exits.  What we want is to ignore SIGPIPE and just check

Thanks
Piotr




--
Thanking You,
Darshit Shah
PGP Fingerprint: 7845 120B 07CB D8D6 ECE5 FF2B 2A17 43ED A91A 35B6

Attachment: signature.asc
Description: PGP signature


reply via email to

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