- for (i = 0; i < 16; i++) {
- line[sizeof PTY - 6] = 'p';
- line[sizeof PTY - 2] = "0123456789abcdef"[i];
- w->ww_pty = open(line, 2);
- if (w->ww_pty >= 0) {
- line[sizeof PTY - 6] = 't';
- w->ww_tty = open(line, 2);
- if (w->ww_tty >= 0)
- goto good;
+ for (i = 15; i >= 0; i--) {
+ w->ww_ttyname[_PT] = 'p';
+ w->ww_ttyname[_0_9] = "0123456789abcdef"[i];
+ if ((w->ww_pty = open(w->ww_ttyname, 2)) < 0)
+ continue;
+ w->ww_ttyname[_PT] = 't';
+ if ((tty = open(w->ww_ttyname, 2)) < 0) {
+ (void) close(w->ww_pty);
+ continue;
+ }
+ (void) close(tty);
+ if (ioctl(w->ww_pty, (int)TIOCPKT, (char *)&on) < 0) {