version 1.8, 1997/07/30 06:32:41 |
version 1.9, 1997/07/31 17:55:16 |
|
|
sig_t saveint; |
sig_t saveint; |
#ifndef TIOCSTI |
#ifndef TIOCSTI |
sig_t savequit; |
sig_t savequit; |
#else |
|
int extproc, flag; |
|
#endif |
#endif |
sig_t savetstp; |
sig_t savetstp; |
sig_t savettou; |
sig_t savettou; |
|
|
int errs = 0; |
int errs = 0; |
#ifdef __GNUC__ |
#ifdef __GNUC__ |
/* Avoid siglongjmp clobbering */ |
/* Avoid siglongjmp clobbering */ |
#ifdef TIOCSTI |
|
(void)&extproc; |
|
#endif |
|
(void)&saveint; |
(void)&saveint; |
(void)&errs; |
(void)&errs; |
#endif |
#endif |
|
|
if ((savequit = signal(SIGQUIT, SIG_IGN)) == SIG_DFL) |
if ((savequit = signal(SIGQUIT, SIG_IGN)) == SIG_DFL) |
(void)signal(SIGQUIT, SIG_DFL); |
(void)signal(SIGQUIT, SIG_DFL); |
#else |
#else |
# ifdef TIOCEXT |
|
extproc = ((ttybuf.c_lflag & EXTPROC) ? 1 : 0); |
|
if (extproc) { |
|
flag = 0; |
|
if (ioctl(fileno(stdin), TIOCEXT, &flag) < 0) |
|
warn("TIOCEXT: off"); |
|
} |
|
# endif /* TIOCEXT */ |
|
if (sigsetjmp(intjmp, 1)) { |
if (sigsetjmp(intjmp, 1)) { |
errs = SIGINT; |
errs = SIGINT; |
goto out; |
goto out; |
|
|
if (ttyset) |
if (ttyset) |
tcsetattr(fileno(stdin), TCSADRAIN, &ttybuf); |
tcsetattr(fileno(stdin), TCSADRAIN, &ttybuf); |
(void)signal(SIGQUIT, savequit); |
(void)signal(SIGQUIT, savequit); |
#else |
|
# ifdef TIOCEXT |
|
if (extproc) { |
|
flag = 1; |
|
if (ioctl(fileno(stdin), TIOCEXT, &flag) < 0) |
|
warn("TIOCEXT: on"); |
|
} |
|
# endif /* TIOCEXT */ |
|
#endif |
#endif |
(void)signal(SIGINT, saveint); |
(void)signal(SIGINT, saveint); |
return(errs); |
return(errs); |