Plan 9 from Bell Labs’s /usr/web/sources/contrib/stallion/root/sys/lib/python2.7/pty.pyc

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


�`^c@s�dZddlmZddlZddlZdddgZdZdZd	ZdZd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Zeed�Zeed�ZdS(sPseudo terminal utilities.i�(tselectNtopenptytforktspawniiicCsMytj�SWnttfk
r'nXt�\}}t|�}||fS(sdopenpty() -> (master_fd, slave_fd)
    Open a pty master/slave pair, using os.openpty() if possible.(tosRtAttributeErrortOSErrort_open_terminalt
slave_open(t	master_fdt
slave_nametslave_fd((s/sys/lib/python2.7/pty.pyRscCs]ytj�\}}Wnttfk
r/n'Xtj|�}tj|�||fSt�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.(RRRRtttynametcloseR(R	RR
((s/sys/lib/python2.7/pty.pytmaster_open!s

cCs�yddl}Wntk
r#nOXy"|jtjdd�\}}Wntk
rg}tj|�nX||fSxodD]g}x^dD]V}d||}ytj|tj�}Wntjk
r�q�nX|d||fSWqyWtjd	�dS(
slOpen pty master and return (master_fd, tty_name).
    SGI and generic BSD version, for when openpty() fails.i�Ni�itpqrstuvwxyzPQRSTt0123456789abcdefs/dev/ptys/dev/ttysout of pty devices(tsgitImportErrort_getptyRtO_RDWRtIOErrorterrortopen(Rttty_nameR	tmsgtxtytpty_nametfd((s/sys/lib/python2.7/pty.pyR1s$
"


cCs�tj|tj�}yddlm}m}Wntk
rC|SXy$|||d�|||d�Wntk
r{nX|S(s�slave_open(tty_name) -> slave_fd
    Open the pty slave and acquire the controlling terminal, returning
    opened filedescriptor.
    Deprecated, use openpty() instead.i�(tioctltI_PUSHtptemtldterm(RRRtfcntlRRRR(RtresultRR((s/sys/lib/python2.7/pty.pyRHs

cCs:ytj�\}}Wnttfk
r/n<X|tkraytj�Wqatk
r]qaXn||fSt�\}}tj�}|tkr#tj�tj|�tj	|t
�tj	|t�tj	|t�|tkr�j|�ntj
tjt�tj�}tj|�n
tj|�||fS(sdfork() -> (pid, master_fd)
    Fork and make the child a session leader with a controlling terminal.(RtforkptyRRtCHILDtsetsidRRR
tdup2tSTDIN_FILENOt
STDOUT_FILENOt
STDERR_FILENORRR(tpidRR	Rttmp_fd((s/sys/lib/python2.7/pty.pyRZs0




cCs3x,|dkr.tj||�}||}qWdS(s#Write all the data to a descriptor.tN(Rtwrite(Rtdatatn((s/sys/lib/python2.7/pty.pyt_writen�scCstj|d�S(sDefault read function.i(Rtread(R((s/sys/lib/python2.7/pty.pyt_read�scCs�|tg}x�tr�t|gg�\}}}||krq||�}|s^|j|�qqtjt|�nt|kr|t�}|s�|jt�q�t||�qqWdS(s�Parent copy loop.
    Copies
            pty master -> standard output   (master_read)
            standard input -> pty master    (stdin_read)N(R(tTrueRtremoveRR.R)R1(R	tmaster_readt
stdin_readtfdstrfdstwfdstxfdsR/((s/sys/lib/python2.7/pty.pyt_copy�s	cCs�t|�td�kr$|f}nt�\}}|tkrVtj|d|�ny&tjt�}tjt�d}Wntj	k
r�d}nXyt
|||�Wn6ttfk
r�|r�j
ttj|�q�Xtj|�dS(sCreate a spawned process.R-iiN(ttypeRR%Rtexeclptttyt	tcgetattrR(tsetrawRR<RRt	tcsetattrt	TCSAFLUSHR
(targvR6R7R+R	tmodetrestore((s/sys/lib/python2.7/pty.pyR�s"


(t__doc__RRR?t__all__R(R)R*R%RRRRRR1R3R<R(((s/sys/lib/python2.7/pty.pyt<module>s"					(		

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].