£Á°è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~dP                 @   s  d dl Z d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ	 d dl
mZ d dlmZ d dlZd dlmZ ejrdZdZnyd dlZeejd W n eejfk
r   Y nX ejdkrdZdZnyeejZere e W nX ee e!fk
rD   y e" d	 Zer"e e W n e#e!fk
r>   Y nX Y nX erZe$ Zd
ZndZdZe%dej&Z'e%dej&Z(dd Z)G dd dZ*dd Z+e,dkrd dl-m.Z. e.dddd d dl/m0Z0 e0e+ dS )    N)BOM_UTF8)	askstring)idleConfzutf-8surrogateescape win32   strictasciiz&^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)z^[ \t\f]*(?:[#\r\n]|$)c             C   s   t | tr| d}n| }d|kr8|ddd d }n$d|krV|ddd d }n|g}x2|D ]&}t|}|d k	rzP t|sbd S qbW d S |d}yt	| W n  t
k
r   t
d| Y nX |S )Nz
iso-8859-1
   r   zUnknown encoding: )
isinstancebytesdecodesplit	coding_rematchblank_regroupcodecslookupLookupError)datalinesZlstliner   name r   3/opt/alt/python37/lib64/python3.7/idlelib/iomenu.pycoding_specB   s*    	




r   c               @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdZdd Z	dZ
dZdd Zd4ddZdZeeZejZdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& ZdZdZ d'Z!e"j#d(krd)nd*Z$d+d, Z%d5d.d/Z&d0d1 Z'd2d3 Z(dS )6	IOBindingc             C   sr   || _ |j| _| jd| j| _| jd| j| _| jd| j| _| jd| j	| _
d | _| jd| j| _d S )Nz<<open-window-from-file>>z<<save-window>>z<<save-window-as-file>>z<<save-copy-of-window-as-file>>z<<print-window>>)editwintextbindopen_IOBinding__id_opensave_IOBinding__id_savesave_as_IOBinding__id_saveassave_a_copy_IOBinding__id_savecopyfileencodingprint_window_IOBinding__id_print)selfr!   r   r   r   __init__p   s    

zIOBinding.__init__c             C   sf   | j d| j | j d| j | j d| j | j d| j | j d| j d | _d | _ d | _d S )Nz<<open-window-from-file>>z<<save-window>>z<<save-window-as-file>>z<<save-copy-of-window-as-file>>z<<print-window>>)	r"   Zunbindr%   r'   r)   r+   r.   r!   filename_change_hook)r/   r   r   r   close|   s    zIOBinding.closec             C   s
   | j  S )N)r!   	get_saved)r/   r   r   r   r3      s    zIOBinding.get_savedc             C   s   | j | d S )N)r!   	set_saved)r/   flagr   r   r   r4      s    zIOBinding.set_savedc             C   s   | j   d S )N)r!   
reset_undo)r/   r   r   r   r6      s    zIOBinding.reset_undoNc             C   s
   || _ d S )N)r1   )r/   hookr   r   r   set_filename_change_hook   s    z"IOBinding.set_filename_change_hookc             C   sF   |rt j|rd | _|| _n$|| _d | _| d | jrB|   d S )Nr   )ospathisdirfilenamedirnamer4   r1   )r/   r<   r   r   r   set_filename   s    
