blob: 4412dcb6d915dab14568f67a650c8f5464ebd4b0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
/* This work is copyrighted. See COPYRIGHT.OLD & COPYRIGHT.NEW for *
* details. If they are missing then this copy is in violation of *
* the copyright conditions. */
/*
** lib_tstp.c
**
** The routine tstp().
**
*/
#include "curses.priv.h"
#include "terminfo.h"
#ifdef SVR4_ACTION
#define _POSIX_SOURCE
#endif
#include <signal.h>
void tstp(int dummy)
{
sigaction_t act, oact;
sigset_t mask;
T(("tstp() called"));
endwin();
sigemptyset(&mask);
sigaddset(&mask, SIGTSTP);
sigprocmask(SIG_UNBLOCK, &mask, NULL);
act.sa_handler = SIG_DFL;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
#ifdef SA_RESTART
act.sa_flags |= SA_RESTART;
#endif
sigaction(SIGTSTP, &act, &oact);
kill(getpid(), SIGTSTP);
T(("SIGCONT received"));
sigaction(SIGTSTP, &oact, NULL);
reset_prog_mode();
flushinp();
if (enter_ca_mode)
putp(enter_ca_mode);
doupdate();
}
|