version 1.21, 2014/07/20 09:20:48 |
version 1.22, 2014/07/20 09:31:25 |
|
|
case SLC_XOFF: return(&termStopChar); |
case SLC_XOFF: return(&termStopChar); |
case SLC_FORW1: return(&termForw1Char); |
case SLC_FORW1: return(&termForw1Char); |
case SLC_FORW2: return(&termForw2Char); |
case SLC_FORW2: return(&termForw2Char); |
|
case SLC_SUSP: return(&termSuspChar); |
# ifdef VDISCARD |
# ifdef VDISCARD |
case SLC_AO: return(&termFlushChar); |
case SLC_AO: return(&termFlushChar); |
# endif |
# endif |
# ifdef VSUSP |
|
case SLC_SUSP: return(&termSuspChar); |
|
# endif |
|
# ifdef VWERASE |
# ifdef VWERASE |
case SLC_EW: return(&termWerasChar); |
case SLC_EW: return(&termWerasChar); |
# endif |
# endif |
|
|
* local/no signal mapping |
* local/no signal mapping |
*/ |
*/ |
|
|
#ifdef SIGTSTP |
|
static void susp(); |
static void susp(); |
#endif /* SIGTSTP */ |
|
#ifdef SIGINFO |
#ifdef SIGINFO |
static void ayt(); |
static void ayt(); |
#endif |
#endif |
|
|
} |
} |
|
|
if (f != -1) { |
if (f != -1) { |
#ifdef SIGTSTP |
|
(void) signal(SIGTSTP, susp); |
(void) signal(SIGTSTP, susp); |
#endif /* SIGTSTP */ |
|
#ifdef SIGINFO |
#ifdef SIGINFO |
(void) signal(SIGINFO, ayt); |
(void) signal(SIGINFO, ayt); |
#endif |
#endif |
|
|
# endif |
# endif |
} |
} |
} else { |
} else { |
#ifdef SIGTSTP |
|
sigset_t mask; |
sigset_t mask; |
#endif /* SIGTSTP */ |
|
#ifdef SIGINFO |
#ifdef SIGINFO |
void ayt_status(); |
void ayt_status(); |
|
|
(void) signal(SIGINFO, (void (*)(int))ayt_status); |
(void) signal(SIGINFO, (void (*)(int))ayt_status); |
#endif |
#endif |
#ifdef SIGTSTP |
|
(void) signal(SIGTSTP, SIG_DFL); |
(void) signal(SIGTSTP, SIG_DFL); |
sigemptyset(&mask); |
sigemptyset(&mask); |
sigaddset(&mask, SIGTSTP); |
sigaddset(&mask, SIGTSTP); |
sigprocmask(SIG_UNBLOCK, &mask, NULL); |
sigprocmask(SIG_UNBLOCK, &mask, NULL); |
#endif /* SIGTSTP */ |
|
tmp_tc = old_tc; |
tmp_tc = old_tc; |
} |
} |
if (tcsetattr(tin, TCSADRAIN, &tmp_tc) < 0) |
if (tcsetattr(tin, TCSADRAIN, &tmp_tc) < 0) |
|
|
} |
} |
} |
} |
|
|
#ifdef SIGTSTP |
|
/* ARGSUSED */ |
/* ARGSUSED */ |
void |
void |
susp(sig) |
susp(sig) |
|
|
if (localchars) |
if (localchars) |
sendsusp(); |
sendsusp(); |
} |
} |
#endif |
|
|
|
#ifdef SIGWINCH |
#ifdef SIGWINCH |
/* ARGSUSED */ |
/* ARGSUSED */ |
|
|
#ifdef SIGWINCH |
#ifdef SIGWINCH |
(void) signal(SIGWINCH, sendwin); |
(void) signal(SIGWINCH, sendwin); |
#endif |
#endif |
#ifdef SIGTSTP |
|
(void) signal(SIGTSTP, susp); |
(void) signal(SIGTSTP, susp); |
#endif |
|
#ifdef SIGINFO |
#ifdef SIGINFO |
(void) signal(SIGINFO, ayt); |
(void) signal(SIGINFO, ayt); |
#endif |
#endif |