HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/idlelib/__pycache__/undo.cpython-310.opt-1.pyc
o

�i&+�@s�ddlZddlmZGdd�de�ZGdd�d�ZGdd�de�ZGd	d
�d
e�ZGdd�de�Zd
d�Ze	dkrRddl
mZedddd�ddlm
Z
e
e�dSdS)�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	�)/usr/local/lib/python3.10/idlelib/undo.pyrs
zUndoDelegator.__init__cCsn|jdur|�d�|�d�|�d�t�||�|dur5|�d|j�|�d|j�|�d|j�dSdS)Nz<<undo>>z<<redo>>z<<dump-undo-state>>)�delegateZunbindr�setdelegate�bind�
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
rAszUndoDelegator.get_savedNcCs
||_dSr)�saved_change_hook)r�hookr	r	r
�set_saved_change_hookF�
z#UndoDelegator.set_saved_change_hookrcCs2|��}||jkr||_|jr|��dSdSdSr)rrr$)rZis_savedr	r	r
r"Ks
�zUndoDelegator.check_savedcCs|�t|||��dSr)�addcmd�
InsertCommand)r�index�chars�tagsr	r	r
�insertR�zUndoDelegator.insertcCs|�t||��dSr)r(�
DeleteCommand�r�index1�index2r	r	r
�deleteUszUndoDelegator.deletecCs |jdkr	t�|_|j��dS�Nr)r �CommandSequence�
bump_depthrr	r	r
�undo_block_startcs
zUndoDelegator.undo_block_startcCsV|j�d�dkr'|j}d|_t|�dkr)t|�dkr|�d�}|�|d�dSdSdSr)r r6�len�getcmdr(�r�cmdr	r	r
�undo_block_stophs
�zUndoDelegator.undo_block_stopTcCs�|r|�|j�|jdkr|j�|�dS|jr,|jdkr,|j|jd}|�|�r,dS|g|j|jd�<|j|jkr>d|_|jd|_t	|j�|j
kra|jd=|jd|_|jdkra|jd|_d|_|��dS)NrrrT)�dorr �appendrrr�mergerr8�max_undor")rr;ZexecuteZlastcmdr	r	r
r(ts(


zUndoDelegator.addcmdcCsP|jdkr|��dS|j|jd}|�|j�|jd|_d|_|��dS)NrrrF)r�bellr�undorrr"�rrr;r	r	r
r�s
zUndoDelegator.undo_eventcCsR|jt|j�kr|��dS|j|j}|�|j�|jd|_d|_|��dS)NrrF)rr8rrA�redorrr"rCr	r	r
r�szUndoDelegator.redo_eventr)T)�__name__�
__module__�__qualname__r@rrrrr!rr$r&rr"r-r3r7r<r(rrr	r	r	r
rs&



rc@sReZdZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�CommandNcCs0i|_i|_||_||_||_|r||_dSdSr)�marks_before�marks_afterr1r2r+r,)rr1r2r+r,r	r	r
r�s
�zCommand.__init__cCs>|jj}|j|j|j|jf}|jdur|dd�}|t|�S)Nr)�	__class__rEr1r2r+r,�repr)r�s�tr	r	r
�__repr__�s

zCommand.__repr__cC�dSrr	�r�textr	r	r
r=��z
Command.docCrPrr	rQr	r	r
rD�rSzCommand.redocCrPrr	rQr	r	r
rB�rSzCommand.undocCsdSr4r	r:r	r	r
r?�rSz
Command.mergecCs4i}|��D]}|dkr|dkr|�|�||<q|S)Nr-�current)Z
mark_namesr*)rrR�marks�namer	r	r
�
save_marks�s�zCommand.save_markscCs"|��D]
\}}|�||�qdSr)�items�mark_set)rrRrUrVr*r	r	r
�	set_marks�s�zCommand.set_marksr)rErFrGr,rrOr=rDrBr?rWrZr	r	r	r
rH�s
	rHc@sNeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zej	ej
