Mercurial > hg > xemacs-beta
diff src/tooltalk.c @ 349:8429d81ab209 r21-1-4
Import from CVS: tag r21-1-4
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:54:28 +0200 |
parents | e11d67e05968 |
children | 182f72e8cd0d |
line wrap: on
line diff
--- a/src/tooltalk.c Mon Aug 13 10:53:50 2007 +0200 +++ b/src/tooltalk.c Mon Aug 13 10:54:28 2007 +0200 @@ -1256,7 +1256,28 @@ Lisp_Object lp; Lisp_Object fil; + + /* tt_open() messes with our signal handler flags (at least when no + ttsessions is running on the machine), therefore we save the + actions and restore them after the call */ +#ifdef HAVE_SIGPROCMASK + { + struct sigaction ActSIGQUIT; + struct sigaction ActSIGINT; + struct sigaction ActSIGCHLD; + sigaction (SIGQUIT, NULL, &ActSIGQUIT); + sigaction (SIGINT, NULL, &ActSIGINT); + sigaction (SIGCHLD, NULL, &ActSIGCHLD); +#endif retval = tt_open (); +#ifdef HAVE_SIGPROCMASK + sigaction (SIGQUIT, &ActSIGQUIT, NULL); + sigaction (SIGINT, &ActSIGINT, NULL); + sigaction (SIGCHLD, &ActSIGCHLD, NULL); + } +#endif + + if (tt_ptr_error (retval) != TT_OK) return;