--- rxvt-unicode/src/ptytty.C 2006/01/10 18:09:22 1.31 +++ rxvt-unicode/src/ptytty.C 2006/01/17 08:54:33 1.34 @@ -89,26 +89,19 @@ return pfd; #endif -#ifdef PTYS_ARE_GETPTY - char *ptydev; - - while ((ptydev = getpty ()) != NULL) - if ((pfd = open (ptydev, O_RDWR | O_NOCTTY, 0)) >= 0) - { - *ttydev = ptydev; - return pfd; - } -#endif - #if defined(HAVE_GRANTPT) && defined(HAVE_UNLOCKPT) -# if defined(PTYS_ARE_GETPT) || defined(PTYS_ARE_PTMX) +# if defined(PTYS_ARE_GETPT) || defined(PTYS_ARE_POSIX) || defined(PTYS_ARE_PTMX) { # ifdef PTYS_ARE_GETPT - pfd = getpt (); + pfd = getpt(); +# else +# ifdef PTYS_ARE_POSIX + pfd = posix_openpt (O_RDWR); # else pfd = open ("/dev/ptmx", O_RDWR | O_NOCTTY, 0); # endif +# endif if (pfd >= 0) {