o
     JAf                     @   sF   	 d dl mZ G dd dZedkr!d dlmZ edddd	 d
S d
S )    )idleConfc                   @   s6   e Zd Z	 dd Zdd Zdd Zdd Zd	d
 ZdS )Historyc                 C   sN   	 || _ g | _d | _d | _tddddd| _|d| j |d| j	 d S )Nmainr   cyclic   boolz<<history-previous>>z<<history-next>>)
texthistoryprefixpointerr   Z	GetOptionr   bindhistory_prevhistory_next)selfr    r   &/usr/lib/python3.10/idlelib/history.py__init__   s   zHistory.__init__c                 C      	 | j dd dS )NFreversebreakfetchr   eventr   r   r   r         zHistory.history_nextc                 C   r   )NTr   r   r   r   r   r   r   r   $   r   zHistory.history_prevc                 C   s  	 t | j}| j}| j}|d ur3|d ur3| jddds(| jdd| j| kr3d  }}| jdd |d u s;|d u rT| jdd}|rG|}n| jrMd}n| j	  d S t |}	 ||r^dnd7 }|dk si||kr| j	  | jsw|dk rwd S | jdd|kr| j
dd | jd|d	 d  }}n$| j| }|d | |krt ||kr| j
dd | jd|d	 nqY| jd | jd
dd || _|| _d S )Ninsertz!=zend-1cZiomarkTr   r   stdinZselz1.0end)lenr	   r   r
   r   ZcomparegetZmark_setr   Zbelldeleter   ZseeZ
tag_remove)r   r   Znhistr   r
   Znprefixitemr   r   r   r   )   sN   




zHistory.fetchc                 C   sV   	 |  }t|dkr#z| j| W n	 ty   Y nw | j| d | _d | _d S )N   )stripr    r	   remove
ValueErrorappendr   r
   )r   sourcer   r   r   storeZ   s   
zHistory.storeN)__name__
__module____qualname__r   r   r   r   r*   r   r   r   r   r      s    1r   __main__)r   zidlelib.idle_test.test_historyr$   F)	verbosityexitN)Zidlelib.configr   r   r+   Zunittestr   r   r   r   r   <module>   s    b