projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BSD 4_2 release
[unix-history]
/
usr
/
src
/
usr.lib
/
libcurses
/
tstp.c
diff --git
a/usr/src/usr.lib/libcurses/tstp.c
b/usr/src/usr.lib/libcurses/tstp.c
index
8a2fca6
..
269ed43
100644
(file)
--- a/
usr/src/usr.lib/libcurses/tstp.c
+++ b/
usr/src/usr.lib/libcurses/tstp.c
@@
-1,17
+1,18
@@
# include <signal.h>
# include <signal.h>
-# ifdef SIGTSTP
-
# include "curses.ext"
/*
* handle stop and start signals
*
# include "curses.ext"
/*
* handle stop and start signals
*
- *
3/5/81 (Berkeley) @(#)tstp.c 1.1
+ *
6/25/83 (Berkeley) @(#)tstp.c 1.3
*/
tstp() {
*/
tstp() {
+# ifdef SIGTSTP
+
SGTTY tty;
SGTTY tty;
+ int omask;
# ifdef DEBUG
if (outf)
fflush(outf);
# ifdef DEBUG
if (outf)
fflush(outf);
@@
-20,10
+21,15
@@
tstp() {
mvcur(0, COLS - 1, LINES - 1, 0);
endwin();
fflush(stdout);
mvcur(0, COLS - 1, LINES - 1, 0);
endwin();
fflush(stdout);
+ /* reset signal handler so kill below stops us */
+ signal(SIGTSTP, SIG_DFL);
+#define mask(s) (1 << ((s)-1))
+ omask = sigsetmask(sigblock(0) &~ mask(SIGTSTP));
kill(0, SIGTSTP);
kill(0, SIGTSTP);
+ sigblock(mask(SIGTSTP));
signal(SIGTSTP, tstp);
_tty = tty;
stty(_tty_ch, &_tty);
wrefresh(curscr);
signal(SIGTSTP, tstp);
_tty = tty;
stty(_tty_ch, &_tty);
wrefresh(curscr);
+# endif SIGTSTP
}
}
-# endif