/*
* SIGINT and SIGQUIT may have been set to ignored by our
* parent, particularly by things like sh -c 'pterm &' and
- * some window managers. SIGCHLD, meanwhile, has been
- * tinkered with by the watchdog process. Reverse all this
- * for our child process.
+ * some window managers. SIGCHLD, meanwhile, was blocked
+ * during pt_main() startup. Reverse all this for our child
+ * process.
*/
putty_signal(SIGINT, SIG_DFL);
putty_signal(SIGQUIT, SIG_DFL);
- {
- sigset_t set;
- sigemptyset(&set);
- sigaddset(&set, SIGCHLD);
- sigprocmask(SIG_UNBLOCK, &set, NULL);
- }
+ block_signal(SIGCHLD, 0);
if (pty_argv)
execvp(pty_argv[0], pty_argv);
else {
return pty_exit_code;
}
+static int pty_cfg_info(void *handle)
+{
+ return 0;
+}
+
Backend pty_backend = {
pty_init,
pty_free,
pty_provide_ldisc,
pty_provide_logctx,
pty_unthrottle,
+ pty_cfg_info,
1
};