ó ˯t_c@sÇdZddlZddlZddlZddlZddlZddlZddlmZm Z y3ddl Z e j dƒe j dƒe j Z Wnd„Z nXde jfd„ƒYZdS(tCaptureiÿÿÿÿN(tGLibtGObjecttgeditcCs|S(N((ts((s1/usr/lib64/gedit/plugins/externaltools/capture.pyt#scBsPeZdZdZdZdZdZiejj ej ej ffd6ejj ej ej ffd6ejj ej e ƒfd6ejj ej ej ffd6Zdid „Zd „Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Z d„Z!RS(iiiii@s stdout-lines stderr-lines begin-executes end-executecCsTtjj|ƒd|_||_||_|j|jB|_||_ d|_ dS(N( Rt__init__tNonetpipetenvtcwdt CAPTURE_BOTHtCAPTURE_NEEDS_SHELLtflagstcommandt input_text(tselfRR R ((s1/usr/lib64/gedit/plugins/externaltools/capture.pyR4s    cKs|jj|dS(N(R tupdate(Rtvalues((s1/usr/lib64/gedit/plugins/externaltools/capture.pytset_env=scCs ||_dS(N(R(RR((s1/usr/lib64/gedit/plugins/externaltools/capture.pyt set_command@scCs ||_dS(N(R (RR ((s1/usr/lib64/gedit/plugins/externaltools/capture.pyt set_flagsCscCsC|r6t|tƒr!||_q?|jdƒ|_n d|_dS(NsUTF-8(t isinstancetbytesRtencodeR(Rttext((s1/usr/lib64/gedit/plugins/externaltools/capture.pyt set_inputFs  cCs ||_dS(N(R (RR ((s1/usr/lib64/gedit/plugins/externaltools/capture.pytset_cwdOscCs$|jdkrdSi|jd6|j|j@d6|jd6}|jdk r]tj|dRR?R@RARCR7RDtINRFRG(RRHRIRJRK((s1/usr/lib64/gedit/plugins/externaltools/capture.pyR3s  cCsâ|tj@rÌtjj}t|jƒ}xˆ|tjjkr²|dkrMtSt||j ƒ}y9|j |j|ƒ\}}|j||_||8}Wq+t k r®}tSXq+W|tjj krÌtSn|tj@rÞtSt S(Ni(RtIO_OUTRtIOStatustNORMALtlenRR$tmintWRITE_BUFFER_SIZEt write_charst ExceptiontAGAINtTrue(Rtdestt conditiontstatustltmtlengthR;((s1/usr/lib64/gedit/plugins/externaltools/capture.pyt write_chunk™s$    cCsh|j||ƒ}|tkrdd|_y|jjtƒWnnXd|_d|_|jƒn|S(Ni( R]R$RRR&tshutdownRVR)t cleanup_pipe(RRWRXtret((s1/usr/lib64/gedit/plugins/externaltools/capture.pyR2¯s     c Cs»|tjtjB@ržtjj}xb|tjjkr„y|jƒ\}}}}Wntk rg}tSX|r#|j ||ƒq#q#W|tjj kržtSn|tjtjB@r·tSt S(N( RtIO_INtIO_PRIRRNROt read_lineRTR$R.RURV( RtsourceRXt signalnameRYtbufR\tterminator_posR;((s1/usr/lib64/gedit/plugins/externaltools/capture.pyt handle_source½s cCsk|j||dƒ}|tkrg|jrgy|jjtƒWnnXd|_d|_|jƒn|S(Ns stdout-linei(RhR$R'R^RVRR*R_(RRdRXR`((s1/usr/lib64/gedit/plugins/externaltools/capture.pyR4Ïs   cCsk|j||dƒ}|tkrg|jrgy|jjtƒWnnXd|_d|_|jƒn|S(Ns stderr-linei(RhR$R(R^RVRR+R_(RRdRXR`((s1/usr/lib64/gedit/plugins/externaltools/capture.pyR5Üs   cCs=|jdkr9|jdkr9|jdkr9d|_ndS(N(R&RR'R(R(R((s1/usr/lib64/gedit/plugins/externaltools/capture.pyR_és-iÿÿÿÿcCs |jr>tj|jƒ|jjtƒd|_d|_n|jr|tj|jƒ|jjtƒd|_d|_n|j rºtj|j ƒ|j jtƒd|_ d|_ n|j dk r|j s÷t j|j jtjƒt|_ nt j|j jtjƒd|_ ndS(Ni(R)Rt source_removeR&R^RVRR*R'R+R(RR%tostkillR8tsignaltSIGTERMtSIGKILL(Rt error_code((s1/usr/lib64/gedit/plugins/externaltools/capture.pytstopís*           cCs|jd|ƒtS(Ns end-execute(R.R$(RRo((s1/usr/lib64/gedit/plugins/externaltools/capture.pytemit_end_execute scCstj|j|ƒdS(N(Rtidle_addRq(RR8Ro((s1/usr/lib64/gedit/plugins/externaltools/capture.pyR9 sN("t__name__t __module__R"R#R R RRRt SignalFlagstRUN_LASTt TYPE_NONEt TYPE_STRINGttupletTYPE_INTt __gsignals__RRRRRRRR<R0R3R]R2RhR4R5R_RpRqR9(((s1/usr/lib64/gedit/plugins/externaltools/capture.pyR%s8"     4      (sCapture(t__all__RjtsysRltlocaleR tfcntlt gi.repositoryRRtgettexttbindtextdomaint textdomainR/tObjectR(((s1/usr/lib64/gedit/plugins/externaltools/capture.pyts