a ÕDOgÇã@s”ddlmZddlZddlZddlZgd¢ZdZdZdZdZdd„Z dd „Z d d „Z d d „Z dd„Z dd„Zdd„Zeefdd„Zeefdd„ZdS)é)ÚselectN)ÚopenptyÚforkÚspawnééc Cs<z t ¡WSttfy Yn0tƒ\}}t|ƒ}||fS©N)ÚosrÚAttributeErrorÚOSErrorÚ_open_terminalÚ slave_open)Ú master_fdÚ slave_nameÚslave_fd©rú(/opt/alt/python39/lib64/python3.9/pty.pyrs  rc CsJzt ¡\}}Wnttfy&Yn0t |¡}t |¡||fStƒSr)r rr r ÚttynameÚcloser )rrrrrrÚ master_open"s  rc CsldD]Z}dD]P}d||}zt |tj¡}WntyDYq Yn0|d||fSqtdƒ‚dS)NZpqrstuvwxyzPQRSTZ0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devices)r ÚopenÚO_RDWRr )ÚxÚyZpty_nameÚfdrrrr 2s   r cCsnt |tj¡}zddlm}m}Wnty8|YS0z|||dƒ|||dƒWntyhYn0|S)Nr)ÚioctlÚI_PUSHZptemZldterm)r rrZfcntlrrÚ ImportErrorr )Ztty_nameÚresultrrrrrr >s    r c Csìzt ¡\}}Wnttfy&Yn20|tkrPz t ¡WntyNYn0||fStƒ\}}t ¡}|tkrÚt ¡t |¡t  |t ¡t  |t ¡t  |t ¡|t krºt |¡t  t t ¡tj¡}t |¡n t |¡||fSr)r Úforkptyr r ÚCHILDÚsetsidrrrÚdup2Ú STDIN_FILENOÚ STDOUT_FILENOÚ STDERR_FILENOrrr)ÚpidrrrZtmp_fdrrrrPs0          rcCs"|rt ||¡}||d…}qdSr)r Úwrite)rÚdataÚnrrrÚ_writenxs r*cCs t |d¡S)Ni)r Úread)rrrrÚ_read~sr,cCsv|tg}t|ggƒ\}}}||vrF||ƒ}|s:| |¡n t t|¡t|vr|tƒ}|sf| t¡qt||ƒqdSr)r#rÚremover r'r$r*)rÚ master_readÚ stdin_readZfdsZrfdsZwfdsZxfdsr(rrrÚ_copy‚s   r0cCsÒt|ƒtdƒkr|f}t d|¡tƒ\}}|tkrJtj|dg|¢RŽzt t ¡}t  t ¡d}Wntj y~d}Yn0zt |||ƒWn&t y¶|r²t t tj|¡Yn0t |¡t |d¡dS)NÚz pty.spawnrr)ÚtypeÚsysÚauditrr r ÚexeclpÚttyZ tcgetattrr#ZsetrawÚerrorr0r Z tcsetattrZ TCSAFLUSHrÚwaitpid)Úargvr.r/r&rÚmodeZrestorerrrr—s&       r)rr r3r6Ú__all__r#r$r%r rrr r rr*r,r0rrrrrÚ s"   (