BSD 4_3_Reno release
[unix-history] / usr / src / usr.bin / window / wwpty.c
index 81bd6f3..a0fdde3 100644 (file)
@@ -1,14 +1,38 @@
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Edward Wang at The University of California, Berkeley.
+ *
+ * Redistribution and use in source and binary forms are permitted provided
+ * that: (1) source distributions retain this entire copyright notice and
+ * comment, and (2) distributions including binaries display the following
+ * acknowledgement:  ``This product includes software developed by the
+ * University of California, Berkeley and its contributors'' in the
+ * documentation or other materials provided with the distribution and in
+ * all advertising materials mentioning features or use of this software.
+ * Neither the name of the University nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)wwpty.c     3.7 84/03/02";
-#endif
+static char sccsid[] = "@(#)wwpty.c    3.18 (Berkeley) 6/6/90";
+#endif /* not lint */
 
 #include "ww.h"
 
 #include "ww.h"
+#ifdef POSIX_TTY
+#include <sys/ioctl.h>
+#endif
 
 wwgetpty(w)
 register struct ww *w;
 {
 
 wwgetpty(w)
 register struct ww *w;
 {
-       register char c;
-       register int i;
+       register char c, *p;
        int tty;
        int on = 1;
 #define PTY "/dev/XtyXX"
        int tty;
        int on = 1;
 #define PTY "/dev/XtyXX"
@@ -17,15 +41,15 @@ register struct ww *w;
 #define _0_9   9
 
        (void) strcpy(w->ww_ttyname, PTY);
 #define _0_9   9
 
        (void) strcpy(w->ww_ttyname, PTY);
-       for (c = 'p'; c <= 's'; c++) {
+       for (c = 'p'; c <= 'u'; c++) {
                w->ww_ttyname[_PT] = 'p';
                w->ww_ttyname[_PQRS] = c;
                w->ww_ttyname[_0_9] = '0';
                if (access(w->ww_ttyname, 0) < 0)
                        break;
                w->ww_ttyname[_PT] = 'p';
                w->ww_ttyname[_PQRS] = c;
                w->ww_ttyname[_0_9] = '0';
                if (access(w->ww_ttyname, 0) < 0)
                        break;
-               for (i = 0; i < 16; i++) {
+               for (p = "0123456789abcdef"; *p; p++) {
                        w->ww_ttyname[_PT] = 'p';
                        w->ww_ttyname[_PT] = 'p';
-                       w->ww_ttyname[_0_9] = "0123456789abcdef"[i];
+                       w->ww_ttyname[_0_9] = *p;
                        if ((w->ww_pty = open(w->ww_ttyname, 2)) < 0)
                                continue;
                        w->ww_ttyname[_PT] = 't';
                        if ((w->ww_pty = open(w->ww_ttyname, 2)) < 0)
                                continue;
                        w->ww_ttyname[_PT] = 't';
@@ -34,7 +58,7 @@ register struct ww *w;
                                continue;
                        }
                        (void) close(tty);
                                continue;
                        }
                        (void) close(tty);
-                       if (ioctl(w->ww_pty, (int)TIOCPKT, (char *)&on) < 0) {
+                       if (ioctl(w->ww_pty, TIOCPKT, (char *)&on) < 0) {
                                (void) close(w->ww_pty);
                                continue;
                        }
                                (void) close(w->ww_pty);
                                continue;
                        }