# HG changeset patch # User Richard M. Stallman # Date 1092697046 0 # Node ID 62660593b0a2bf1f27ce3ac72448f1af71f43980 # Parent d5801cbd92f555a17dac07205601984a63b84631 (process_send_signal) [SIGNALS_VIA_CHARACTERS, HAVE_TERMIOS]: Clean up. Do nothing if the character is CVDISABLE. diff -r d5801cbd92f5 -r 62660593b0a2 src/process.c --- a/src/process.c Mon Aug 16 22:53:28 2004 +0000 +++ b/src/process.c Mon Aug 16 22:57:26 2004 +0000 @@ -5549,29 +5549,32 @@ work. If the system has it, use it. */ #ifdef HAVE_TERMIOS struct termios t; + cc_t *sig_char = NULL; + + tcgetattr (XINT (p->infd), &t); switch (signo) { case SIGINT: - tcgetattr (XINT (p->infd), &t); - send_process (proc, &t.c_cc[VINTR], 1, Qnil); - return; + sig_char = &t.c_cc[VINTR]; + break; case SIGQUIT: - tcgetattr (XINT (p->infd), &t); - send_process (proc, &t.c_cc[VQUIT], 1, Qnil); - return; + sig_char = &t.c_cc[VQUIT]; + break; case SIGTSTP: - tcgetattr (XINT (p->infd), &t); #if defined (VSWTCH) && !defined (PREFER_VSUSP) - send_process (proc, &t.c_cc[VSWTCH], 1, Qnil); + sig_char = &t.c_cc[VSWTCH]; #else - send_process (proc, &t.c_cc[VSUSP], 1, Qnil); -#endif - return; + sig_char = &t.c_cc[VSUSP]; +#endif + break; } + if (sig_char && *sig_char != CVDISABLE) + send_process (proc, sig_char, 1, Qnil); + return; #else /* ! HAVE_TERMIOS */ /* On Berkeley descendants, the following IOCTL's retrieve the