‡Æ
÷Mö9c       s§   d  Z  d k l Z d k Z d k Z d k 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   selectNi    i   i   c     sS   y t  i ƒ  SWn t t f j
 o n Xt ƒ  \ }  } t | ƒ } |  | f Sd S(   sa   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_names   slave_fds    /mit/python/lib/python2.0/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_names    /mit/python/lib/python2.0/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 Sxx d d rn } xe d d r[ } d | | } y t	 i | t i ƒ } Wn t	 i
 j
 o
 q‹ n X| d | | f Sq‹ Wq| Wt	 i
 d ‚ d S(	   si   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   FCNTLs   O_RDWRs   tty_names	   master_fds   IOErrors   msgs   oss   errors   xs   ys   pty_names   opens   fd(   s   sgis   tty_names	   master_fds   msgs   xs   ys   pty_names   fds    /mit/python/lib/python2.0/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   FCNTLs   O_RDWR(   s   tty_names    /mit/python/lib/python2.0/pty.pys
   slave_openF 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(   sa   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_fds    /mit/python/lib/python2.0/pty.pys   forkN 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   ns    /mit/python/lib/python2.0/pty.pys   _writenp s
      c    s   t  i |  d ƒ Sd S(   s   Default read function.i   N(   s   oss   reads   fd(   s   fds    /mit/python/lib/python2.0/pty.pys   _readv 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(   sy   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   rfdss   wfdss   xfdss   datas    /mit/python/lib/python2.0/pty.pys   _copyz 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	 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	   tcsetattrs	   TCSAFLUSH(   s   argvs   master_reads
   stdin_reads   pids	   master_fds   modes    /mit/python/lib/python2.0/pty.pys   spawn‰ s     (   s   __doc__s   selects   oss   FCNTLs   ttys   STDIN_FILENOs   STDOUT_FILENOs   STDERR_FILENOs   CHILDs   openptys   master_opens   _open_terminals
   slave_opens   forks   _writens   _reads   _copys   spawn(    s    /mit/python/lib/python2.0/pty.pys   ? s    						"		