diff options
Diffstat (limited to 'Lib/pty.py')
| -rw-r--r-- | Lib/pty.py | 24 | 
1 files changed, 7 insertions, 17 deletions
diff --git a/Lib/pty.py b/Lib/pty.py index 3ccf619896..605aeee558 100644 --- a/Lib/pty.py +++ b/Lib/pty.py @@ -47,27 +47,16 @@ def master_open():      return _open_terminal()  def _open_terminal(): -    """Open pty master and return (master_fd, tty_name). -    SGI and generic BSD version, for when openpty() fails.""" -    try: -        import sgi -    except ImportError: -        pass -    else: -        try: -            tty_name, master_fd = sgi._getpty(os.O_RDWR, 0o666, 0) -        except IOError as msg: -            raise os.error(msg) -        return master_fd, tty_name +    """Open pty master and return (master_fd, tty_name)."""      for x in 'pqrstuvwxyzPQRST':          for y in '0123456789abcdef':              pty_name = '/dev/pty' + x + y              try:                  fd = os.open(pty_name, os.O_RDWR) -            except os.error: +            except OSError:                  continue              return (fd, '/dev/tty' + x + y) -    raise os.error('out of pty devices') +    raise OSError('out of pty devices')  def slave_open(tty_name):      """slave_open(tty_name) -> slave_fd @@ -78,12 +67,12 @@ def slave_open(tty_name):      result = os.open(tty_name, os.O_RDWR)      try:          from fcntl import ioctl, I_PUSH -    except ImportError: +    except ModuleNotFoundError:          return result      try:          ioctl(result, I_PUSH, "ptem")          ioctl(result, I_PUSH, "ldterm") -    except IOError: +    except OSError:          pass      return result @@ -173,8 +162,9 @@ def spawn(argv, master_read=_read, stdin_read=_read):          restore = 0      try:          _copy(master_fd, master_read, stdin_read) -    except (IOError, OSError): +    except OSError:          if restore:              tty.tcsetattr(STDIN_FILENO, tty.TCSAFLUSH, mode)      os.close(master_fd) +    return os.waitpid(pid, 0)[1]  | 
