3 2aP@sddlZddlmZddlZddlZddlZddlZddlZddljZ ddl j Z ddl mZddlZddlmZejr~dZn yddlZejejdWneejfk rYnXdZejdkryejd ZejeWnek rYnXny2ejej ZedksedkrdZejeWnje!e"efk ry2ejd Zedks`edkrddZejeWne#efk rYnXYnXej$ZeZej%d ej&Z'ej%d ej&Z(d d Z)GdddZ*ddZ+e,dkrddl-m.Z.e.ddddddl/m0Z0e0e+dS)N)BOM_UTF8) askstring)idleConfzutf-8asciiwin32z&^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)z^[ \t\f]*(?:[#\r\n]|$)c Cst|tr|jd}n|}d|kr8|jdddd}n$d|krV|jdddd}n|g}x2|D]&}tj|}|dk rzPtj|sbdSqbWdS|jd}ytj |Wn t k rt d|YnX|S)Nz iso-8859-1  rzUnknown encoding: ) isinstancebytesdecodesplit coding_rematchblank_regroupcodecslookup LookupError)datalinesZlstlinernamer+/opt/alt/python36/lib64/python3.6/iomenu.py coding_specGs*      rc@seZdZddZddZddZddZd d Zd Zd d Z d Z d Z ddZ d:ddZ dZejeZejZddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd Zd Z d>Z!e"j#d.krd/nd0Z$d1d2Z%d?d4d5Z&d6d7Z'd8d9Z(d S)@ IOBindingcCsr||_|j|_|jjd|j|_|jjd|j|_|jjd|j|_|jjd|j |_ d|_ |jjd|j |_ dS)Nz<>z<>z<>z<>z<>)editwintextbindopen_IOBinding__id_opensave_IOBinding__id_savesave_as_IOBinding__id_saveas save_a_copy_IOBinding__id_savecopy fileencoding print_window_IOBinding__id_print)selfrrrr__init__us  zIOBinding.__init__cCsf|jjd|j|jjd|j|jjd|j|jjd|j|jjd|jd|_d|_d|_dS)Nz<>z<>z<>z<>z<>) r Zunbindr#r%r'r)r,rfilename_change_hook)r-rrrcloseszIOBinding.closecCs |jjS)N)r get_saved)r-rrrr1szIOBinding.get_savedcCs|jj|dS)N)r set_saved)r-flagrrrr2szIOBinding.set_savedcCs|jjdS)N)r reset_undo)r-rrrr4szIOBinding.reset_undoNcCs ||_dS)N)r/)r-hookrrrset_filename_change_hooksz"IOBinding.set_filename_change_hookcCsF|rtjj|rd|_||_n$||_d|_|jd|jrB|jdS)Nr)ospathisdirfilenamedirnamer2r/)r-r:rrr set_filenames zIOBinding.set_filenamecCs|jj}|rx|s|j}n|}|rd|jrXt|jdd rX|j rX|jrX|j||jqt|j|n|jrt|jj dS|jr|j }|dkr|jj dS|s|j}n|}|r|j|n |jj dS)NZinterpbreakcancel) rflist askopenfilegetattrr:r1r"loadfiler focus_set maybesave)r-eventZeditFiler?r:replyrrrr"s6       zIOBinding.openz (\r\n)|\n|\rc Cs@y|j j j t d d t|j j d }|rnt ||}d|_|d fSttfk rYnXdS)Nzutf-8FBOMzError loading the filez^The encoding '%s' is not known to this Python installation. The file may not display correctly)titlemessagerHrzSpecify 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 initialvaluerHT)NF)NF)NF) startswithrrUnicodeDecodeErrorr*rrrOrPr rQrupdaterencoding)r-rZr r\encrrrrrRsh         zIOBinding._decodecCsp|jr dSd|jpd}tjd|tj|jd}|rPd}|jd|jsbd}n|dkr^d}nd}|jj|S)Nyesz&Do you want to save %s before closing?zthis untitled documentz Save On Close)r_r`defaultrHr>no)r1r:rOZaskyesnocancelZYESr r$rC)r-r`confirmrFrrrrDAs&    zIOBinding.maybesavec CsZ|js|j|n:|j|jrL|jdy|jjWntk rJYnX|jjdS)NTr=) r:r& writefiler2rstore_file_breaksAttributeErrorr rC)r-rErrrr$Ws    zIOBinding.savec Csf|j}|rN|j|rN|j||jdy|jjWntk rLYnX|jj|j |dS)Nrr=) asksavefilerjr<r2rrkrlr rCrX)r-rEr:rrrr&ds     zIOBinding.save_ascCs.|j}|r|j||jj|j|dS)Nr=)rmrjr rCrX)r-rEr:rrrr(rs    zIOBinding.save_a_copycCs|j|jjdd}|jdkr.|jd|j}|j|}y$t|d}|j|WdQRXdStk r}zt j dt ||jddSd}~XnXdS) Nz1.0zend-1cr wbTz I/O Error)rHF) fixlastliner getrUreplaceencoder"writerNrOrPrQ)r-r:r r\rYr[rrrrjzs     zIOBinding.writefilec#Cst|tr|S|jdkr&t|jdSy |jdStk rDYnXyt|}d}Wn*tk r}z|}d}WYdd}~Xn X|sd}|ry |j|Stk rd|}YnXtj dd||j dt|jdS)Nr^zutf-8rzInvalid encoding '%s'z I/O Errorz%s. Saving as UTF-8)rH) r r r*rrr UnicodeErrorrrrOrPr )r-r\reZfailedr[rrrrrs4     zIOBinding.encodecCs&|jjd}|dkr"|jjdddS)Nzend-2cr zend-1c)r rprJ)r-crrrros zIOBinding.fixlastlinecCsftjddtj|jd}|s(|jjdSd}|j}|r>|j}| sL|dkrtjdd\}}|}t j ||j |st j |dSt j }d}|dkrtjd d d } | d } n|d krtjd d d} nd}|r8| tj|} t j| d} | jj} | j } | rd| | } | rRdt| | } tjd| |jdnd|} tjd| |jd|rbt j |dS)NZPrintzPrint to Default Printer)r_r`rgrHr=Z IDLE_tmp_)prefixTposixmainZGeneralzprint-command-posixz 2>&1ntzprint-command-winFrz#Printing failed (exit status 0x%x) zPrinting command: %s z Print status)rHz-Printing is not enabled for this platform: %s)rOZ askokcancelZOKr rCr1r:tempfileZmkstempr7r0rjunlinkrrZ GetOptionshlexZquotepopenrMstripreprrPZshowinfo)r-rEriZ tempfilenameZsavedr:ZtfdplatformZ printPlatformZcommandpipeoutputstatusr`rrrr+sX          zIOBinding.print_window Python files *.py *.pywTEXT Text files*.txt All files*darwinz.pyrcCs<|jd\}}|js(tj|j|jd|_|jj||d}|S)Nr")rH filetypes) initialdir initialfile)defaultfilename opendialog tkFileDialogZOpenr rshow)r-dirbaser:rrrr@s  zIOBinding.askopenfiler"c CsV|jrtjj|jS|jr$|jdfSy tj}Wntk rHd}YnX|dfSdS)Nr)r:r7r8rr;getcwdrN)r-modepwdrrrrs   zIOBinding.defaultfilenamecCs@|jd\}}|js,tj|j|j|jd|_|jj||d}|S)Nr$)rHrdefaultextension)rr)r savedialogrZSaveAsr rrr)r-rrr:rrrrms zIOBinding.asksavefilecCs|jjr|jj|dS)N)rr?Zupdate_recent_files_list)r-r:rrrrXszIOBinding.updaterecentfileslist)NNrrrrrrrr)rrr)r"))__name__ __module__ __qualname__r.r0r1r2r4r/r6r:r;r<r"ZeolrecompilerSr7lineseprUrBrRrDr$r&r(rjrrror+rrrsysrrr@rrmrXrrrrrpsD   , $D '2  rc Csddlm}m}||}|jdtt|jjddd\}}|jd||dfGdd d }||}|j|j ||}t |dS) Nr)ToplevelTextzTest IOBinding+rz+%d+%dc@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)z_io_binding..MyEditWincSs`||_d|_|jjd|j|jjd|j|jjd|j|jjd|j|jjd|jdS)Nz z z zz )r r?r!r"printr$saveassavecopy)r-r rrrr.sz'_io_binding..MyEditWin.__init__cSsdS)Nrr)r-rrrr1%sz(_io_binding..MyEditWin.get_savedcSsdS)Nr)r-r3rrrr2&sz(_io_binding..MyEditWin.set_savedcSsdS)Nr)r-rrrr4'sz)_io_binding..MyEditWin.reset_undocSs|jjddS)Nz<>)r event_generate)r-rErrrr"(sz#_io_binding..MyEditWin.opencSs|jjddS)Nz<>)r r)r-rErrrr*sz$_io_binding..MyEditWin.printcSs|jjddS)Nz<>)r r)r-rErrrr$,sz#_io_binding..MyEditWin.savecSs|jjddS)Nz<>)r r)r-rErrrr.sz%_io_binding..MyEditWin.saveascSs|jjddS)Nz<>)r r)r-rErrrr0sz'_io_binding..MyEditWin.savecopyN) rrrr.r1r2r4r"rr$rrrrrr MyEditWinsr) Ztkinterrrr_mapintZgeometryrpackrCr) rHrrrootxyrr rrrr _io_bindings  r__main__)rxzidlelib.idle_test.test_iomenur F) verbosityexit)run)1rrr7rr}rr{Ztkinter.filedialogZ filedialogrZtkinter.messageboxZ messageboxrOZtkinter.simpledialogrZidlelibZidlelib.configrZtestingrdlocale setlocaleLC_CTYPE ImportErrorErrorZ locale_decodergetdefaultlocaleZlocale_encodingrr nl_langinfoCODESET NameErrorrl ValueErrorlowerrASCIIrrrrrrZunittestrxZidlelib.idle_test.htestrrrrrsj          )($