|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: */ ! 6: ! 7: #ifndef lint ! 8: static char sccsid[] = "@(#)tstp.c 5.1 (Berkeley) 6/7/85"; ! 9: #endif not lint ! 10: ! 11: # include <signal.h> ! 12: ! 13: # include "curses.ext" ! 14: ! 15: /* ! 16: * handle stop and start signals ! 17: * ! 18: * @(#)tstp.c 5.1 (Berkeley) 6/7/85 ! 19: */ ! 20: tstp() { ! 21: ! 22: # ifdef SIGTSTP ! 23: ! 24: SGTTY tty; ! 25: int omask; ! 26: # ifdef DEBUG ! 27: if (outf) ! 28: fflush(outf); ! 29: # endif ! 30: tty = _tty; ! 31: mvcur(0, COLS - 1, LINES - 1, 0); ! 32: endwin(); ! 33: fflush(stdout); ! 34: /* reset signal handler so kill below stops us */ ! 35: signal(SIGTSTP, SIG_DFL); ! 36: #define mask(s) (1 << ((s)-1)) ! 37: omask = sigsetmask(sigblock(0) &~ mask(SIGTSTP)); ! 38: kill(0, SIGTSTP); ! 39: sigblock(mask(SIGTSTP)); ! 40: signal(SIGTSTP, tstp); ! 41: _tty = tty; ! 42: stty(_tty_ch, &_tty); ! 43: wrefresh(curscr); ! 44: # endif SIGTSTP ! 45: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.