Your IP : 216.73.216.213


Current Path : /opt/alt/python38/lib64/python3.8/idlelib/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/idlelib/__pycache__/undo.cpython-38.opt-2.pyc

U

i�f&+�@s�ddlZddlmZGdd�de�ZGdd�d�ZGdd�de�ZGd	d
�d
e�ZGdd�de�Zd
d�Ze	dkr�ddl
mZedddd�ddlm
Z
e
e�dS)�N)�	Delegatorc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dZ
dd�ZdZdd�Z
d#dd�Zd$dd�Zdd�Zdd�Zd%dd�Zdd �Zd!d"�ZdS)&�
UndoDelegatori�cCst�|�|��dS�N)r�__init__�
reset_undo��self�r	�1/opt/alt/python38/lib64/python3.8/idlelib/undo.pyrs
zUndoDelegator.__init__cCsj|jdk	r(|�d�|�d�|�d�t�||�|dk	rf|�d|j�|�d|j�|�d|j�dS)Nz<<undo>>z<<redo>>z<<dump-undo-state>>)�delegateZunbindr�setdelegateZbind�
undo_event�
redo_event�
dump_event)rrr	r	r
rs



zUndoDelegator.setdelegatecCsvddlm}||jd|j��td|jdd�td|jdd�td|jdd�td|���||j|jd��d	S)
Nr)�pprintzpointer:� )�endzsaved:z
can_merge:zget_saved():�break)r�undolist�pointer�print�saved�	can_merge�	get_saved)r�eventrr	r	r
r(szUndoDelegator.dump_eventcCs&d|_d|_g|_d|_|�d�dS�N���r�)�	was_savedrr�	undoblock�	set_savedrr	r	r
r2s
zUndoDelegator.reset_undocCs&|r|j|_nd|_d|_|��dS)NrF)rrr�check_saved)r�flagr	r	r
r 9s

zUndoDelegator.set_savedcCs|j|jkSr)rrrr	r	r
rAszUndoDelegator.get_savedNcCs
||_dSr)�saved_change_hook)r�hookr	r	r
�set_saved_change_hookFsz#UndoDelegator.set_saved_change_hookrcCs*|��}||jkr&||_|jr&|��dSr)rrr#)rZis_savedr	r	r
r!Ks

zUndoDelegator.check_savedcCs|�t|||��dSr)�addcmd�
InsertCommand)r�index�chars�tagsr	r	r
�insertRszUndoDelegator.insertcCs|�t||��dSr)r&�
DeleteCommand�r�index1�index2r	r	r
�deleteUszUndoDelegator.deletecCs |jdkrt�|_|j��dS�Nr)r�CommandSequence�
bump_depthrr	r	r
�undo_block_startcs
zUndoDelegator.undo_block_startcCsN|j�d�dkrJ|j}d|_t|�dkrJt|�dkr>|�d�}|�|d�dSr)rr3�len�getcmdr&�r�cmdr	r	r
�undo_block_stophs
zUndoDelegator.undo_block_stopTcCs�|r|�|j�|jdkr*|j�|�dS|jrX|jdkrX|j|jd}|�|�rXdS|g|j|jd�<|j|jkr|d|_|jd|_t	|j�|j
kr�|jd=|jd|_|jdkr�|jd|_d|_|��dS)NrrrT)�dorr�appendrrr�mergerr5�max_undor!)rr8ZexecuteZlastcmdr	r	r
r&ts(


zUndoDelegator.addcmdcCsP|jdkr|��dS|j|jd}|�|j�|jd|_d|_|��dS)NrrrF)r�bellr�undorrr!�rrr8r	r	r
r
�s
zUndoDelegator.undo_eventcCsR|jt|j�kr|��dS|j|j}|�|j�|jd|_d|_|��dS)NrrF)rr5rr>�redorrr!r@r	r	r
r�szUndoDelegator.redo_event)N)N)T)�__name__�
__module__�__qualname__r=rrrrr rr#r%rr!r+r0r4r9r&r
rr	r	r	r
rs$



rc@sReZdZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�CommandNcCs,i|_i|_||_||_||_|r(||_dSr)�marks_before�marks_afterr.r/r)r*)rr.r/r)r*r	r	r
r�szCommand.__init__cCs>|jj}|j|j|j|jf}|jdkr2|dd�}|t|�S)Nr)�	__class__rBr.r/r)r*�repr)r�s�tr	r	r
�__repr__�s

zCommand.__repr__cCsdSrr	�r�textr	r	r
r:�sz
Command.docCsdSrr	rMr	r	r
rA�szCommand.redocCsdSrr	rMr	r	r
r?�szCommand.undocCsdSr1r	r7r	r	r
r<�sz
Command.mergecCs4i}|��D]"}|dkr|dkr|�|�||<q|S)Nr+Zcurrent)Z
mark_namesr()rrN�marks�namer	r	r
�
save_marks�s
zCommand.save_markscCs"|��D]\}}|�||�qdSr)�items�mark_set)rrNrOrPr(r	r	r
�	set_marks�szCommand.set_marks)N)rBrCrDr*rrLr:rAr?r<rQrTr	r	r	r
rE�s
	rEc@sNeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zej	ej
