xref: /original-bsd/usr.bin/window/wwtty.c (revision e74403ba)
1 #ifndef lint
2 static	char *sccsid = "@(#)wwtty.c	3.6 84/03/03";
3 #endif
4 
5 #include "ww.h"
6 #include <fcntl.h>
7 
8 wwgettty(d, t)
9 register struct ww_tty *t;
10 {
11 	if (ioctl(d, (int)TIOCGETP, (char *)&t->ww_sgttyb) < 0)
12 		goto bad;
13 	if (ioctl(d, (int)TIOCGETC, (char *)&t->ww_tchars) < 0)
14 		goto bad;
15 	if (ioctl(d, (int)TIOCGLTC, (char *)&t->ww_ltchars) < 0)
16 		goto bad;
17 	if (ioctl(d, (int)TIOCLGET, (char *)&t->ww_lmode) < 0)
18 		goto bad;
19 	if (ioctl(d, (int)TIOCGETD, (char *)&t->ww_ldisc) < 0)
20 		goto bad;
21 	if ((t->ww_fflags = fcntl(d, F_GETFL, 0)) < 0)
22 		goto bad;
23 	return 0;
24 bad:
25 	wwerrno = WWE_SYS;
26 	return -1;
27 }
28 
29 wwsettty(d, t)
30 register struct ww_tty *t;
31 {
32 	if (ioctl(d, (int)TIOCSETN, (char *)&t->ww_sgttyb) < 0)
33 		goto bad;
34 	if (ioctl(d, (int)TIOCSETC, (char *)&t->ww_tchars) < 0)
35 		goto bad;
36 	if (ioctl(d, (int)TIOCSLTC, (char *)&t->ww_ltchars) < 0)
37 		goto bad;
38 	if (ioctl(d, (int)TIOCLSET, (char *)&t->ww_lmode) < 0)
39 		goto bad;
40 	if (ioctl(d, (int)TIOCSETD, (char *)&t->ww_ldisc) < 0)
41 		goto bad;
42 	if (fcntl(d, F_SETFL, t->ww_fflags) < 0)
43 		goto bad;
44 	return 0;
45 bad:
46 	wwerrno = WWE_SYS;
47 	return -1;
48 }
49