<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2a                 @   s   d dl Z d dlmZ d dlmZ d dlmZ ddddd	gZdad
d Z	dd Z
G dd deZG dd dZedkrd dlmZ edddd dS )    N)
messagebox)EditorWindow)iomenuzfile "([^"]*)", line (\d+)z([^\s]+)\((\d+)\)z^(\s*\S.*?):\s*(\d+):z([^\s]+):\s*(\d+):z^\s*(\S.*?):\s*(\d+):c               C   s   dd t D ad S )Nc             S   s   g | ]}t j|t jqS  )recompile
IGNORECASE).0Zpatr   r   +/opt/alt/python36/lib64/python3.6/outwin.py
<listcomp>   s   z!compile_progs.<locals>.<listcomp>)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|jdd\}}yt|d}|j  P W q tk
r`   wY qX qW d S y|t|fS  tk
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 Zd Zd d!d"d#d$gZdd Zdd Zdd Zdd Zf dfddZdd Z	dd Z
dd Zd%ddZd
S )&OutputWindowCut<<cut>>rmenu_check_cutCopy<<copy>>rmenu_check_copyPaste	<<paste>>rmenu_check_pasteNGo to file/line<<goto-file-line>>c             G   s0   t j| f|  | jjd| j | jjd d S )Nz<<goto-file-line>>z<<toggle-code-context>>)r   __init__textZbindgoto_file_lineZunbind)selfargsr   r   r
   r,   M   s    zOutputWindow.__init__c             C   s   dS )NFr   )r/   r   r   r   r
   ispythonsourceS   s    zOutputWindow.ispythonsourcec             C   s   dS )NZOutputr   )r/   r   r   r
   short_titleW   s    zOutputWindow.short_titlec             C   s   | j  rdS dS )Nyesno)Z	get_saved)r/   r   r   r
   	maybesave[   s    zOutputWindow.maybesaveinsertc             C   sF   t |tr|jtjd}| jj||| | jj| | jj  t	|S )Nreplace)

isinstancebytesdecoder   encodingr-   r6   Zseeupdatelen)r/   stagsmarkr   r   r
   write`   s    

zOutputWindow.writec             C   s   x|D ]}| j | qW d S )N)rA   )r/   linesr   r   r   r
   
writelinesw   s    
zOutputWindow.writelinesc             C   s   d S )Nr   )r/   r   r   r
   flush|   s    zOutputWindow.flushc             O   s   t j|| d S )N)r   	showerror)r/   r0   kwargsr   r   r
   rE      s    zOutputWindow.showerrorc             C   sd   | j jdd}t|}|sJ| j jdd}t|}|sJ| jdd| j d d S |\}}| jj|| d S )Nzinsert linestartzinsert lineendzinsert -1line linestartzinsert -1line lineendzNo special linezTThe line you point at doesn't look like a valid file name followed by a line number.)parent)r-   getr   rE   flistZgotofileline)r/   Zeventr   resultr   r   r   r   r
   r.      s    	
zOutputWindow.goto_file_line)r!   r"   r#   )r$   r%   r&   )r'   r(   r)   )NNN)r*   r+   N)N)__name__
__module____qualname__Zrmenu_specsr,   r1   r2   r5   rA   rC   rD   rE   r.   r   r   r   r
   r    ;   s   r    c               @   s6   e Zd ZddiddidZdd Zdd Zd	d
 ZdS )OnDemandOutputWindowZ
foregroundZbluez#007700)stdoutstderrc             C   s   || _ d | _d S )N)rI   owin)r/   rI   r   r   r
   r,      s    zOnDemandOutputWindow.__init__c             C   s"   | j s| j  | j j||| d S )N)rQ   setuprA   )r/   r>   r?   r@   r   r   r
   rA      s    zOnDemandOutputWindow.writec             C   sX   t | j | _}|j}x(| jj D ]\}}|r"|j|f| q"W |jd | jj| _d S )NZsel)	r    rI   rQ   r-   tagdefsitemsZtag_configureZ	tag_raiserA   )r/   rQ   r-   tagZcnfr   r   r
   rR      s    
zOnDemandOutputWindow.setupN)rK   rL   rM   rS   r,   rA   rR   r   r   r   r
   rN      s
   rN   __main__)mainzidlelib.idle_test.test_outwinr   F)	verbosityexit)r   Ztkinterr   Zidlelib.editorr   Zidlelibr   r   r   r   r   r    rN   rK   ZunittestrW   r   r   r   r
   <module>   s    e