bug-wget
[Top][All Lists]
Advanced

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

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


From: address@hidden
Subject: [Bug-wget] bug #45790: wget prints it's progress even when background
Date: Sun, 18 Sep 2016 18:40:51 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0

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



reply via email to

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