5549 |
work. If the system has it, use it. */ |
work. If the system has it, use it. */ |
5550 |
#ifdef HAVE_TERMIOS |
#ifdef HAVE_TERMIOS |
5551 |
struct termios t; |
struct termios t; |
5552 |
|
cc_t *sig_char = NULL; |
5553 |
|
|
5554 |
|
tcgetattr (XINT (p->infd), &t); |
5555 |
|
|
5556 |
switch (signo) |
switch (signo) |
5557 |
{ |
{ |
5558 |
case SIGINT: |
case SIGINT: |
5559 |
tcgetattr (XINT (p->infd), &t); |
sig_char = &t.c_cc[VINTR]; |
5560 |
send_process (proc, &t.c_cc[VINTR], 1, Qnil); |
break; |
|
return; |
|
5561 |
|
|
5562 |
case SIGQUIT: |
case SIGQUIT: |
5563 |
tcgetattr (XINT (p->infd), &t); |
sig_char = &t.c_cc[VQUIT]; |
5564 |
send_process (proc, &t.c_cc[VQUIT], 1, Qnil); |
break; |
|
return; |
|
5565 |
|
|
5566 |
case SIGTSTP: |
case SIGTSTP: |
|
tcgetattr (XINT (p->infd), &t); |
|
5567 |
#if defined (VSWTCH) && !defined (PREFER_VSUSP) |
#if defined (VSWTCH) && !defined (PREFER_VSUSP) |
5568 |
send_process (proc, &t.c_cc[VSWTCH], 1, Qnil); |
sig_char = &t.c_cc[VSWTCH]; |
5569 |
#else |
#else |
5570 |
send_process (proc, &t.c_cc[VSUSP], 1, Qnil); |
sig_char = &t.c_cc[VSUSP]; |
5571 |
#endif |
#endif |
5572 |
return; |
break; |
5573 |
} |
} |
5574 |
|
|
5575 |
|
if (sig_char && *sig_char != CVDISABLE) |
5576 |
|
send_process (proc, sig_char, 1, Qnil); |
5577 |
|
return; |
5578 |
#else /* ! HAVE_TERMIOS */ |
#else /* ! HAVE_TERMIOS */ |
5579 |
|
|
5580 |
/* On Berkeley descendants, the following IOCTL's retrieve the |
/* On Berkeley descendants, the following IOCTL's retrieve the |