xref: /csrg-svn/usr.bin/window/wwinit.c (revision 13972)
113925Sedward #ifndef lint
2*13972Sedward static	char *sccsid = "@(#)wwinit.c	1.3 83/07/18";
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 };
1413925Sedward 
1513925Sedward wwinit()
1613925Sedward {
1713962Sedward 	static char done = 0;
1813962Sedward 
1913962Sedward 	if (done)
2013962Sedward 		return 0;
2113962Sedward 	done++;
2213962Sedward 	if (wwgettty(0, &wwoldtty) < 0)
2313962Sedward 		return -1;
2413962Sedward 	wwnewtty.ww_sgttyb.sg_flags = wwoldtty.ww_sgttyb.sg_flags;
2513962Sedward 	wwnewtty.ww_sgttyb.sg_ispeed = wwoldtty.ww_sgttyb.sg_ispeed;
2613962Sedward 	wwnewtty.ww_sgttyb.sg_ospeed = wwoldtty.ww_sgttyb.sg_ospeed;
2713962Sedward 	wwnewtty.ww_lmode = wwoldtty.ww_lmode;
2813962Sedward 	wwnewtty.ww_pgrp = wwoldtty.ww_pgrp;
2913962Sedward 	wwnewtty.ww_ldisc = wwoldtty.ww_ldisc;
3013962Sedward 	wwnewtty.ww_sgttyb.sg_flags |= CBREAK;
31*13972Sedward 	wwnewtty.ww_sgttyb.sg_flags &= ~(ECHO|CRMOD);
3213962Sedward 	wwnewtty.ww_lmode |= LLITOUT;
3313962Sedward 	wwnewtty.ww_tchars.t_quitc = wwoldtty.ww_tchars.t_quitc;
3413962Sedward 	if (wwsettty(0, &wwnewtty) < 0)
3513962Sedward 		return -1;
36*13972Sedward 	if (Winit(2, 1) != 0)
3713962Sedward 		return -1;
3813962Sedward 	WSetRealCursor = 1;
3913962Sedward 	return 0;
4013925Sedward }
41