�`^c@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Tddl
m
Z
ddlmZyddlm
Z
Wnek
r�dZ
nXy#ddlZejejd�Wneejfk
rnXej�ZdZejd kr]y!ej�d
Zeje�Wnek
rYnXn�yDejej�Zeekp�edkr�dZneje�Wnveeefk
ryBej�d
Zeekp�dkr�Zneje�Wneefk
rnXnXej �Zej!d�Z"de
fd
��YZ#d�Z$dfd��YZ%d�Z&e'dkr�ddl(m)Z)e)e&�ndS(i�N(t*(tSimpleDialog(tidleConf(tBOM_UTF8sttasciitwin32is%^[ \t\f]*#.*coding[:=][ \t]*([-\w.]+)tEncodingMessagecBs)eZdZd�Zd�Zd�ZRS(s3Inform user that an encoding declaration is needed.c
Cs�t|_t|�|_}|jd|j�|jd|j�|jd|j�|j d�|j
d�||_t|dd�}|j
dtdt�t|d d
�}|jdd|�|j
dtdtd
t�t|dd|�}|j
dtdt�t|�}|j
dtd
t�d|_|_t|ddddd|j�}|j
dtd
tdd�t|ddd|j�} | j
dtd
tdd�|j|�dS(Ns<Return>s<Escape>tWM_DELETE_WINDOWsI/O Warningttexts:Non-ASCII found, yet no encoding declared. Add a line liketsidetanchortfonttcourieris# -*- coding: %s -*-tfills`to your file
Choose OK to save this file as %s
Edit your general options to silence this warningtOktdefaulttactivetcommandtexpandisEdit my file(tFalsetshould_edittTopleveltroottbindtreturn_eventtdo_oktprotocoltwm_delete_windowtwm_titletwm_iconnamettoptLabeltpacktTOPtWtEntrytinserttXtFrameRtcanceltButtontLEFTtBOTHtdo_editt_set_transient(
tselftmastertencRtl1tl2tl3tbuttonstb1tb2((s'/sys/lib/python2.7/idlelib/IOBinding.pyt__init__Ns6
cCs|jd�dS(Ni(tdone(R.((s'/sys/lib/python2.7/idlelib/IOBinding.pyRtscCs|jd�dS(Ni(R8(R.((s'/sys/lib/python2.7/idlelib/IOBinding.pyR,ws(t__name__t
__module__t__doc__R7RR,(((s'/sys/lib/python2.7/idlelib/IOBinding.pyRLs & cCs�|jdd�d }x1|D]%}tj|�}|dk rPqqWdS|jd�}ddl}y|j|�Wntk
r�td|�nX|S(szReturn the encoding declaration according to PEP 263.
Raise LookupError if the encoding is declared but unknown.
s
iii�NsUnknown encoding (tsplitt coding_retmatchtNonetgrouptcodecstlookuptLookupError(tstrtlsttlineR>tnameRA((s'/sys/lib/python2.7/idlelib/IOBinding.pytcoding_speczs
t IOBindingcBs"eZd�Zd�Zd�Zd�Zd�ZdZd�Z dZ
dZd�Zddd�Z
dZeje�ZejZd �Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�ZdZdZ d d!d"gZ!d�Z"dd�Z#d�Z$d�Z%RS(#cCs�||_|j|_|jjd|j�|_|jjd|j�|_|jjd|j�|_|jjd|j �|_
d|_|jjd|j
�|_dS(Ns<<open-window-from-file>>s<<save-window>>s<<save-window-as-file>>s<<save-copy-of-window-as-file>>s<<print-window>>(teditwinR Rtopent_IOBinding__id_opentsavet_IOBinding__id_savetsave_ast_IOBinding__id_saveastsave_a_copyt_IOBinding__id_savecopyR?tfileencodingtprint_windowt_IOBinding__id_print(R.RJ((s'/sys/lib/python2.7/idlelib/IOBinding.pyR7�s cCs�|jjd|j�|jjd|j�|jjd|j�|jjd|j�|jjd|j�d|_d|_d|_ dS(Ns<<open-window-from-file>>s<<save-window>>s<<save-window-as-file>>s<<save-copy-of-window-as-file>>s<<print-window>>(
R tunbindRLRNRPRRRUR?RJtfilename_change_hook(R.((s'/sys/lib/python2.7/idlelib/IOBinding.pytclose�s cCs
|jj�S(N(RJt get_saved(R.((s'/sys/lib/python2.7/idlelib/IOBinding.pyRY�scCs|jj|�dS(N(RJt set_saved(R.tflag((s'/sys/lib/python2.7/idlelib/IOBinding.pyRZ�scCs|jj�dS(N(RJt
reset_undo(R.((s'/sys/lib/python2.7/idlelib/IOBinding.pyR\�scCs
||_dS(N(RW(R.thook((s'/sys/lib/python2.7/idlelib/IOBinding.pytset_filename_change_hook�scCsf|r-tjj|�r-d|_||_n5||_d|_|jd�|jrb|j�ndS(Ni(tostpathtisdirR?tfilenametdirnameRZRW(R.Rb((s'/sys/lib/python2.7/idlelib/IOBinding.pytset_filename�s
cCs%|jj}|r�|s'|j�}n|}|r�|jr~t|jdd�r~|jr~|j�r~|j||j�q�|j|�n|j r�|j j
�ndS|j�r�j�}|dkr�j j
�dSn|s�j�}n|}|r|j|�n
|j j
�dS(NtinterptbreakR((RJtflisttaskopenfiletgetattrR?RbRYRKtloadfileR t focus_sett maybesave(R.teventteditFileRgRbtreply((s'/sys/lib/python2.7/idlelib/IOBinding.pyRK�s6
s(\r\n)|\n|\rcCsWy(t|d��}|j�}WdQXWn3tk
r]}tjdt|�d|j�tSX|j|�}|j j
|�}|r�|jd�|_t
|jt�r�|jjd�|_n|j jd|�}n|jjdd�|jd�|jjd|�|j�|j|�|jjd d�|jjd �|j|�tS(
Ntrbs I/O ErrorR/iRs\ns1.0tendR%(RKtreadtIOErrorttkMessageBoxt showerrorRDR Rtdecodeteol_retsearchR@teol_conventiont
isinstancetunicodetencodetsubtdeleteRdR?R%R\tmark_settyviewtupdaterecentfileslisttTrue(R.Rbtftcharstmsgtfirsteol((s'/sys/lib/python2.7/idlelib/IOBinding.pyRj�s,
cCs!|jt�rKy|djd�}Wntk
r:|SXt|_|Snyt|�}Wn<tk
r�}tjdddd|d|j �d }nX|r�yt||�SWq�tk
r�q�Xnyt|d�SWntk
r�nXyt|t�}t|_Wntk
rnX|S(
sMCreate a Unicode string
If that fails, let Tcl try its best
isutf-8ttitlesError loading the filetmessages^The encoding '%s' is not known to this Python installation. The file may not display correctlyR/RN(
t
startswithRRvtUnicodeErrorRSRHRCRtRuR R?R{tencoding(R.R�R0RG((s'/sys/lib/python2.7/idlelib/IOBinding.pyRvs>
c Cs�|j�rdSd|jpd}tjddd|dtjd|j�}|r~d}|jd�|j�s�d }q�n|dkr�d }nd
}|jj�|S(Ntyess&Do you want to save %s before closing?sthis untitled documentR�s
Save On CloseR�RR/R(tno( RYRbRttaskyesnocanceltYESR RMR?Rk(R.R�tconfirmRo((s'/sys/lib/python2.7/idlelib/IOBinding.pyRlCs&
cCsq|js|j|�nG|j|j�r`|jt�y|jj�Wq`tk
r\q`Xn|jj �dS(NRf(
RbROt writefileRZR�RJtstore_file_breakstAttributeErrorR Rk(R.Rm((s'/sys/lib/python2.7/idlelib/IOBinding.pyRMYs
cCs�|j�}|rf|j|�rf|j|�|jd�y|jj�Wqctk
r_qcXqfn|jj�|j |�dS(NiRf(
tasksavefileR�RdRZRJR�R�R RkR�(R.RmRb((s'/sys/lib/python2.7/idlelib/IOBinding.pyROfs
cCs@|j�}|r"|j|�n|jj�|j|�dS(NRf(R�R�R RkR�(R.RmRb((s'/sys/lib/python2.7/idlelib/IOBinding.pyRQts
cCs�|j�|j|jjdd��}|jdkrO|jd|j�}ny-t|d��}|j|�WdQXtSWn3t k
r�}t
jdt|�d|j�t
SXdS(Ns1.0send-1cs
twbs I/O ErrorR/(tfixlastlineR|R tgetRytreplaceRKtwriteR�RsRtRuRDR(R.RbR�R�R�((s'/sys/lib/python2.7/idlelib/IOBinding.pyR�|s
c
Cs�t|tj�r|Sy|jd�SWntk
r:nXyt|�}d}Wntk
rr}|}d}nX|r�y|j|�SWq�tk
r�d|}q�Xn|r�tj dd|d|j
�n|jtks�r�|jd�S|jrYy|j|j�SWqYtk
rUtj dd|jd|j
�t|jd�SXnt
jdd d
�}|dkr�t|jd�St}y.|jt�}t}|dkr�t}nWn*tk
r�t|jd�}d}nX|s�St|jj|�}|j�|jdkr�d
|}|j
jdd�} | jd�rh|j
jd|�n|j
jd|�|j|j
jdd��S|S(NRsInvalid encoding '%s's I/O Errors%s. Saving as UTF-8R/sutf-8s1Cannot save this as '%s' anymore. Saving as UTF-8tmaintEditorWindowR�tlocaleis# -*- coding: %s -*-
s1.0s2.0s#!send-1c(Rzttypest
StringTypeR|R�RHR?RCRtRuR RSRRt GetOptionR�R�RRRJRtgotnumR�R�R%(
R.R�R0tfailedR�tconfig_encodingtask_usertdialogtenclinet firstline((s'/sys/lib/python2.7/idlelib/IOBinding.pyR|�sv
cCs8|jjd�}|dkr4|jjdd�ndS(Nsend-2cs
send-1c(R R�R%(R.tc((s'/sys/lib/python2.7/idlelib/IOBinding.pyR��sc Cstjdddddtjd|j�}|sA|jj�dSd}|j�}|re|j}n|sx|dkr�tj dd �\}}|}t
j|�|j|�s�t
j
|�dSnt
j}t}|d
krtjddd
�} | d} n*|dkr'tjddd�} nt}|r�| tj|�} t
j| d�}
|
j�j�}|
j�}|r�d||}n|r�t| �|}tjd|d|j�q�#d|}
tjd|
d|j�|r�j
|�ndS(NR�tPrintR�sPrint to Default PrinterRR/Rftprefixt IDLE_tmp_tposixR�tGeneralsprint-command-posixs 2>&1tntsprint-command-wintrs#Printing failed (exit status 0x%x)
sPrinting command: %s
sPrint statuss-Printing is not enabled for this platform: %s(RttaskokcanceltOKR RkR?RYRbttempfiletmkstempR_RXR�tunlinkRGR�RR�RtpipestquotetpopenRrtstriptreprRutshowinfo(R.RmR�ttempfilenametsavedRbttfdtplatformt
printPlatformRtpipetoutputtstatusR�((s'/sys/lib/python2.7/idlelib/IOBinding.pyRT�sX
sPython filess
*.py *.pywtTEXTs
Text filess*.txts All filesRcCs�|jd�\}}|jsBtjd|jd|j�|_n|jjd|d|�}t|t�r~|j t
�}n|S(NRKR/t filetypest
initialdirtinitialfile(tdefaultfilenamet
opendialogttkFileDialogtOpenR R�tshowRzR{R|tfilesystemencoding(R.tdirtbaseRb((s'/sys/lib/python2.7/idlelib/IOBinding.pyRhs RKcCsm|jrtjj|j�S|jr2|jdfSytj�}Wntjk
r^d}nX|dfSdS(NR(RbR_R`R<Rctgetcwdterror(R.tmodetpwd((s'/sys/lib/python2.7/idlelib/IOBinding.pyR�s
cCs�|jd�\}}|jsBtjd|jd|j�|_n|jjd|d|�}t|t�r~|j t
�}n|S(NRMR/R�R�R�(R�t
savedialogR�tSaveAsR R�R�RzR{R|R�(R.R�R�Rb((s'/sys/lib/python2.7/idlelib/IOBinding.pyR�*s cCs|jj|�dS(s-Update recent file list on all editor windowsN(RJtupdate_recent_files_list(R.Rb((s'/sys/lib/python2.7/idlelib/IOBinding.pyR�4sN(sPython filess
*.py *.pywR�(s
Text filess*.txtR�(s All filesR(&R9R:R7RXRYRZR\R?RWR^RbRcRdRKteoltretcompileRwR_tlinesepRyRjRvRlRMRORQR�R|R�RTR�R�R�RhR�R�R�(((s'/sys/lib/python2.7/idlelib/IOBinding.pyRI�sB , -
J 2
c
Cs�t�}|jd�ttttjd|j����\}}}}|jd||df�ddd��Y}t|�}|j �|j
�||�}t|�} dS(NsTest IOBindings[x+]s+%d+%di�t MyEditWincBs>eZd�Zd�Zd�Zd�Zd�Zd�ZRS(cSsB||_d|_|jjd|j�|jjd|j�dS(Ns<Control-o>s<Control-s>(R R?RgRRKRM(R.R ((s'/sys/lib/python2.7/idlelib/IOBinding.pyR7>s cSsdS(Ni((R.((s'/sys/lib/python2.7/idlelib/IOBinding.pyRYCscSsdS(N((R.R[((s'/sys/lib/python2.7/idlelib/IOBinding.pyRZDscSsdS(N((R.((s'/sys/lib/python2.7/idlelib/IOBinding.pyR\EscSs|jjd�dS(Ns<<open-window-from-file>>(R tevent_generate(R.Rm((s'/sys/lib/python2.7/idlelib/IOBinding.pyRKFscSs|jjd�dS(Ns<<save-window>>(R R�(R.Rm((s'/sys/lib/python2.7/idlelib/IOBinding.pyRMHs(R9R:R7RYRZR\RKRM(((s'/sys/lib/python2.7/idlelib/IOBinding.pyR�=s ((tTkR�tlisttmaptintR�R<tgeometrytTextR!RkRI(
tparentRtwidththeighttxtyR�R RJtio((s'/sys/lib/python2.7/idlelib/IOBinding.pyt_io_binding8s
3
t__main__(trun(*R_R�R�tsysRAR�R�RtR�tTkinterRtidlelib.configHandlerRRtImportErrorR�t setlocaletLC_CTYPEtErrortgetfilesystemencodingR�R�R�tgetdefaultlocaleRBRCtnl_langinfotCODESETR?t NameErrorR�t
ValueErrortlowerR�R=RRHRIR�R9tidlelib.idle_test.htestR�(((s'/sys/lib/python2.7/idlelib/IOBinding.pyt<module>sf
. �
|