File: //lib/python3/dist-packages/pexpect/__pycache__/expect.cpython-310.pyc
o
    ��!^6  �                   @   sL   d dl Z ddlmZmZ G dd� de�ZG dd� de�ZG dd	� d	e�ZdS )
�    N�   )�EOF�TIMEOUTc                   @   sT   e Zd Zddd�Zdd� Zdd� Zdd	� Zddd�Zdd
d�Zdd� Z	ddd�Z
d
S )�Expecter���c                 C   s@   || _ || _|dkr
|j}|| _d | _t|d�r|j| _d S d S )Nr   �longest_string)�spawn�searcher�searchwindowsize�lookback�hasattrr   )�selfr   r	   r
   � r   �0/usr/lib/python3/dist-packages/pexpect/expect.py�__init__   s   
�zExpecter.__init__c                 C   s  | j }| j}|t|�krt|�}|�||| j�}|dkr^|�� |_|j�||jd � � |j	�
� dt|�|j  � |_|�� |_	|j	�||jd � � ||j|j� |_
|j|_||_|S | jsd| jr�| jpi| j}|j�� |kr�|�� |_|j�|| d � � d S d S d S �Nr   )r   r	   �len�searchr
   �buffer_type�_buffer�write�end�_before�getvalue�start�before�after�match�match_indexr   �tell)r
   �window�freshlenr   r	   �index�maintainr   r   r   �	do_search   s0   
�
�zExpecter.do_searchc                 C   s�   | j }|j�� }|j�� }|}||kr[| js'|�� |_|j�� }|j�|� nN|| jk rI|�� |_|j�t	d|| j �� |j�
� }|j�|� n,|j�t	d|| j �� |j�
� }n| jrp|j�t	d|| j �� |j�
� }n|j�� }| �||�S r   )r   r   r   r   r
   r   r   r   �seek�max�readr$   )r
   r   �
before_len�buf_lenr!   r    r   r   r   �
existing_data*   s.   
�
zExpecter.existing_datac                 C   s  | j }t|�}|j�|� | js:| jr0|j�� }|j�|� |j�t	d|| j �� |j�
� }nL|j�|� |j}nBt|�| jksF|j�� s`|| j d � }|�� |_|j�|| j d � � n|j�|� |j�� }|j�t	d|| j �� |j�
� }| �
||�S r   )r   r   r   r   r
   r   r   r   r%   r&