zIOBinding.set_filenamec             C   s   | j j}|rt|s|  }n|}|r`| j rTt| j dd sT| jsT|  rT||| j qp|| n| jrp| j	  dS |  r| 
 }|dkr| j	  dS |s|  }n|}|r| | n
| j	  dS )Ninterpbreakcancel)r!   flistaskopenfilegetattrr<   r3   r$   loadfiler"   	focus_set	maybesave)r/   eventZeditFilerB   r<   replyr   r   r   r$      s6    




zIOBinding.openz(\r\n)|\n|\rc       	   
   C   sB  y<t |d(}| |  }|d | }W d Q R X W n8 tk
rt } ztjdt|| jd dS d }~X Y nX | 	||\}}|d krtjdd| | jd dS | j
|}|r|d| _| j
d|}| jd	d
 | d  | jd	| |   | | |r| d | jdd	 | jd | | dS )Nrbr   z	I/O Error)parentFzDecoding ErrorzFile %s
Failed to Decodez\nz1.0endinsertT)r$   readlineseekreadOSErrortkMessageBox	showerrorstrr"   _decodeeol_researchr   eol_conventionsubdeleter>   rM   r6   r4   Zmark_setZyviewupdaterecentfileslist)	r/   r<   f	two_linesr   msgcharsZ	convertedZfirsteolr   r   r   rE      s:    





zIOBinding.loadfilec          
   C   s  d }| trHy|dd  d}W n tk
r8   dS X d| _|dfS yt|}W nN tk
r } ztjdd| | j	d d }W d d }~X Y n tk
r   dS X |ryt
||}|| _|dfS  tk
r   Y nX yt
|d	}d | _|dfS  tk
r   Y nX yt
|d}d| _|dfS  tk
r4   Y nX y>| jj	  td
dt| jj	d}|rnt
||}d | _|dfS  ttfk
r   Y nX dS )N   zutf-8)NFBOMFzError loading the filez^The encoding '%s' is not known to this Python installation. The file may not display correctly)titlemessagerK   r
   zSpecify file encodingzwThe file's encoding is invalid for Python 3.x.
IDLE will convert it to UTF-8.
What is the current encoding of the file?)ZinitialvaluerK   T)
startswithr   r   UnicodeDecodeErrorr,   r   r   rR   rS   r"   rT   r!   updater   encoding)r/   r]   r   r_   encr   r   r   r   rU      sh    





zIOBinding._decodec             C   sp   |   rdS d| jpd }tjd|tj| jd}|rPd}| d  |   sbd}n|d kr^d}nd}| j  |S )NZyesz&Do you want to save %s before closing?zthis untitled documentzSave On Close)rb   rc   defaultrK   rA   no)r3   r<   rR   ZaskyesnocancelZYESr"   r&   rF   )r/   rc   confirmrI   r   r   r   rG   <  s&    


zIOBinding.maybesavec             C   sZ   | j s| | n:| | j rL| d y| j  W n tk
rJ   Y nX | j  dS )NTr@   )	r<   r(   	writefiler4   r!   store_file_breaksAttributeErrorr"   rF   )r/   rH   r   r   r   r&   R  s    

zIOBinding.savec             C   sf   |   }|rN| |rN| | | d y| j  W n tk
rL   Y nX | j  | 	| dS )Nr   r@   )
asksavefilerl   r>   r4   r!   rm   rn   r"   rF   r[   )r/   rH   r<   r   r   r   r(   _  s    




zIOBinding.save_asc             C   s.   |   }|r| | | j  | | dS )Nr@   )ro   rl   r"   rF   r[   )r/   rH   r<   r   r   r   r*   m  s    


zIOBinding.save_a_copyc          
   C   s   |   }| |}y:t|d&}|| |  t|  W d Q R X dS  tk
r } zt	j
dt|| jd dS d }~X Y nX d S )NwbTz	I/O Error)rK   F)fixnewlinesencoder$   writeflushr9   fsyncfilenorQ   rR   rS   rT   r"   )r/   r<   r"   r_   r\   r^   r   r   r   rl   u  s    


zIOBinding.writefilec             C   sT   | j ddkr*t| jds*| j dd | j dd}| jdkrP|d| j}|S )Nzend-2cr   r?   zend-1cz1.0)r"   gethasattrr!   rM   rX   replace)r/   r"   r   r   r   rq     s    
zIOBinding.fixnewlinesc          
   C   s   t |tr|S | jdkr&t|d S y
|dS  tk
rD   Y nX yt|}d }W n* tk
r } z|}d }W d d }~X Y n
X |sd}|ry
||S  tk
r   d| }Y nX tj	dd| | j
d t|d S )Nra   zutf-8r
   zInvalid encoding '%s'z	I/O Errorz%s.
Saving as UTF-8)rK   )r   r   r,   r   rr   UnicodeErrorr   r   rR   rS   r"   )r/   r_   rh   Zfailedr^   r   r   r   rr     s4    




zIOBinding.encodec             C   sd  t jddt j| jd}|s(| j  dS d }|  }|r>| j}|rJ|d krtjdd\}}|}t	
| | |st	| dS t	j}d}|dkrtd	d
d}	|	d }	n|dkrtd	d
d}	nd}|r6|	t| }	t	|	d}
|
  }|

 }|rd| | }|rPdt|	 | }t jd|| jd nd| }t jd|| jd |r`t	| dS )NZPrintzPrint to Default Printer)rb   rc   ri   rK   r@   Z	IDLE_tmp_)prefixTposixmainZGeneralzprint-command-posixz 2>&1ntzprint-command-winFrz#Printing failed (exit status 0x%x)
zPrinting command: %s
zPrint status)rK   z-Printing is not enabled for this platform: %s)rR   ZaskokcancelZOKr"   rF   r3   r<   tempfileZmkstempr9   r2   rl   unlinkr   r   Z	GetOptionshlexZquotepopenrP   stripreprrS   Zshowinfo)r/   rH   rk   ZtempfilenameZsavedr<   ZtfdplatformZprintPlatformZcommandpipeoutputstatusrc   r   r   r   r-     sX    







