grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]›ã@sËddlmZddlZddlZdddgZdZdZdZdZdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zeedd„Zeedd„ZdS)é)ÚselectNÚopenptyÚforkÚspawnééc CsNytjƒSWnttfk r(YnXtƒ\}}t|ƒ}||fS)N)ÚosrÚAttributeErrorÚOSErrorÚ_open_terminalÚ slave_open)Ú master_fdÚ slave_nameÚslave_fd©rú(/opt/alt/python35/lib64/python3.5/pty.pyrs c Cs^ytjƒ\}}Wnttfk r0Yn'Xtj|ƒ}tj|ƒ||fStƒS)N)rrr r ÚttynameÚcloser )r rrrrrÚ master_open!s  rc Cs€xmdD]e}x\dD]T}d||}ytj|tjƒ}Wntk rXwYnX|d||fSWqWtdƒ‚dS)NZpqrstuvwxyzPQRSTZ0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devices)rÚopenÚO_RDWRr )ÚxÚyZpty_nameÚfdrrrr 1s   r cCs…tj|tjƒ}yddlm}m}Wntk rG|SYnXy$|||dƒ|||dƒWntk r€YnX|S)Nr)ÚioctlÚI_PUSHZptemZldterm)rrrZfcntlrrÚ ImportErrorr )Ztty_nameÚresultrrrrrr =s   r cCs6ytjƒ\}}Wnttfk r0Yn:X|tkr`ytjƒWntk r_YnX||fStƒ\}}tjƒ}|tkrtjƒtj|ƒtj |t ƒtj |t ƒtj |t ƒ|t krñtj|ƒtj tjt ƒtjƒ}tj|ƒn tj|ƒ||fS)N)rÚforkptyr r ÚCHILDÚsetsidrrrÚdup2Ú STDIN_FILENOÚ STDOUT_FILENOÚ STDERR_FILENOrrr)Úpidrr rZtmp_fdrrrrOs0          cCs3x,|r.tj||ƒ}||d…}qWdS)N)rÚwrite)rÚdataÚnrrrÚ_writenws r)cCstj|dƒS)Ni)rÚread)rrrrÚ_read}sr+cCs«|tg}x˜t|ggƒ\}}}||krh||ƒ}|sX|j|ƒntjt|ƒt|kr|tƒ}|s–|jtƒqt||ƒqWdS)N)r"rÚremoverr&r#r))r Ú master_readÚ stdin_readÚfdsZrfdsZwfdsZxfdsr'rrrÚ_copy�s     r0cCsút|ƒtdƒkr!|f}tƒ\}}|tkrPtj|d|Œy&tjtƒ}tjtƒd}Wntj k r“d}YnXyt |||ƒWn.t k rØ|rÔtj ttj |ƒYnXtj|ƒtj|dƒdS)NÚrr)ÚtyperrrÚexeclpÚttyZ tcgetattrr"ZsetrawÚerrorr0r Z tcsetattrZ TCSAFLUSHrÚwaitpid)Úargvr-r.r%r ÚmodeZrestorerrrr–s$       )rrr4Ú__all__r"r#r$rrrr r rr)r+r0rrrrrÚ s      (