£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~d&                 @   s   d dl Z d dlmZmZ d dlmZ d dlmZ dd ZG dd deZ	d	d
 Z
edkrd dlmZ edddd d dlmZ ee
 dS )    N)	StringVarTclError)SearchDialogBase)searchenginec             C   s<   |   }t|}t|ds(t|||_|j}||  d S )N_replacedialog)Z_rootr   gethasattrReplaceDialogr   open)textrootengineZdialog r   4/opt/alt/python37/lib64/python3.7/idlelib/replace.pyreplace   s    	

r   c                   s   e Zd ZdZdZ fddZdd Zdd Zd	d
 ZdddZ	d ddZ
d!ddZdd Zd"ddZd#ddZdd Zdd Zd$ddZ  ZS )%r	   zReplace DialogReplacec                s   t  || t|| _d S )N)super__init__r   replvar)selfr   r   )	__class__r   r   r   %   s    zReplaceDialog.__init__c             C   s   t | | y|d}W n tk
r2   d }Y nX y|d}W n tk
rZ   d }Y nX |ph|d}|pp|}| || d| _d S )Nz	sel.firstzsel.lastinsertT)r   r
   indexr   show_hitok)r   r   firstlastr   r   r   r
   5   s    	

zReplaceDialog.openc             C   s"   t |  | d| jd | _d S )NzReplace with:r   )r   create_entriesZ
make_entryr   Zreplent)r   r   r   r   r   L   s    
zReplaceDialog.create_entriesc             C   sJ   t |  | d| j | d| j | jd| jdd | d| j d S )NZFindr   zReplace+FindT)ZisdefzReplace All)r   create_command_buttonsZmake_buttonfind_it
replace_itdefault_commandreplace_all)r   r   r   r   r   Q   s
    
z$ReplaceDialog.create_command_buttonsNc             C   s   |  d d S )NF)do_find)r   eventr   r   r   r   ]   s    zReplaceDialog.find_itc             C   s   |  | jr|   d S )N)r#   r   
do_replace)r   r$   r   r   r   r    a   s    zReplaceDialog.replace_itc             C   s"   |  | jr|  r|  d d S )NF)r#   r   r%   )r   r$   r   r   r   r!   i   s    zReplaceDialog.default_commandc             C   sL   | j  rDy||}W qH tjk
r@   | j |d d }Y qHX n|}|S )NzInvalid Replace Expression)r   ZisreexpandreerrorZreport_error)r   mreplnewr   r   r   _replace_expandt   s    
zReplaceDialog._replace_expandc             C   s  | j  }|sd S | j }| j}| j ||}|s@|   d S |ddd |ddd |d }|d  }| j 	 rd}d}d}d  }	}
|
  x| j j||||d|d	}|sP |\}}|d
| d
|d  }| }| ||}|d krP | \}}d||f }	d||f }
||kr0|d|
 n4|d|	 |	|
krR||	|
 |rd||	| |t| }d}qW |  |	r|
r| |	|
 |   d S )Nselz1.0endhitr      TF)wrapr   z%d.0z%d.%dr   )r   getprogr   r   r   search_textbell
tag_removestartZiswrapundo_block_startZsearch_forwardgroupr,   spanmark_setdeleter   lenundo_block_stopr   close)r   r$   progr*   r   reslinecolr   r   r   r)   charsZorigr+   ijr   r   r   r"      s\    






zReplaceDialog.replace_allFc       
      C   sv   | j  sdS | j}| j |d |}|s4|   dS |\}}| \}}d||f }d||f }	| ||	 d| _dS )NFz%d.%dT)r   r2   r   r3   r4   r9   r   r   )
r   r   r   r@   rA   r)   rD   rE   r   r   r   r   r   r#      s    
zReplaceDialog.do_findc             C   s  | j  }|sdS | j}y|d }}|d}W n tk
rL   d }Y nX |sd|d } }}t|\}}|d| d|d  }|||}	|sdS | 	|	| j
 }
|
d krdS |d| |  |	 r||| |
r|||
 |  | ||d d| _dS )NFz	sel.firstzsel.lastr   z%d.0r0   T)r   r2   r   r   r   r   Zget_line_colr   matchr,   r   r:   r7   r8   r;   r   r=   r   r   )r   r?   r   r   posr   rA   rB   rC   r)   r+   r   r   r   r%      s:    

zReplaceDialog.do_replacec             C   sv   | j }|d| |ddd |d|| |ddd ||krR|d| n|d|| |d |  d S )Nr   r-   z1.0r.   r/   )r   r:   r5   tag_addZseeZupdate_idletasks)r   r   r   r   r   r   r   r      s    
zReplaceDialog.show_hitc             C   s    t | | | jddd d S )Nr/   z1.0r.   )r   r>   r   r5   )r   r$   r   r   r   r>     s    zReplaceDialog.close)N)N)N)N)F)N)__name__
__module____qualname__titleZiconr   r
   r   r   r   r    r!   r,   r"   r#   r%   r   r>   __classcell__r   r   )r   r   r	      s   



;
 r	   c                s   ddl m}m}m m ddlm}m} || }|d t	t
|  ddd  \}}|d||d f  d	d
 }dd }	||}
|
  ||
dd|_|	_  dd    fdd}||
d|d}|  d S )Nr   )ToplevelTextENDSEL)FrameButtonzTest ReplaceDialog+r0   z+%d+%d   c               S   s   d S )Nr   r   r   r   r   r7     s    z)_replace_dialog.<locals>.undo_block_startc               S   s   d S )Nr   r   r   r   r   r=     s    z(_replace_dialog.<locals>.undo_block_stopZgray)Zinactiveselectbackgroundr   z"This is a sample sTring
Plus MORE.c                  s(    d  t d  d S )Nz1.0)rH   r   r5   r   )rP   rQ   r   r   r   show_replace&  s    z%_replace_dialog.<locals>.show_replacer   )r   Zcommand)tkinterrN   rO   rP   rQ   Ztkinter.ttkrR   rS   rL   mapintZgeometrysplitpackr7   r=   r   Z	focus_set)parentrN   rO   rR   rS   topxyr7   r=   framerV   Zbuttonr   )rP   rQ   r   r   _replace_dialog  s&    
 ra   __main__)mainzidlelib.idle_test.test_replace   F)	verbosityexit)run)r'   rW   r   r   Zidlelib.searchbaser   Zidlelibr   r   r	   ra   rI   Zunittestrc   Zidlelib.idle_test.htestrg   r   r   r   r   <module>   s    o!