xref: /csrg-svn/usr.bin/window/wwinit.c (revision 14069)
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