dZd
d�ZdS)r)NcCst�||d||�dSr�rHr)rr1r+r,r	r	r
r�r.zInsertCommand.__init__cCsv|�|�|_|�|j�|_|�|jdd�r|�d�|_|�|j|j|j�|�d|jt|j�f�|_	|�|�|_
dS)N�>�end-1cz%s+%dc)rWrIr*r1�comparer-r+r,r8r2rJrQr	r	r
r=�szInsertCommand.docCs>|�d|j�|�|j|j|j�|�||j�|�d�dS�Nr-)rYr1r-r+r,rZrJ�seerQr	r	r
rD�szInsertCommand.redocC�:|�d|j�|�|j|j�|�||j�|�d�dSr_)rYr1r3r2rZrIr`rQr	r	r
rB��zInsertCommand.undocCs�|j|jurdS|j|jkrdS|j|jkrdSt|j�dkr!dS|jr4|�|jd�|�|j�kr4dS|j|_|j|j|_dS)NFrrT)rKr2r1r,r8r+�classifyr:r	r	r
r?�szInsertCommand.merge�_cCs||jvrdS|dkr
dSdS)N�alphanumeric�
�newline�punctuation)re)r�cr	r	r
rcs

zInsertCommand.classifyr)
rErFrGrr=rDrBr?�string�
ascii_letters�digitsrercr	r	r	r
r)�s
r)c@s.eZdZd
dd�Zdd�Zdd�Zdd	�ZdS)r/NcCst�|||dd�dSrr[r0r	r	r
rr.zDeleteCommand.__init__cCs�|�|�|_|�|j�|_|jr|�|j�|_n	|�|jd�|_|�|jdd�r/|�d�|_|�|j|j�|_|�|j|j�|�|�|_	dS)Nz +1cr\r])
rWrIr*r1r2r^�getr+r3rJrQr	r	r
r=szDeleteCommand.docCrar_)rYr1r3r2rZrJr`rQr	r	r
rDrbzDeleteCommand.redocCrar_)rYr1r-r+rZrIr`rQr	r	r
rB$rbzDeleteCommand.undor)rErFrGrr=rDrBr	r	r	r
r/s

r/c@sNeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	ddd�Z
dS)r5cCsg|_d|_dSr4)�cmds�depthrr	r	r
r0s
zCommandSequence.__init__cCs>|jj}g}|jD]
}|�d|f�q	|dd�|�dS)Nz    %rz(
z,
z
))rKrErnr>�join)rrMZstrsr;r	r	r
rO4s

zCommandSequence.__repr__cCs
t|j�Sr)r8rnrr	r	r
�__len__;r'zCommandSequence.__len__cCs|j�|�dSr)rnr>r:r	r	r
r>>szCommandSequence.appendcCs
|j|Sr)rn)r�ir	r	r
r9Ar'zCommandSequence.getcmdcCs|jD]}|�|�qdSr)rnrD)rrRr;r	r	r
rDDs
�zCommandSequence.redocCs.|jdd�}|��|D]}|�|�q
dSr)rn�reverserB)rrRrnr;r	r	r
rBHs
�zCommandSequence.undorcCs|j||_|jSr)ro)rZincrr	r	r
r6NszCommandSequence.bump_depthN)r)rErFrGrrOrqr>r9rDrBr6r	r	r	r
r5,sr5c
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��
)ZheightZUndoc�
��d�Sr)rr	��dr	r
�<lambda>b�
z!_undo_delegator.<locals>.<lambda>)rRZcommand�left)ZsideZRedocr{r)rr	r|r	r
r~drZDumpcr{r)rr	r|r	r
r~fr)�tkinterrtrurvZidlelib.percolatorrw�title�map�intZgeometry�split�packZ	focus_setrZinsertfilter)
�parentrtrurvrwZundowin�x�yrR�prBrD�dumpr	r|r
�_undo_delegatorSs$
 
r��__main__)�mainzidlelib.idle_test.test_undo�F)�	verbosity�exit)�run)rjZidlelib.delegatorrrrHr)r/r5r�rEZunittestr�Zidlelib.idle_test.htestr�r	r	r	r
�<module>s-9$'