113960Sedward #ifndef lint 2*14649Sedward static char *sccsid = "@(#)wwsuspend.c 3.2 83/08/15"; 313960Sedward #endif 413960Sedward 513960Sedward #include "ww.h" 6*14649Sedward #include "tt.h" 713960Sedward #include <signal.h> 813960Sedward 914412Sedward #define mask(s) (1 << (s) - 1) 1013960Sedward 1113960Sedward wwsuspend() 1213960Sedward { 1313960Sedward int oldmask; 1413960Sedward 1514412Sedward oldmask = sigblock(mask(SIGTSTP)); 1613960Sedward wwend(); 1714412Sedward (void) sigsetmask(sigblock(0) & ~mask(SIGTSTP)); 1814412Sedward (void) kill(0, SIGTSTP); 1914412Sedward (void) sigblock(mask(SIGTSTP)); 2014412Sedward (void) wwsettty(0, &wwnewtty); 21*14649Sedward (*tt.tt_init)(); 2214412Sedward wwredraw(); 2314412Sedward (void) sigsetmask(oldmask); 2413960Sedward } 25