HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: //proc/25635/root/usr/lib64/python3.8/idlelib/__pycache__/undo.cpython-38.pyc
U

�ڭ����@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	�7/tmp/_install_python3/usr/lib/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+�current)Z
mark_namesr()rrN�marks�namer	r	r
�
save_marks�s
zCommand.save_markscCs"|��D]\}}|�||�qdSr)�items�mark_set)rrNrPrQr(r	r	r
�	set_marks�szCommand.set_marks)N)rBrCrDr*rrLr:rAr?r<rRrUr	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)rRrFr(r.�comparer+r)r*r5r/rGrMr	r	r
r:�szInsertCommand.docCs>|�d|j�|�|j|j|j�|�||j�|�d�dS�Nr+)rTr.r+r)r*rUrG�seerMr	r	r
rA�szInsertCommand.redocCs:|�d|j�|�|j|j�|�||j�|�d�dSrZ)rTr.r0r/rUrFr[rMr	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_letters�digitsr^r\r	r	r	r
r'�s
r'c@s.eZdZd
dd�Zdd�Zdd�Zdd	�ZdS)r,NcCst�|||dd�dSrrVr-r	r	r
rszDeleteCommand.__init__cCs�|�|�|_|�|j�|_|jr0|�|j�|_n|�|jd�|_|�|jdd�r^|�d�|_|�|j|j�|_|�|j|j�|�|�|_	dS)Nz +1crWrX)
rRrFr(r.r/rY�getr)r0rGrMr	r	r
r:szDeleteCommand.docCs:|�d|j�|�|j|j�|�||j�|�d�dSrZ)rTr.r0r/rUrGr[rMr	r	r
rAszDeleteCommand.redocCs:|�d|j�|�|j|j�|�||j�|�d�dSrZ)rTr.r+r)rUrFr[rMr	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
))rHrBrer;�join)rrJZstrsr8r	r	r
rL4s

zCommandSequence.__repr__cCs
t|j�Sr)r5rerr	r	r
�__len__;szCommandSequence.__len__cCs|j�|�dSr)rer;r7r	r	r
r;>szCommandSequence.appendcCs
|j|Sr)re)r�ir	r	r
r6AszCommandSequence.getcmdcCs|jD]}|�|�qdSr)rerA)rrNr8r	r	r
rADs
zCommandSequence.redocCs.|jdd�}|��|D]}|�|�qdSr)re�reverser?)rrNrer8r	r	r
r?HszCommandSequence.undorcCs|j||_|jSr)rf)rZincrr	r	r
r3NszCommandSequence.bump_depthN)r)rBrCrDrrLrhr;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	rrr	r
rtdruZDumpcs
��d�Sr)rr	rrr	r
rtfru)ZtkinterrkrlrmZidlelib.percolatorrn�title�map�intZgeometry�split�packZ	focus_setrZinsertfilter)
�parentrkrlrmrnZundowin�x�yrN�pr?rA�dumpr	rrr
�_undo_delegatorSs$
 
r��__main__)�mainzidlelib.idle_test.test_undo�F)�	verbosity�exit)�run)rbZidlelib.delegatorrrrEr'r,r2r�rBZunittestr�Zidlelib.idle_test.htestr�r	r	r	r
�<module>s-9$'