Ñò
ïžòKc           @   s’  d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Td  d k	 l	 Z	 d  d k
 l Z y d  d k l Z Wn e j
 o d Z n Xy# d  d k Z e i e i d ƒ Wn e e i f j
 o n Xe i ƒ  Z d Z e i d	 j o; y! e i ƒ  d
 Z e i e ƒ Wn e j
 o n XnÈ yG e i e i ƒ Z e e j p
 e d j o
 d Z n e i e ƒ Wn} e e e f j
 oh yE e i ƒ  d
 Z e e j p
 e d j o
 d Z n e i e ƒ Wn e e f j
 o n Xn Xe i ƒ  Z e i  d ƒ Z! d e	 f d „  ƒ  YZ" d „  Z# d f  d „  ƒ  YZ$ d „  Z% e& d j o e% ƒ  n d S(   iÿÿÿÿN(   t   *(   t   SimpleDialog(   t   idleConf(   t   BOM_UTF8s   ï»¿t    t   asciit   win32i   s   coding[:=]\s*([-\w_.]+)t   EncodingMessagec           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s3   Inform user that an encoding declaration is needed.c   
      C   sÅ  t  |  _ t | ƒ |  _ } | i d |  i ƒ | i d |  i ƒ | i d |  i ƒ | i	 d ƒ | i
 d ƒ | |  _ t | d d ƒ} | i d t d t ƒ t | d	 d
 ƒ} | i d d | ƒ | i d t d t d t ƒ t | d d | ƒ} | i d t d t ƒ t | ƒ } | i d t d t ƒ d |  _ |  _ t | d d d d d |  i ƒ} | i d t d t d d ƒ t | d d d |  i ƒ}	 |	 i d t d t d d ƒ |  i | ƒ d  S(   Ns   <Return>s   <Escape>t   WM_DELETE_WINDOWs   I/O Warningt   texts:   Non-ASCII found, yet no encoding declared. Add a line liket   sidet   anchort   fontt   courieri    s   # -*- coding: %s -*-t   fills`   to your file
Choose OK to save this file as %s
Edit your general options to silence this warningt   Okt   defaultt   activet   commandt   expandi   s   Edit my file(   t   Falset   should_editt   Toplevelt   roott   bindt   return_eventt   do_okt   protocolt   wm_delete_windowt   wm_titlet   wm_iconnamet   topt   Labelt   packt   TOPt   Wt   Entryt   insertt   Xt   FrameR   t   cancelt   Buttont   LEFTt   BOTHt   do_editt   _set_transient(
   t   selft   mastert   encR   t   l1t   l2t   l3t   buttonst   b1t   b2(    (    s'   scripts/common/Lib/idlelib/IOBinding.pyt   __init__M   s6    				
c         C   s   |  i  d ƒ d  S(   Ni    (   t   done(   R.   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR   s   s    c         C   s   |  i  d ƒ d  S(   Ni   (   R8   (   R.   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR,   v   s    (   t   __name__t
   __module__t   __doc__R7   R   R,   (    (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR   K   s   	&	c         C   s�   |  i  d ƒ d  }  d i |  ƒ }  t i |  ƒ } | p d S| i d ƒ } d d k } y | i | ƒ Wn  t j
 o t d | ‚ n X| S(   sz   Return the encoding declaration according to PEP 263.

    Raise LookupError if the encoding is declared but unknown.
    s   
i   i   iÿÿÿÿNs   Unknown encoding (	   t   splitt   joint	   coding_ret   searcht   Nonet   groupt   codecst   lookupt   LookupError(   t   strt   matcht   nameRB   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyt   coding_specy   s    t	   IOBindingc           B   s"  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d Z d „  Z	 d Z
 d Z d „  Z d d d „ Z d Z e i e ƒ Z e i Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d Z d Z  d d  d! g Z! d „  Z" d d „ Z# d „  Z$ d „  Z% RS("   c         C   s©   | |  _  | i |  _ |  i i d |  i ƒ |  _ |  i i d |  i ƒ |  _ |  i i d |  i ƒ |  _ |  i i d |  i	 ƒ |  _
 d  |  _ |  i i d |  i ƒ |  _ d  S(   Ns   <<open-window-from-file>>s   <<save-window>>s   <<save-window-as-file>>s   <<save-copy-of-window-as-file>>s   <<print-window>>(   t   editwinR	   R   t   opent   _IOBinding__id_opent   savet   _IOBinding__id_savet   save_ast   _IOBinding__id_saveast   save_a_copyt   _IOBinding__id_savecopyR@   t   fileencodingt   print_windowt   _IOBinding__id_print(   R.   RJ   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR7   ’   s    		c         C   s�   |  i  i d |  i ƒ |  i  i d |  i ƒ |  i  i d |  i ƒ |  i  i d |  i ƒ |  i  i d |  i ƒ d  |  _ d  |  _  d  |  _	 d  S(   Ns   <<open-window-from-file>>s   <<save-window>>s   <<save-window-as-file>>s   <<save-copy-of-window-as-file>>s   <<print-window>>(
   R	   t   unbindRL   RN   RP   RR   RU   R@   RJ   t   filename_change_hook(   R.   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyt   closež   s    		c         C   s   |  i  i ƒ  S(   N(   RJ   t	   get_saved(   R.   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRY   ª   s    c         C   s   |  i  i | ƒ d  S(   N(   RJ   t	   set_saved(   R.   t   flag(    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRZ   ­   s    c         C   s   |  i  i ƒ  d  S(   N(   RJ   t
   reset_undo(   R.   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR\   °   s    c         C   s   | |  _  d  S(   N(   RW   (   R.   t   hook(    (    s'   scripts/common/Lib/idlelib/IOBinding.pyt   set_filename_change_hookµ   s    c         C   sk   | o) t  i i | ƒ o d  |  _ | |  _ n8 | |  _ d  |  _ |  i d ƒ |  i o |  i ƒ  n d  S(   Ni   (   t   ost   patht   isdirR@   t   filenamet   dirnameRZ   RW   (   R.   Rb   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyt   set_filename»   s    			
c         C   sE  |  i  i o¶ | p |  i ƒ  } n | } | o€ y |  i  i } Wn t j
 o d  } n X|  i o2 |  i ƒ  o% | o |  i  i i | |  i	 ƒ q¾ |  i  i i | ƒ n |  i
 i ƒ  d S|  i ƒ  o/ |  i ƒ  } | d j o |  i
 i ƒ  d Sn | p |  i ƒ  } n | } | o |  i	 | ƒ n |  i
 i ƒ  d S(   Nt   breakR(   (   RJ   t   flistt   askopenfilet   interpt   AttributeErrorR@   Rb   RY   RK   t   loadfileR	   t	   focus_sett	   maybesave(   R.   t   eventt   editFileRb   Rh   t   reply(    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRK   Æ   s4     	s   (\r\n)|\n|\rc         C   s^  y) t  | d ƒ } | i ƒ  } | i ƒ  Wn5 t j
 o) } t i d t | ƒ d |  i ƒt SX|  i	 | ƒ } |  i
 i | ƒ } | oW | i d ƒ |  _ t |  i t ƒ o |  i i d ƒ |  _ n |  i
 i d | ƒ } n |  i i d d ƒ |  i d  ƒ |  i i d | ƒ |  i ƒ  |  i | ƒ |  i i d	 d ƒ |  i i d	 ƒ |  i | ƒ t S(
   Nt   rbs	   I/O ErrorR/   i    R   s   \ns   1.0t   endR%   (   RK   t   readRX   t   IOErrort   tkMessageBoxt	   showerrorRE   R	   R   t   decodet   eol_reR?   RA   t   eol_conventiont
   isinstancet   unicodet   encodet   subt   deleteRd   R@   R%   R\   t   mark_sett   seet   updaterecentfileslistt   True(   R.   Rb   t   ft   charst   msgt   firsteol(    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRj   ò   s.    
c         C   s/  | i  t ƒ o? y | d i d ƒ } Wn t j
 o | SXt |  _ | Sn y t | ƒ } Wn> t j
 o2 } t i d d d d | d |  i	 ƒ d	 } n X| o+ y t | | ƒ SWqÒ t j
 o qÒ Xn y t | d ƒ SWn t j
 o n Xy t | t ƒ } t |  _ Wn t j
 o n X| S(
   sM   Create a Unicode string

        If that fails, let Tcl try its best
        i   s   utf-8t   titles   Error loading the filet   messages^   The encoding '%s' is not known to this Python installation. The file may not display correctlyR/   R   N(   t
   startswithR   Rv   t   UnicodeErrorRS   RH   RD   Rt   Ru   R	   R@   Rz   t   encoding(   R.   Rƒ   R0   RG   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRv     s>    		
	c         C   s«   |  i  ƒ  o d Sd |  i p d } t i d d d | d t i d t i d	 |  i ƒ } | i ƒ  } | d j o( |  i d  ƒ |  i  ƒ  p
 d
 } qš n |  i i
 ƒ  | S(   Nt   yess&   Do you want to save %s before closing?s   this untitled documentR†   s   Save On CloseR‡   t   icont   typeR/   R(   (   RY   Rb   Rt   t   Messaget   QUESTIONt   YESNOCANCELR	   t   showRM   R@   Rk   (   R.   R‡   t   mRo   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRl   >  s"    			c         C   sw   |  i  p |  i | ƒ nL |  i |  i  ƒ o8 |  i d ƒ y |  i i ƒ  Wqf t j
 o qf Xn |  i i ƒ  d S(   Ni   Re   (	   Rb   RO   t	   writefileRZ   RJ   t   store_file_breaksRi   R	   Rk   (   R.   Rm   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRM   Q  s    
	c         C   sŠ   |  i  ƒ  } | oY |  i | ƒ oE |  i | ƒ |  i d ƒ y |  i i ƒ  Wqh t j
 o qh Xql n |  i i ƒ  |  i	 | ƒ d S(   Ni   Re   (
   t   asksavefileR“   Rd   RZ   RJ   R”   Ri   R	   Rk   R€   (   R.   Rm   Rb   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRO   ^  s    c         C   sB   |  i  ƒ  } | o |  i | ƒ n |  i i ƒ  |  i | ƒ d S(   NRe   (   R•   R“   R	   Rk   R€   (   R.   Rm   Rb   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRQ   l  s    c         C   sÅ   |  i  ƒ  |  i |  i i d d ƒ ƒ } |  i d j o | i d |  i ƒ } n y8 t | d ƒ } | i | ƒ | i ƒ  | i	 ƒ  t
 SWn5 t j
 o) } t i d t | ƒ d |  i ƒt SXd  S(   Ns   1.0s   end-1cs   
t   wbs	   I/O ErrorR/   (   t   fixlastlineR{   R	   t   getRx   t   replaceRK   t   writet   flushRX   R�   Rs   Rt   Ru   RE   R   (   R.   Rb   Rƒ   R‚   R„   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR“   t  s    



c   
      C   sº  t  | t i ƒ o | Sy | i d ƒ SWn t j
 o n Xy t | ƒ } d  } Wn! t j
 o } | } d  } n X| o5 y | i | ƒ SWqµ t j
 o d | } qµ Xn | o! t i	 d d | d |  i
 ƒn |  i t j p | o t | i d ƒ S|  i o\ y | i |  i ƒ SWqlt j
 o5 t i	 d d |  i d |  i
 ƒt | i d ƒ SXn t i d d	 d
 ƒ } | d j o t | i d ƒ St } y0 | i t ƒ } t } | d j o
 t } n Wn, t j
 o  t | i d ƒ } d } n X| p | St |  i i | ƒ } | i ƒ  | i d j ov d | } |  i
 i d d ƒ }	 |	 i d ƒ o |  i
 i d | ƒ n |  i
 i d | ƒ |  i |  i
 i d d ƒ ƒ S| S(   NR   s   Invalid encoding '%s's	   I/O Errors   %s. Saving as UTF-8R/   s   utf-8s1   Cannot save this as '%s' anymore. Saving as UTF-8t   maint   EditorWindowRŠ   t   localei   s   # -*- coding: %s -*-
s   1.0s   2.0s   #!s   end-1c(   Ry   t   typest
   StringTypeR{   R‰   RH   R@   RD   Rt   Ru   R	   RS   R   R   t	   GetOptionR�   RŠ   R   R   RJ   R   t   got   numR˜   Rˆ   R%   (
   R.   Rƒ   R0   t   failedR„   t   config_encodingt   ask_usert   dialogt   enclinet	   firstline(    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR{   „  sv    




	

c         C   s:   |  i  i d ƒ } | d j o |  i  i d d ƒ n d  S(   Ns   end-2cs   
s   end-1c(   R	   R˜   R%   (   R.   t   c(    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR—   Î  s    c         C   s6  t  i d d d d d t  i d t  i d t  i d |  i ƒ } | i ƒ  } | t  i j o |  i i ƒ  d	 Sd  } |  i	 ƒ  } | o |  i
 } n | p | d  j oQ t i d
 d ƒ \ } } | } t i | ƒ |  i | ƒ p t i | ƒ d	 Sn t i } d }	 | d j o# t i d d d ƒ }
 |
 d }
 n- | d j o t i d d d ƒ }
 n d }	 |	 o� |
 | }
 t i |
 d ƒ } | i ƒ  i ƒ  } | i ƒ  } | o d | | } n | o1 d t |
 ƒ | } t  i d | d |  i ƒqn$ d | } t  i d | d |  i ƒ| o t i | ƒ n d	 S(   NR†   t   PrintR‡   s   Print to Default PrinterRŒ   R�   R   R/   Re   t   prefixt	   IDLE_tmp_i   t   posixRœ   t   Generals   print-command-posixs    2>&1t   nts   print-command-wini    t   rs#   Printing failed (exit status 0x%x)
s   Printing command: %s
s   Print statuss-   Printing is not enabled for this platform: %s(   Rt   RŽ   R�   t   OKCANCELt   OKR	   R‘   Rk   R@   RY   Rb   t   tempfilet   mkstempR_   RX   R“   t   unlinkRG   R   R¡   t   popenRr   t   stript   reprRu   t   showinfo(   R.   Rm   R’   Ro   t   tempfilenamet   savedRb   t   tfdt   platformt   printPlatformR   t   pipet   outputt   statusR‡   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRT   Ó  s^    							
!
s   Python and text filess   *.py *.pyw *.txtt   TEXTs   All text filesR    s	   All filesc         C   s†   |  i  d ƒ \ } } |  i p% t i d |  i d |  i ƒ |  _ n |  i i d | d | ƒ } t | t ƒ o | i	 t
 ƒ } n | S(   NRK   R/   t	   filetypest
   initialdirt   initialfile(   t   defaultfilenamet
   opendialogt   tkFileDialogt   OpenR	   RÄ   R‘   Ry   Rz   R{   t   filesystemencoding(   R.   t   dirt   baseRb   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRg     s    
RK   c         C   ss   |  i  o t i i |  i  ƒ S|  i o |  i d f Sy t i ƒ  } Wn t i j
 o d } n X| d f Sd  S(   NR   (   Rb   R_   R`   R<   Rc   t   getcwdt   error(   R.   t   modet   pwd(    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRÇ     s    

c         C   s†   |  i  d ƒ \ } } |  i p% t i d |  i d |  i ƒ |  _ n |  i i d | d | ƒ } t | t ƒ o | i	 t
 ƒ } n | S(   NRM   R/   RÄ   RÅ   RÆ   (   RÇ   t
   savedialogRÉ   t   SaveAsR	   RÄ   R‘   Ry   Rz   R{   RË   (   R.   RÌ   RÍ   Rb   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR•   '  s    
c         C   s   |  i  i | ƒ d S(   s-   Update recent file list on all editor windowsN(   RJ   t   update_recent_files_list(   R.   Rb   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR€   1  s    N(   s   Python and text filess   *.py *.pyw *.txtRÃ   (   s   All text filesR    RÃ   (   s	   All filesR    (&   R9   R:   R7   RX   RY   RZ   R\   R@   RW   R^   Rb   Rc   Rd   RK   t   eolt   ret   compileRw   R_   t   linesepRx   Rj   Rv   Rl   RM   RO   RQ   R“   R{   R—   RT   RÈ   RÒ   RÄ   Rg   RÇ   R•   R€   (    (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRI   �   sB   							(			-						J		5		
	
c          C   sb   t  ƒ  }  d d d „  ƒ  Y} t |  ƒ } | i ƒ  | i ƒ  | | ƒ } t | ƒ } |  i ƒ  d  S(   Nt	   MyEditWinc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         S   sn   | |  _  d  |  _ |  i  i d |  i ƒ |  i  i d |  i ƒ |  i  i d |  i ƒ |  i  i d |  i ƒ d  S(   Ns   <Control-o>s   <Control-s>s   <Alt-s>s   <Alt-z>(   R	   R@   Rf   R   RK   RM   RO   RQ   (   R.   R	   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR7   8  s    		c         S   s   d S(   Ni    (    (   R.   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRY   ?  s    c         S   s   d  S(   N(    (   R.   R[   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRZ   @  s    c         S   s   d  S(   N(    (   R.   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyR\   A  s    c         S   s   |  i  i d ƒ d  S(   Ns   <<open-window-from-file>>(   R	   t   event_generate(   R.   Rm   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRK   B  s    c         S   s   |  i  i d ƒ d  S(   Ns   <<save-window>>(   R	   RÚ   (   R.   Rm   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRM   D  s    c         S   s   |  i  i d ƒ d  S(   Ns   <<save-window-as-file>>(   R	   RÚ   (   R.   Rm   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRO   F  s    c         S   s   |  i  i d ƒ d  S(   Ns   <<save-copy-of-window-as-file>>(   R	   RÚ   (   R.   Rm   (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRQ   H  s    (
   R9   R:   R7   RY   RZ   R\   RK   RM   RO   RQ   (    (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyRÙ   7  s   							(    (   t   Tkt   TextR!   Rk   RI   t   mainloop(   R   RÙ   R	   RJ   t   io(    (    s'   scripts/common/Lib/idlelib/IOBinding.pyt   test5  s    	

t   __main__('   R_   RŸ   t   sysRB   R´   RÉ   Rt   RÖ   t   TkinterR   t   configHandlerR   R   t   ImportErrorRž   t	   setlocalet   LC_CTYPEt   Errort   getfilesystemencodingRË   RŠ   R¾   t   getdefaultlocaleRC   RD   t   nl_langinfot   CODESETR@   t	   NameErrorRi   t
   ValueErrort   lowerR×   R>   R   RH   RI   Rß   R9   (    (    (    s'   scripts/common/Lib/idlelib/IOBinding.pyt   <module>   sb   
	


.	ÿ ¦	