<!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>
B
    YI~d                 @   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 |t jqS  )recompile
IGNORECASE).0Zpatr   r   3/opt/alt/python37/lib64/python3.7/idlelib/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}|| }|r|dd\}}yt|d}|  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Zdd Zd	d
 Zdd Zdd ZdddZ	dd Z
dd Zdd ZdddZdS )OutputWindow)ZCutz<<cut>>Zrmenu_check_cut)ZCopyz<<copy>>Zrmenu_check_copy)ZPastez	<<paste>>Zrmenu_check_paste)NNN)zGo to file/linez<<goto-file-line>>NFc             G   s$   t j| f|  | jd| j d S )Nz<<goto-file-line>>)r   __init__textZbindgoto_file_line)selfargsr   r   r
   r!   O   s    zOutputWindow.__init__c             C   s   dS )NFr   )r$   r   r   r   r
   ispythonsourceT   s    zOutputWindow.ispythonsourcec             C   s   dS )NZOutputr   )r$   r   r   r
   short_titleX   s    zOutputWindow.short_titlec             C   s   |   rdS dS )NZyesno)Z	get_saved)r$   r   r   r
   	maybesave\   s    zOutputWindow.maybesaver   insertc             C   sF   t |tr|tjd}| j||| | j| | j  t	|S )Nreplace)

isinstancebytesdecoder   encodingr"   r*   Zseeupdatelen)r$   stagsmarkr   r   r
   writea   s    

zOutputWindow.writec             C   s   x|D ]}|  | qW d S )N)r5   )r$   linesr   r   r   r
   
writelinesx   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$   r%   kwargsr   r   r
   r9      s    zOutputWindow.showerrorNc             C   sd   | j dd}t|}|sJ| j dd}t|}|sJ| jdd| j d d S |\}}| 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   r9   flistZgotofileline)r$   Zeventr   resultr   r   r   r   r
   r#      s    	
zOutputWindow.goto_file_line)r   r*   )N)__name__
__module____qualname__Zrmenu_specsZallow_code_contextr!   r&   r'   r)   r5   r7   r8   r9   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)r=   owin)r$   r=   r   r   r
   r!      s    zOnDemandOutputWindow.__init__c             C   s"   | j s|   | j ||| d S )N)rE   setupr5   )r$   r2   r3   r4   r   r   r
   r5      s    zOnDemandOutputWindow.writec             C   sX   t | j | _}|j}x(| j D ]\}}|r"|j|f| q"W |d | jj| _d S )NZsel)	r    r=   rE   r"   tagdefsitemsZtag_configureZ	tag_raiser5   )r$   rE   r"   tagZcnfr   r   r
   rF      s    
zOnDemandOutputWindow.setupN)r?   r@   rA   rG   r!   r5   rF   r   r   r   r
   rB      s
   rB   __main__)mainzidlelib.idle_test.test_outwinr   F)	verbosityexit)r   Ztkinterr   Zidlelib.editorr   Zidlelibr   r   r   r   r   r    rB   r?   ZunittestrK   r   r   r   r
   <module>   s    f