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 17:28:44 +0200
User-agent: NeoMutt/20160916 (1.7.0)

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]