��Qc@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�e&�ndS(i�N(t*(tSimpleDialog(tidleConf(tBOM_UTF8sttasciitwin32iscoding[:=]\s*([-\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�|jd�d }dj|�}tj|�}|s;dS|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 ( tsplittjoint coding_retsearchtNonetgrouptcodecstlookuptLookupError(tstrtmatchtnameRB((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|\rcCsXy)t|d�}|j�}|j�Wn3tk
r^}tjdt|�d|j�tSX|j |�}|j
j|�}|r�|jd�|_
t|j
t�r�|j
jd�|_
n|j
jd|�}n|jjdd�|jd�|jjd|�|j�|j|�|jjd d�|jjd �|j|�tS(
Ntrbs I/O ErrorR/iRs\ns1.0tendR%(RKtreadRXtIOErrorttkMessageBoxt showerrorRER Rtdecodeteol_reR?RAteol_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
startswithRRvtUnicodeErrorRSRHRDRtRuR R@Rztencoding(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�}ny8t|d�}|j|�|j�|j �t
SWn3tk
r�}tj
dt|�d|j�tSXdS(Ns1.0send-1cs
twbs I/O ErrorR/(tfixlastlineR{R tgetRxtreplaceRKtwritetflushRXR�RsRtRuRER(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(Ryttypest
StringTypeR{R�RHR@RDRtRuR 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�tshowRyRzR{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�RyRzR{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�6sN(sPython filess
*.py *.pywR�(s
Text filess*.txtR�(s All filesR(&R9R:R7RXRYRZR\R@RWR^RbRcRdRKteoltretcompileRwR_tlinesepRxRjRvRlRMRORQR�R{R�RTR�R�R�RhR�R�R�(((s'/sys/lib/python2.7/idlelib/IOBinding.pyRI�sB , -
J 2
cCsbt�}ddd��Y}t|�}|j�|j�||�}t|�}|j�dS(Nt MyEditWincBsPeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z RS(cSsn||_d|_|jjd|j�|jjd|j�|jjd|j�|jjd|j�dS(Ns<Control-o>s<Control-s>s<Alt-s>s<Alt-z>(R R@RgRRKRMRORQ(R.R ((s'/sys/lib/python2.7/idlelib/IOBinding.pyR7=s cSsdS(Ni((R.((s'/sys/lib/python2.7/idlelib/IOBinding.pyRYDscSsdS(N((R.R[((s'/sys/lib/python2.7/idlelib/IOBinding.pyRZEscSsdS(N((R.((s'/sys/lib/python2.7/idlelib/IOBinding.pyR\FscSs|jjd�dS(Ns<<open-window-from-file>>(R tevent_generate(R.Rm((s'/sys/lib/python2.7/idlelib/IOBinding.pyRKGscSs|jjd�dS(Ns<<save-window>>(R R�(R.Rm((s'/sys/lib/python2.7/idlelib/IOBinding.pyRMIscSs|jjd�dS(Ns<<save-window-as-file>>(R R�(R.Rm((s'/sys/lib/python2.7/idlelib/IOBinding.pyROKscSs|jjd�dS(Ns<<save-copy-of-window-as-file>>(R R�(R.Rm((s'/sys/lib/python2.7/idlelib/IOBinding.pyRQMs(
R9R:R7RYRZR\RKRMRORQ(((s'/sys/lib/python2.7/idlelib/IOBinding.pyR�<s ((tTktTextR!RkRItmainloop(RR�R RJtio((s'/sys/lib/python2.7/idlelib/IOBinding.pyttest:s
t__main__((R_R�R�tsysRBR�R�RtR�tTkinterRtidlelib.configHandlerRRtImportErrorR�t setlocaletLC_CTYPEtErrortgetfilesystemencodingR�R�R�tgetdefaultlocaleRCRDtnl_langinfotCODESETR@t NameErrorR�t
ValueErrortlowerR�R>RRHRIR�R9(((s'/sys/lib/python2.7/idlelib/IOBinding.pyt<module>sd
. �
|