113925Sedward #ifndef lint 2*14069Sedward static char *sccsid = "@(#)wwinit.c 1.5 83/07/22"; 313925Sedward #endif 413925Sedward 513925Sedward #include "ww.h" 613925Sedward 713962Sedward struct ww_tty wwoldtty; 813962Sedward struct ww_tty wwnewtty = { 913962Sedward { 0, 0, -1, -1, 0 }, 1013962Sedward { -1, -1, -1, -1, -1, -1 }, 1113962Sedward { -1, -1, -1, -1, -1, -1 }, 1213962Sedward 0, 0, 0 1313962Sedward }; 1413994Sedward int _wwdtablesize; 15*14069Sedward int wwncol, wwnrow; 1613925Sedward 1713925Sedward wwinit() 1813925Sedward { 1913962Sedward static char done = 0; 2013962Sedward 2113962Sedward if (done) 2213962Sedward return 0; 2313962Sedward done++; 2413994Sedward _wwdtablesize = getdtablesize(); 2513962Sedward if (wwgettty(0, &wwoldtty) < 0) 2613962Sedward return -1; 2713962Sedward wwnewtty.ww_sgttyb.sg_flags = wwoldtty.ww_sgttyb.sg_flags; 2813962Sedward wwnewtty.ww_sgttyb.sg_ispeed = wwoldtty.ww_sgttyb.sg_ispeed; 2913962Sedward wwnewtty.ww_sgttyb.sg_ospeed = wwoldtty.ww_sgttyb.sg_ospeed; 3013962Sedward wwnewtty.ww_lmode = wwoldtty.ww_lmode; 3113962Sedward wwnewtty.ww_pgrp = wwoldtty.ww_pgrp; 3213962Sedward wwnewtty.ww_ldisc = wwoldtty.ww_ldisc; 3313962Sedward wwnewtty.ww_sgttyb.sg_flags |= CBREAK; 3413972Sedward wwnewtty.ww_sgttyb.sg_flags &= ~(ECHO|CRMOD); 3513962Sedward wwnewtty.ww_lmode |= LLITOUT; 3613962Sedward wwnewtty.ww_tchars.t_quitc = wwoldtty.ww_tchars.t_quitc; 3713962Sedward if (wwsettty(0, &wwnewtty) < 0) 3813962Sedward return -1; 3913972Sedward if (Winit(2, 1) != 0) 4013962Sedward return -1; 4113962Sedward WSetRealCursor = 1; 42*14069Sedward Wscreensize(&wwnrow, &wwncol); 4313962Sedward return 0; 4413925Sedward } 45