Sindbad~EG File Manager
a
��gM � @ s� d Z ddlZddlmZ ddlmZ g d�Zdadd� Zdd � Z G d
d� de�Z
G dd
� d
�Zedkr�ddl
mZ edddd� dS )z0Editor window that can serve as an output file.
� N)�
messagebox)�EditorWindow)zfile "([^"]*)", 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 �adS )z?Compile the patterns for matching to file name and line number.c S s g | ]}t �|t j��qS � )�re�compile�
IGNORECASE)�.0�patr r �*/usr/local/lib/python3.9/idlelib/outwin.py�
<listcomp> s �z!compile_progs.<locals>.<listcomp>N)�file_line_pats�file_line_progsr r r r
�
compile_progs s �r c C s� t s
t� t D ]V}|�| �}|r|�dd�\}}zt|d�}|�� W qjW q tyb Y qY q0 qdS z|t|�fW S ty� Y dS 0 dS )a- Extract file name and line number from line of text.
Check if line of text contains one of the file/line patterns.
If it does and if the file and line are valid, return
a tuple of the file name and line number. If it doesn't match
or if the file or line is invalid, return None.
� � �rN) r
r �search�group�open�close�OSError�int� TypeError)�line�prog�match�filename�lineno�fr r r
�file_line_helper s"