Make sure SIGINT and SIGQUIT haven't been nobbled in our child
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 21 Oct 2002 23:01:34 +0000 (23:01 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 21 Oct 2002 23:01:34 +0000 (23:01 +0000)
process by weird POSIX-required shell behaviour.

git-svn-id: svn://svn.tartarus.org/sgt/putty@2110 cda61777-01e9-0310-a592-d414129be87e

unix/pty.c

index 43923e9..3fd8b3f 100644 (file)
@@ -451,6 +451,13 @@ static char *pty_init(char *host, int port, char **realhost, int nodelay)
            sprintf(term_env_var, "TERM=%s", cfg.termtype);
            putenv(term_env_var);
        }
+       /*
+        * SIGINT and SIGQUIT may have been set to ignored by our
+        * parent, particularly by things like sh -c 'pterm &' and
+        * some window managers. Reverse this for our child process.
+        */
+       signal(SIGINT, SIG_DFL);
+       signal(SIGQUIT, SIG_DFL);
        if (pty_argv)
            execvp(pty_argv[0], pty_argv);
        else {