zIOBinding.print_window))zPython filesz
*.py *.pywTEXT)z
Text filesz*.txtr   )z	All files*darwinz.pyr   c             C   s<   |  d\}}| js(tj| j| jd| _| jj||d}|S )Nr$   )rK   	filetypes)
initialdirinitialfile)defaultfilename
opendialogtkFileDialogZOpenr"   r   show)r/   dirbaser<   r   r   r   rC     s    zIOBinding.askopenfiler$   c             C   sV   | j rtj| j S | jr$| jdfS yt }W n tk
rH   d}Y nX |dfS d S )Nr   )r<   r9   r:   r   r=   getcwdrQ   )r/   modepwdr   r   r   r     s    

zIOBinding.defaultfilenamec             C   s@   |  d\}}| js,tj| j| j| jd| _| jj||d}|S )Nr&   )rK   r   defaultextension)r   r   )r   
savedialogr   ZSaveAsr"   r   r   r   )r/   r   r   r<   r   r   r   ro     s    zIOBinding.asksavefilec             C   s   | j jr| j | d S )N)r!   rB   Zupdate_recent_files_list)r/   r<   r   r   r   r[     s    zIOBinding.updaterecentfileslist)NN)r$   ))__name__
__module____qualname__r0   r2   r3   r4   r6   r1   r8   r<   r=   r>   r$   ZeolrecompilerV   r9   lineseprX   rE   rU   rG   r&   r(   r*   rl   rq   rr   r-   r   r   r   sysr   r   rC   r   ro   r[   r   r   r   r   r    k   s@   
,
$D
'2

r    c       	      C   s   ddl m}m} || }|d tt|  ddd  \}}|d||d f  G dd	 d	}||}|  |	  ||}t
| d S )
Nr   )ToplevelTextzTest IOBinding+r   z+%d+%d   c               @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )z_io_binding.<locals>.MyEditWinc             S   s`   || _ d | _| j d| j | j d| j | j d| j | j d| j | j d| j d S )Nz<Control-o>z<Control-p>z<Control-s>z<Alt-s>z<Control-c>)r"   rB   r#   r$   printr&   saveassavecopy)r/   r"   r   r   r   r0     s    z'_io_binding.<locals>.MyEditWin.__init__c             S   s   dS )Nr   r   )r/   r   r   r   r3   $      z(_io_binding.<locals>.MyEditWin.get_savedc             S   s   d S )Nr   )r/   r5   r   r   r   r4   %  r   z(_io_binding.<locals>.MyEditWin.set_savedc             S   s   d S )Nr   )r/   r   r   r   r6   &  r   z)_io_binding.<locals>.MyEditWin.reset_undoc             S   s   | j d d S )Nz<<open-window-from-file>>)r"   event_generate)r/   rH   r   r   r   r$   '  s    z#_io_binding.<locals>.MyEditWin.openc             S   s   | j d d S )Nz<<print-window>>)r"   r   )r/   rH   r   r   r   r   )  s    z$_io_binding.<locals>.MyEditWin.printc             S   s   | j d d S )Nz<<save-window>>)r"   r   )r/   rH   r   r   r   r&   +  s    z#_io_binding.<locals>.MyEditWin.savec             S   s   | j d d S )Nz<<save-window-as-file>>)r"   r   )r/   rH   r   r   r   r   -  s    z%_io_binding.<locals>.MyEditWin.saveasc             S   s   | j d d S )Nz<<save-copy-of-window-as-file>>)r"   r   )r/   rH   r   r   r   r   /  s    z'_io_binding.<locals>.MyEditWin.savecopyN)r   r   r   r0   r3   r4   r6   r$   r   r&   r   r   r   r   r   r   	MyEditWin  s   r   )Ztkinterr   r   rb   mapintZgeometryr   packrF   r    )	rK   r   r   rootxyr   r"   r!   r   r   r   _io_binding  s    
 r   __main__)r}   zidlelib.idle_test.test_iomenur   F)	verbosityexit)run)1r   r   r9   r   r   r   r   Ztkinter.filedialogZ
filedialogr   Ztkinter.messageboxZ
messageboxrR   Ztkinter.simpledialogr   ZidlelibZidlelib.configr   Ztestingrg   errorslocale	setlocaleLC_CTYPEImportErrorErrorr   nl_langinfoCODESETZlocale_encodingr   	NameErrorrn   r   getdefaultlocale
ValueErrorlowerr   ASCIIr   r   r   r    r   r   Zunittestr}   Zidlelib.idle_test.htestr   r   r   r   r   <module>   sf   
)   ,$