dZd
d�ZdS)r'NcCst�||d||�dSr�rEr)rr.r)r*r	r	r
r�szInsertCommand.__init__cCsv|�|�|_|�|j�|_|�|jdd�r6|�d�|_|�|j|j|j�|�d|jt|j�f�|_	|�|�|_
dS)N�>�end-1cz%s+%dc)rQrFr(r.�comparer+r)r*r5r/rGrMr	r	r
r:�szInsertCommand.docCs>|�d|j�|�|j|j|j�|�||j�|�d�dS�Nr+)rSr.r+r)r*rTrG�seerMr	r	r
rA�szInsertCommand.redocCs:|�d|j�|�|j|j�|�||j�|�d�dSrY)rSr.r0r/rTrFrZrMr	r	r
r?�szInsertCommand.undocCs�|j|jk	rdS|j|jkr dS|j|jkr0dSt|j�dkrBdS|jrh|�|jd�|�|j�krhdS|j|_|j|j|_dS)NFrrT)rHr/r.r*r5r)�classifyr7r	r	r
r<�s�zInsertCommand.merge�_cCs||jkrdS|dkrdSdS)N�alphanumeric�
�newlineZpunctuation)r])r�cr	r	r
r[s

zInsertCommand.classify)N)
rBrCrDrr:rAr?r<�stringZ
ascii_lettersZdigitsr]r[r	r	r	r
r'�s
r'c@s.eZdZd
dd�Zdd�Zdd�Zdd	�ZdS)r,NcCst�|||dd�dSrrUr-r	r	r
rszDeleteCommand.__init__cCs�|�|�|_|�|j�|_|jr0|�|j�|_n|�|jd�|_|�|jdd�r^|�d�|_|�|j|j�|_|�|j|j�|�|�|_	dS)Nz +1crVrW)
rQrFr(r.r/rX�getr)r0rGrMr	r	r
r:szDeleteCommand.docCs:|�d|j�|�|j|j�|�||j�|�d�dSrY)rSr.r0r/rTrGrZrMr	r	r
rAszDeleteCommand.redocCs:|�d|j�|�|j|j�|�||j�|�d�dSrY)rSr.r+r)rTrFrZrMr	r	r
r?$szDeleteCommand.undo)N)rBrCrDrr:rAr?r	r	r	r
r,s
r,c@sNeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	ddd�Z
dS)r2cCsg|_d|_dSr1)�cmds�depthrr	r	r
r0szCommandSequence.__init__cCs>|jj}g}|jD]}|�d|f�q|dd�|�dS)Nz    %rz(
z,
z
))rHrBrcr;�join)rrJZstrsr8r	r	r
rL4s

zCommandSequence.__repr__cCs
t|j�Sr)r5rcrr	r	r
�__len__;szCommandSequence.__len__cCs|j�|�dSr)rcr;r7r	r	r
r;>szCommandSequence.appendcCs
|j|Sr)rc)r�ir	r	r
r6AszCommandSequence.getcmdcCs|jD]}|�|�qdSr)rcrA)rrNr8r	r	r
rADs
zCommandSequence.redocCs.|jdd�}|��|D]}|�|�qdSr)rc�reverser?)rrNrcr8r	r	r
r?HszCommandSequence.undorcCs|j||_|jSr)rd)rZincrr	r	r
r3NszCommandSequence.bump_depthN)r)rBrCrDrrLrfr;r6rAr?r3r	r	r	r
r2,sr2c
sddlm}m}m}ddlm}||�}|�d�tt|�	��
d�dd��\}}|�	d||df�||d	d
�}|��|��||�}	t
��|	���||d�fdd
�d�}
|
jdd�||d�fdd
�d�}|jdd�||d�fdd
�d�}|jdd�dS)Nr)�Toplevel�Text�Button)�
PercolatorzTest UndoDelegator�+rz+%d+%d��
)ZheightZUndocs
��d�Sr)r
r	��dr	r
�<lambda>b�z!_undo_delegator.<locals>.<lambda>)rNZcommand�left)ZsideZRedocs
��d�Sr)rr	rpr	r
rrdrsZDumpcs
��d�Sr)rr	rpr	r
rrfrs)ZtkinterrirjrkZidlelib.percolatorrl�title�map�intZgeometry�splitZpackZ	focus_setrZinsertfilter)
�parentrirjrkrlZundowin�x�yrN�pr?rA�dumpr	rpr
�_undo_delegatorSs$
 
r~�__main__)�mainzidlelib.idle_test.test_undo�F)�	verbosity�exit)�run)raZidlelib.delegatorrrrEr'r,r2r~rBZunittestr�Zidlelib.idle_test.htestr�r	r	r	r
�<module>s-9$'