int endwin(void) { #ifdef DEBUG __CTRACE(__CTRACE_MISC, "endwin\n"); #endif return __stopwin(); }
/* * stop_signal_handler -- * Handle stop signals. */ void __stop_signal_handler(/*ARGSUSED*/int signo) { sigset_t oset, set; /* * Block window change and timer signals. The latter is because * applications use timers to decide when to repaint the screen. */ (void) sigemptyset(&set); (void) sigaddset(&set, SIGALRM); (void) sigaddset(&set, SIGWINCH); (void) sigprocmask(SIG_BLOCK, &set, &oset); /* * End the window, which also resets the terminal state to the * original modes. */ __stopwin(); /* Unblock SIGTSTP. */ (void) sigemptyset(&set); (void) sigaddset(&set, SIGTSTP); (void) sigprocmask(SIG_UNBLOCK, &set, NULL); /* Stop ourselves. */ (void) kill(0, SIGTSTP); /* Time passes ... */ /* restart things */ __restartwin(); /* Reset the signals. */ (void) sigprocmask(SIG_SETMASK, &oset, NULL); }
int reset_shell_mode(void) { return __stopwin(); }