mapnl option to window
[unix-history] / usr / src / usr.bin / window / wwtty.c
index dc71230..dd60361 100644 (file)
@@ -1,41 +1,48 @@
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)wwtty.c     3.3 83/08/23";
+static char sccsid[] = "@(#)wwtty.c    3.7 %G%";
 #endif
 
 #include "ww.h"
 #endif
 
 #include "ww.h"
+#include <fcntl.h>
 
 wwgettty(d, t)
 register struct ww_tty *t;
 {
        if (ioctl(d, (int)TIOCGETP, (char *)&t->ww_sgttyb) < 0)
 
 wwgettty(d, t)
 register struct ww_tty *t;
 {
        if (ioctl(d, (int)TIOCGETP, (char *)&t->ww_sgttyb) < 0)
-               return -1;
+               goto bad;
        if (ioctl(d, (int)TIOCGETC, (char *)&t->ww_tchars) < 0)
        if (ioctl(d, (int)TIOCGETC, (char *)&t->ww_tchars) < 0)
-               return -1;
+               goto bad;
        if (ioctl(d, (int)TIOCGLTC, (char *)&t->ww_ltchars) < 0)
        if (ioctl(d, (int)TIOCGLTC, (char *)&t->ww_ltchars) < 0)
-               return -1;
+               goto bad;
        if (ioctl(d, (int)TIOCLGET, (char *)&t->ww_lmode) < 0)
        if (ioctl(d, (int)TIOCLGET, (char *)&t->ww_lmode) < 0)
-               return -1;
+               goto bad;
        if (ioctl(d, (int)TIOCGETD, (char *)&t->ww_ldisc) < 0)
        if (ioctl(d, (int)TIOCGETD, (char *)&t->ww_ldisc) < 0)
-               return -1;
-       if (ioctl(d, (int)TIOCGPGRP, (char *)&t->ww_pgrp) < 0)
-               return -1;
+               goto bad;
+       if ((t->ww_fflags = fcntl(d, F_GETFL, 0)) < 0)
+               goto bad;
        return 0;
        return 0;
+bad:
+       wwerrno = WWE_SYS;
+       return -1;
 }
 
 wwsettty(d, t)
 register struct ww_tty *t;
 {
        if (ioctl(d, (int)TIOCSETN, (char *)&t->ww_sgttyb) < 0)
 }
 
 wwsettty(d, t)
 register struct ww_tty *t;
 {
        if (ioctl(d, (int)TIOCSETN, (char *)&t->ww_sgttyb) < 0)
-               return -1;
+               goto bad;
        if (ioctl(d, (int)TIOCSETC, (char *)&t->ww_tchars) < 0)
        if (ioctl(d, (int)TIOCSETC, (char *)&t->ww_tchars) < 0)
-               return -1;
+               goto bad;
        if (ioctl(d, (int)TIOCSLTC, (char *)&t->ww_ltchars) < 0)
        if (ioctl(d, (int)TIOCSLTC, (char *)&t->ww_ltchars) < 0)
-               return -1;
+               goto bad;
        if (ioctl(d, (int)TIOCLSET, (char *)&t->ww_lmode) < 0)
        if (ioctl(d, (int)TIOCLSET, (char *)&t->ww_lmode) < 0)
-               return -1;
+               goto bad;
        if (ioctl(d, (int)TIOCSETD, (char *)&t->ww_ldisc) < 0)
        if (ioctl(d, (int)TIOCSETD, (char *)&t->ww_ldisc) < 0)
-               return -1;
-       if (ioctl(d, (int)TIOCSPGRP, (char *)&t->ww_pgrp) < 0)
-               return -1;
+               goto bad;
+       if (fcntl(d, F_SETFL, t->ww_fflags) < 0)
+               goto bad;
        return 0;
        return 0;
+bad:
+       wwerrno = WWE_SYS;
+       return -1;
 }
 }