113960Sedward #ifndef lint 2*14412Sedward static char *sccsid = "@(#)wwsuspend.c 2.1.1.1 83/08/09"; 313960Sedward #endif 413960Sedward 513960Sedward #include "ww.h" 613960Sedward #include <signal.h> 713960Sedward 8*14412Sedward #define mask(s) (1 << (s) - 1) 913960Sedward 1013960Sedward wwsuspend() 1113960Sedward { 1213960Sedward int oldmask; 1313960Sedward 14*14412Sedward oldmask = sigblock(mask(SIGTSTP)); 1513960Sedward wwend(); 16*14412Sedward (void) sigsetmask(sigblock(0) & ~mask(SIGTSTP)); 17*14412Sedward (void) kill(0, SIGTSTP); 18*14412Sedward (void) sigblock(mask(SIGTSTP)); 19*14412Sedward (void) wwsettty(0, &wwnewtty); 20*14412Sedward (*tt.tt_reset)(); 21*14412Sedward wwredraw(); 22*14412Sedward (void) sigsetmask(oldmask); 2313960Sedward } 24