-ν
ηΆ<c       sΉ   d  Z  d k l Z d k Z d k Z [ d k Z d d d g Z d Z d Z d Z d Z	 d	   Z
 d
   Z d   Z d   Z d   Z d   Z d   Z e e d  Z e e d  Z d S(   s   Pseudo terminal utilities.(   s   selectNs   openptys   forks   spawni    i   i   c     sS   y t  i   SWn t t f j
 o n Xt   \ }  } t |  } |  | f Sd S(   sd   openpty() -> (master_fd, slave_fd)
    Open a pty master/slave pair, using os.openpty() if possible.N(	   s   oss   openptys   AttributeErrors   OSErrors   _open_terminals	   master_fds
   slave_names
   slave_opens   slave_fd(   s	   master_fds   slave_fds
   slave_name(    (    s   /usr/lib/python2.2/pty.pys   openpty  s     c     sc   y t  i   \ }  } Wn t t f j
 o n( Xt  i |  } t  i |  |  | f St	   Sd S(   s   master_open() -> (master_fd, slave_name)
    Open a pty master and return the fd, and the filename of the slave end.
    Deprecated, use openpty() instead.N(
   s   oss   openptys	   master_fds   slave_fds   AttributeErrors   OSErrors   ttynames
   slave_names   closes   _open_terminal(   s	   master_fds   slave_fds
   slave_name(    (    s   /usr/lib/python2.2/pty.pys   master_open, s     
c     sϊ   y d k  } Wn t j
 o nR Xy" | i t i d d  \ } } Wn! t j
 o } t i	 |  n X| | f Sxt d D]l } xc d D][ } d | | }  y t i |  t i  } Wn t i	 j
 o
 q n X| d | | f Sq Wqz Wt i	 d  d S(	   sl   Open pty master and return (master_fd, tty_name).
    SGI and generic BSD version, for when openpty() fails.NiΆ  i    s   pqrstuvwxyzPQRSTs   0123456789abcdefs   /dev/ptys   /dev/ttys   out of pty devices(   s   sgis   ImportErrors   _getptys   oss   O_RDWRs   tty_names	   master_fds   IOErrors   msgs   errors   xs   ys   pty_names   opens   fd(   s   pty_names   tty_names   sgis   ys   fds   msgs   xs	   master_fd(    (    s   /usr/lib/python2.2/pty.pys   _open_terminal< s*     "
  c    s   t  i |  t  i  Sd S(   s©   slave_open(tty_name) -> slave_fd
    Open the pty slave and acquire the controlling terminal, returning
    opened filedescriptor.
    Deprecated, use openpty() instead.N(   s   oss   opens   tty_names   O_RDWR(   s   tty_name(    (    s   /usr/lib/python2.2/pty.pys
   slave_openS s     c     s  y t  i   \ }  } Wn t t f j
 o nA X|  t j o( y t  i   Wn t j
 o n Xn |  | f St   \ } } t  i   }  |  t j oi t  i   t  i |  t  i | t  t  i | t  t  i | t  | t j o t  i |  n n |  | f Sd S(   sd   fork() -> (pid, master_fd)
    Fork and make the child a session leader with a controlling terminal.N(   s   oss   forkptys   pids   fds   AttributeErrors   OSErrors   CHILDs   setsids   openptys	   master_fds   slave_fds   forks   closes   dup2s   STDIN_FILENOs   STDOUT_FILENOs   STDERR_FILENO(   s   pids   fds	   master_fds   slave_fd(    (    s   /usr/lib/python2.2/pty.pys   fork[ s,     	

c    s5   x. | d j o  t i |  |  } | | } q Wd S(   s#   Write all the data to a descriptor.s    N(   s   datas   oss   writes   fds   n(   s   fds   datas   n(    (    s   /usr/lib/python2.2/pty.pys   _writen} s
      c    s   t  i |  d  Sd S(   s   Default read function.i   N(   s   oss   reads   fd(   s   fd(    (    s   /usr/lib/python2.2/pty.pys   _read s     c    s   x d o| t  |  t g g  g   \ } } } |  | j o  | |   } t i	 t
 |  n t | j o | t  } t |  |  n q Wd S(   s   Parent copy loop.
    Copies
            pty master -> standard output   (master_read)
            standard input -> pty master    (stdin_read)i   N(   s   selects	   master_fds   STDIN_FILENOs   rfdss   wfdss   xfdss   master_reads   datas   oss   writes   STDOUT_FILENOs
   stdin_reads   _writen(   s	   master_fds   master_reads
   stdin_reads   datas   rfdss   wfdss   xfds(    (    s   /usr/lib/python2.2/pty.pys   _copy s      !c    sΑ   t  |   t  d  j o |  f }  n t   \ } } | t j o t t i |  d f |   n t	 i
 t  } t	 i t  y t | | |  Wn) t j
 o t	 i t t	 i |  n Xd S(   s   Create a spawned process.s    i    N(   s   types   argvs   forks   pids	   master_fds   CHILDs   applys   oss   execlps   ttys	   tcgetattrs   STDIN_FILENOs   modes   setraws   _copys   master_reads
   stdin_reads   IOErrors	   tcsetattrs	   TCSAFLUSH(   s   argvs   master_reads
   stdin_reads   pids   modes	   master_fd(    (    s   /usr/lib/python2.2/pty.pys   spawn s     (   s   __doc__s   selects   oss   termioss   ttys   __all__s   STDIN_FILENOs   STDOUT_FILENOs   STDERR_FILENOs   CHILDs   openptys   master_opens   _open_terminals
   slave_opens   forks   _writens   _reads   _copys   spawn(   s   forks   spawns   ttys   __all__s   master_opens   _open_terminals   _reads   openptys   CHILDs   STDERR_FILENOs   termioss   _copys   selects
   slave_opens   STDOUT_FILENOs   oss   _writens   STDIN_FILENO(    (    s   /usr/lib/python2.2/pty.pys   ? s&   									"		