shell bypass 403
o
_bM � @ s� d Z ddlZddlmZ ddlmZ g d�Zdadd� Zdd � Z G d
d� de�Z
G dd
� d
�ZedkrBddl
mZ edddd� dS 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 �7/usr/local/python-3.10/lib/python3.10/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 st� t D ]'}|�| �}|r.|�dd�\}}zt|d�}|�� W q1 ty- Y qw qdS z|t|�fW S tyB Y dS w )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(
�� �r c @ sh e Zd ZdZg d�ZdZdd� Zdd� Zdd � Zd
d� Z ddd�Z
dd� Zdd� Zdd� Z
ddd�ZdS )�OutputWindowz�An editor window that can serve as an output file.
Also the future base class for the Python shell window.
This class has no input facilities.
Adds binding to open a file at a line to the text widget.
))ZCutz<<cut>>Zrmenu_check_cut)ZCopyz<<copy>>Zrmenu_check_copy)ZPastez <<paste>>Zrmenu_check_paste)NNN)zGo to file/line�<<goto-file-line>>NFc G s&