3
Õì2a° ã @ s’ d dl Z d dlmZ d dlmZ d dlmZ ddddd gZdad
d„ Z dd
„ Z
G dd„ deƒZG dd„ dƒZe
dkrŽd dlmZ edddd� dS )é N)Ú
messagebox)ÚEditorWindow)Úiomenuzfile "([^"]*)", line (\d+)z([^\s]+)\((\d+)\)z^(\s*\S.*?):\s*(\d+):z([^\s]+):\s*(\d+):z^\s*(\S.*?):\s*(\d+):c C s dd„ t D ƒad S )Nc S s g | ]}t j|t jƒ‘qS © )ÚreÚcompileÚ
IGNORECASE)Ú.0Zpatr r ú+/opt/alt/python36/lib64/python3.6/outwin.pyú
s z!compile_progs..)Úfile_line_patsÚfile_line_progsr r r r
Ú
compile_progs s r c C s� t s
tƒ x^t D ]R}|j| ƒ}|r|jddƒ\}}yt|dƒ}|jƒ P W q tk
r` wY qX qW d S y|t|ƒfS tk
rŠ d S X d S )Né é Úr) r
r ÚsearchÚgroupÚopenÚcloseÚOSErrorÚintÚ TypeError)ÚlineÚprogÚmatchÚfilenameÚlinenoÚfr r r
Úfile_line_helper s"
r c @ sj e Zd Zd d!d"d#d$gZd
d„ Zdd„ Zdd„ Zdd„ Zf dfdd„Zdd„ Z dd„ Z
dd„ Zd%dd„Zd
S )&ÚOutputWindowÚCutú<>Úrmenu_check_cutÚCopyú<>Úrmenu_check_copyÚPasteú <>Úrmenu_check_pasteNúGo to file/lineú<>c G s0 t j| f|žŽ | jjd| jƒ | jjdƒ d S )Nz<>z<>)r Ú__init__ÚtextZbindÚgoto_file_lineZunbind)ÚselfÚargsr r r
r, M s zOutputWindow.__init__c C s dS )NFr )r/ r r r r
ÚispythonsourceS s zOutputWindow.ispythonsourcec C s dS )NZOutputr )r/ r r r
Úshort_titleW s zOutputWindow.short_titlec C s | j ƒ rdS dS )NÚyesÚno)Z get_saved)r/ r r r
Ú maybesave[ s zOutputWindow.maybesaveÚinsertc C sF t |tƒr|jtjdƒ}| jj|||ƒ | jj|ƒ | jjƒ t |ƒS )NÚreplace)
Ú
isinstanceÚbytesÚdecoder Úencodingr- r6 ZseeÚupdateÚlen)r/ ÚsÚtagsÚmarkr r r
Úwrite` s
zOutputWindow.writec C s x|D ]}| j |ƒ qW d S )N)rA )r/ Úlinesr r r r
Ú
writelinesw s
zOutputWindow.writelinesc C s d S )Nr )r/ r r r
Úflush| s zOutputWindow.flushc O s t j||Ž d S )N)r Ú showerror)r/ r0 Úkwargsr r r
rE € s zOutputWindow.showerrorc C sd | j jddƒ}t|ƒ}|sJ| j jddƒ}t|ƒ}|sJ| jdd| j d� d S |\}}| jj||ƒ d S )Nzinsert linestartzinsert lineendzinsert -1line linestartzinsert -1line lineendzNo special linezTThe line you point at doesn't look like a valid file name followed by a line number.)Úparent)r- Úgetr rE ÚflistZgotofileline)r/ Zeventr Úresultr r r r r
r. ƒ s
zOutputWindow.goto_file_line)r! r" r# )r$ r% r&