PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  pY*@sddlZddlTddlmZGdddeZGdddZGdd d eZGd d d eZGd d d eZddZ e dkrddl Z e j dddddddl mZee dS)N)*) Delegatorc@seZdZdZddZddZddZdd Zd d Zd d Z dZ ddZ d#Z ddZ dddZdddZddZddZdddZdd Zd!d"ZdS)$ UndoDelegatoricCstj||jdS)N)r__init__ reset_undo)selfr,/opt/python35/lib/python3.5/UndoDelegator.pyrs zUndoDelegator.__init__cCs|jdk r6|jd|jd|jdtj|||dk r|jd|j|jd|j|jd|jdS)Nz<>z<>z<>)delegateZunbindr setdelegatebind undo_event redo_event dump_event)rr rrr r s    zUndoDelegator.setdelegatecCsddlm}||jd|jtd|jddtd|jddtd|jddtd|j||j|jdd S) Nr)pprintzpointer:end zsaved:z can_merge:z get_saved():break)rundolistpointerprintsaved can_merge get_saved)reventrrrr r&szUndoDelegator.dump_eventcCs5d|_d|_g|_d|_|jddS)Nr) was_savedrr undoblock set_saved)rrrr r0s     zUndoDelegator.reset_undocCs5|r|j|_n d|_d|_|jdS)NrFr)rrr check_saved)rflagrrr r7s   zUndoDelegator.set_savedcCs|j|jkS)N)rr)rrrr r?szUndoDelegator.get_savedNcCs ||_dS)N)saved_change_hook)rhookrrr set_saved_change_hookDsz#UndoDelegator.set_saved_change_hookrcCs;|j}||jkr7||_|jr7|jdS)N)rrr")rZis_savedrrr r Is    zUndoDelegator.check_savedcCs|jt|||dS)N)addcmd InsertCommand)rindexcharstagsrrr insertPszUndoDelegator.insertcCs|jt||dS)N)r% DeleteCommand)rindex1index2rrr deleteSszUndoDelegator.deletecCs,|jdkrt|_|jjdS)Nr)rCommandSequence bump_depth)rrrr undo_block_startas zUndoDelegator.undo_block_startcCsq|jjddkrm|j}d|_t|dkrmt|dkr]|jd}|j|ddS)Nrrr)rr0lengetcmdr%)rcmdrrr undo_block_stopfs  zUndoDelegator.undo_block_stopTcCs$|r|j|j|jdkr9|jj|dS|jrx|jdkrx|j|jd}|j|rxdS|g|j|jd<|j|jkrd|_|jd|_t |j|j kr |jd=|jd|_|jdkr |jd|_d|_|j dS)NrrTr) dor rappendrrrmergerr2max_undor )rr4ZexecuteZlastcmdrrr r%rs(   zUndoDelegator.addcmdcCsh|jdkr|jdS|j|jd}|j|j|jd|_d|_|jdS)NrrrF)rbellrundor rr )rrr4rrr r s   zUndoDelegator.undo_eventcCsm|jt|jkr&|jdS|j|j}|j|j|jd|_d|_|jdS)NrrF)rr2rr:redor rr )rrr4rrr rs   zUndoDelegator.redo_eventr)__name__ __module__ __qualname__r9rr rrrrr"r$rr r*r.r1r5r%r rrrrr rs$          rc@syeZdZdZdddZddZddZdd Zd d Zd d Z ddZ ddZ dS)CommandNcCs@i|_i|_||_||_||_|r<||_dS)N) marks_before marks_afterr,r-r(r))rr,r-r(r)rrr rs     zCommand.__init__cCsW|jj}|j|j|j|jf}|jdkrI|dd}|t|S)Nrr) __class__r=r,r-r(r)repr)rstrrr __repr__s  zCommand.__repr__cCsdS)Nr)rtextrrr r6sz Command.docCsdS)Nr)rrHrrr r<sz Command.redocCsdS)Nr)rrHrrr r;sz Command.undocCsdS)Nrr)rr4rrr r8sz Command.mergecCsLi}x?|jD]1}|dkr|dkr|j|||r?r)rrGr6r<r;r8rLrOrrrr r@s       r@c@soeZdZdddZddZddZdd Zd d Zej ej d Z d dZ dS)r&NcCstj||d||dS)N)r@r)rr,r(r)rrr rszInsertCommand.__init__cCs|j||_|j|j|_|j|jddrQ|jd|_|j|j|j|j|jd|jt|jf|_ |j||_ dS)N>zend-1cz%s+%dc) rLrAr'r,comparer*r(r)r2r-rB)rrHrrr r6s(zInsertCommand.docCsS|jd|j|j|j|j|j|j||j|jddS)Nr*)rNr,r*r(r)rOrBsee)rrHrrr r<szInsertCommand.redocCsM|jd|j|j|j|j|j||j|jddS)Nr*)rNr,r.r-rOrArR)rrHrrr r;szInsertCommand.undocCs|j|jk rdS|j|jkr,dS|j|jkrBdSt|jdkr[dS|jr|j|jd|j|jkrdS|j|_|j|j|_dS)NFrTr)rCr-r,r)r2r(classify)rr4rrr r8s ( zInsertCommand.merge_cCs'||jkrdS|dkr#dSdS)N alphanumeric newline punctuation)rU)rcrrr rSs  zInsertCommand.classify) r=r>r?rr6r<r;r8string ascii_lettersdigitsrUrSrrrr r&s    r&c@sCeZdZdddZddZddZdd ZdS) r+NcCstj|||dddS)N)r@r)rr,r-rrr r szDeleteCommand.__init__cCs|j||_|j|j|_|jrH|j|j|_n|j|jd|_|j|jddr|jd|_|j|j|j|_|j|j|j|j||_ dS)Nz +1crPzend-1c) rLrAr'r,r-rQgetr(r.rB)rrHrrr r6s zDeleteCommand.docCsM|jd|j|j|j|j|j||j|jddS)Nr*)rNr,r.r-rOrBrR)rrHrrr r<szDeleteCommand.redocCsM|jd|j|j|j|j|j||j|jddS)Nr*)rNr,r*r(rOrArR)rrHrrr r;%szDeleteCommand.undo)r=r>r?rr6r<r;rrrr r+s   r+c@sseZdZddZddZddZddZd d Zd d Zd dZ dddZ dS)r/cCsg|_d|_dS)Nr)cmdsdepth)rrrr r1s zCommandSequence.__init__cCsS|jj}g}x%|jD]}|jd|fqW|ddj|dS)Nz %rz( z, z ))rCr=r^r7join)rrEZstrsr4rrr rG5s  zCommandSequence.__repr__cCs t|jS)N)r2r^)rrrr __len__<szCommandSequence.__len__cCs|jj|dS)N)r^r7)rr4rrr r7?szCommandSequence.appendcCs |j|S)N)r^)rirrr r3BszCommandSequence.getcmdcCs%x|jD]}|j|q WdS)N)r^r<)rrHr4rrr r<EszCommandSequence.redocCs?|jdd}|jx|D]}|j|q$WdS)N)r^reverser;)rrHr^r4rrr r;Is  zCommandSequence.undorcCs|j||_|jS)N)r_)rZincrrrr r0OszCommandSequence.bump_depthN) r=r>r?rrGrar7r3r<r;r0rrrr r/,s        r/cswddl}ddl}ddlm}|j}|jdttt|j d|j \}}}}|j d||dft |dd} | j | j || } t| jt|d d d fd d } | j ddt|d dd fdd } | j ddt|d dd fdd } | j dddS)Nr) PercolatorzTest UndoDelegatorz[x+]z+%d+%dheight rHZUndoZcommandcs jdS)N)r r)drr dsz!_undo_delegator..ZsideleftZRedocs jdS)N)rr)rhrr rifsZDumpcs jdS)N)rr)rhrr rihs)retkinterZidlelib.PercolatorrdZTopleveltitlelistmapintsplitZgeometryZTextpackZ focus_setrZ insertfilterZButton)parentrkZtkrdZundowinwidthrfxyrHpr;r<dumpr)rhr _undo_delegatorTs&    3     $$$ry__main__z$idlelib.idle_test.test_undodelegator verbosityexitF)run)rZrlZidlelib.Delegatorrrr@r&r+r/ryr=ZunittestmainZidlelib.idle_test.htestr~rrrr s  .:$(