]> Sergey Matveev's repositories - nnn.git/commitdiff
sigwinch test
authorArun Prakash Jana <engineerarun@gmail.com>
Thu, 17 Jun 2021 22:16:50 +0000 (03:46 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Thu, 17 Jun 2021 23:06:28 +0000 (04:36 +0530)
src/nnn.c

index 06111a8e18db35a97911a94a1ae24ef039ecb8bf..7d46018bf50b0aba8c70d8c7652a9ab8426edd9c 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -467,6 +467,7 @@ static thread_data *core_data;
 /* Retain old signal handlers */
 static struct sigaction oldsighup;
 static struct sigaction oldsigtstp;
+static struct sigaction oldsigwinch;
 
 /* For use in functions which are isolated and don't return the buffer */
 static char g_buf[CMD_LEN_MAX] __attribute__ ((aligned));
@@ -1999,6 +2000,7 @@ static pid_t xfork(uchar_t flag)
                /* the parent ignores the interrupt, quit and hangup signals */
                sigaction(SIGHUP, &(struct sigaction){.sa_handler = SIG_IGN}, &oldsighup);
                sigaction(SIGTSTP, &(struct sigaction){.sa_handler = SIG_DFL}, &oldsigtstp);
+               sigaction(SIGWINCH, &(struct sigaction){.sa_handler = SIG_IGN}, &oldsigwinch);
        } else if (p == 0) {
                /* We create a grandchild to detach */
                if (flag & F_NOWAIT) {
@@ -2047,6 +2049,7 @@ static int join(pid_t p, uchar_t flag)
        /* restore parent's signal handling */
        sigaction(SIGHUP, &oldsighup, NULL);
        sigaction(SIGTSTP, &oldsigtstp, NULL);
+       sigaction(SIGWINCH, &oldsigwinch, NULL);
 
        return status;
 }
@@ -8126,7 +8129,7 @@ int main(int argc, char *argv[])
 
        act.sa_handler = SIG_IGN;
 
-       if (sigaction(SIGQUIT, &act, NULL) < 0 || sigaction(SIGWINCH, &act, NULL) < 0) {
+       if (sigaction(SIGQUIT, &act, NULL) < 0) {
                xerror();
                return EXIT_FAILURE;
        }