add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc�cs��dZddlZddlZd�ZGd�d�Zedkr)d�Zeje�Ze	de
e��dSdS)	z:Simple textbox editing widget with Emacs-like keybindings.�Ncs��|j|dz|tj||z
dz
�|j||dztj||z
dz
�|j||dztj||z
dz
�|j|dz|tj||z
dz
�|j||tj�|j||tj�|j||tj�|j||tj�dS)z^Draw a rectangle with corners at the provided upper-left
    and lower-right coordinates.
    �N)
Zvline�cursesZ	ACS_VLINEZhlineZ	ACS_HLINE�addchZACS_ULCORNERZACS_URCORNERZACS_LRCORNERZACS_LLCORNER)�win�uly�ulxZlryZlrx�     �'/usr/lib64/python3.12/curses/textpad.py�	rectangler	s
���I�I�c�!�e�S�&�*�*�C�#�I��M�:�:��I�I�c�3�q�5�&�*�*�C�#�I��M�:�:��I�I�c�3�q�5�&�*�*�C�#�I��M�:�:��I�I�c�!�e�S�&�*�*�C�#�I��M�:�:��I�I�c�3��+�+�,�,��I�I�c�3��+�+�,�,��I�I�c�3��+�+�,�,��I�I�c�3��+�+�,�,�,�,�cs@�eZdZdZdd�Zd�Zd�Zd�Zd�Zd�Z	dd
�Z
d	S)
�TextboxadEditing widget using the interior of a window object.
     Supports the following Emacs-like key bindings:

    Ctrl-A      Go to left edge of window.
    Ctrl-B      Cursor left, wrapping to previous line if appropriate.
    Ctrl-D      Delete character under cursor.
    Ctrl-E      Go to right edge (stripspaces off) or end of line (stripspaces on).
    Ctrl-F      Cursor right, wrapping to next line when appropriate.
    Ctrl-G      Terminate, returning the window contents.
    Ctrl-H      Delete character backward.
    Ctrl-J      Terminate if the window is 1 line, otherwise insert newline.
    Ctrl-K      If line is blank, delete it, otherwise clear to end of line.
    Ctrl-L      Refresh screen.
    Ctrl-N      Cursor down; move down one line.
    Ctrl-O      Insert a blank line at cursor location.
    Ctrl-P      Cursor up; move up one line.

    Move operations do nothing if the cursor is at an edge where the movement
    is not possible.  The following synonyms are supported where possible:

    KEY_LEFT = Ctrl-B, KEY_RIGHT = Ctrl-F, KEY_UP = Ctrl-P, KEY_DOWN = Ctrl-N
    KEY_BACKSPACE = Ctrl-h
    Fcs��||_||_|j�d|_d|_|jd�dS�Nr)r�insert_mode�_update_max_yx�stripspaces�lastcmdZkeypad)�selfrr
�   r�__init__zTextbox.__init__+s@�����&���������������
�
�1�
�
�
�
r
csj�|jj�\}}|dz
|_|dz
|_dSr)rZgetmaxyx�maxy�maxx)rrrrrrzTextbox._update_max_yx3s2���X�X�&�&�(�
��d��1�H��	��1�H��	�	�	r
csJ�|j�|j}	tjj|jj||��tjjkrt|j|dz�}	|S|dkr	|S|dz
}��)zuGo to the location of the first blank on the given line,
        returning the index of the last non-blank character.Trr)rrr�asciir�inchZSPZmin)r�yZlastrr�_end_of_linezTextbox._end_of_line8s���	
������y�y����|�|�!�!�$�(�(�-�-��4�"8�9�V�\�\�_�_�L�L��4�9�9�d�1�f�-�������������!�8�D�
r
cs��|j�|jj�\}}d}||jks||jkr�|j
r|jj
�}	|jj|�|j
r!tjj�snH|}|jj�\}}|�||f}||jkr��||jkr��|�|jj|�dSdS#tj$rY��wxYw�N)
rr�getyxrrr
rrrZerrorr�isprint�move)r�chr�xZbackyxZoldch�      r�_insert_printable_charzTextbox._insert_printable_charFs0������������!���A����$�)�)�m�m�q�4�9�9�}�}��������
�
���
������r�"�"��#�#�#�6�<�<�+?�+?��+F�+F���B��X�X�^�^�%�F�Q���~��A���!�$�)�)�m�m��q�4�9�9�}�}��$���D�H�H�M�M�6�"�"�"�"�����<�<�
�
�
���
���s�:D+�+E�Ecsj�|j�|jj�\}}||_tj
j
|�r4||jks||jkr|j|�dS|tj
jkr|jj|d�dS|tj
jtjtj
jtjfvr�|dkr!|jj||dz
�nq|dkrnj|j r4|jj|dz
|j#|dz
��n*|jj|dz
|j�|tj
jtjfvr|jj%�dS|tj
j&kr|jj%�dS|tj
j(krd|j r/|jj||j#|��dS|jj||j�dS|tj
j*tj,fvrg||jkr"|jj||dz�dS||jkr	dS|jj|dzd�dS|tj
j.krdS|tj
j0krD|jdkrdS||jkr |jj|dzd�dS|tj
j2krs|dkr3|j#|�dkr|jj5�dS|jj||�|jj7�dS|tj
j8kr|jj;�dS|tj
j<tj>fvr~||jkrl|jj|dz|�||j#|dz�kr3|jj|dz|j#|dz��dS|tj
j@kr|jjC�dS|tj
jDtjFfvrr|dkrl|jj|dz
|�||j#|dz
�kr3|jj|dz
|j#|dz
��dS)z!Process a single editing command.rr)$rrrrrrrrrr!ZSOHrZSTXZKEY_LEFTZBSZ
KEY_BACKSPACErrZdelchZEOTZENQZACKZ	KEY_RIGHTZBELZNLZVTZdeletelnZclrtoeolZFF�refreshZSOZKEY_DOWNZSIZinsertlnZDLEZKEY_UP)rrrrs    r�
do_commandzTextbox.do_command_s%������������!���A�����<�<����#�#��4�9�9�}�}��D�I�I�
�
��+�+�B�/�/�p�q�o�6�<�<�#�#�
#�
#��H�H�M�M�!�Q���l�q�k�F�L�L�$�$�V�_�_�f�l�l�o�o�f�FZ�FZ�[�
[�
[��1�u�u����
�
�a��1��%�%�%��a�����!�!�!����
�
�a��c�4�#4�#4�Q�q�S�#9�:�:�:����
�
�a��c�4�9�9�-�-��f�l�l�o�o�v�';�';�<�<�<������ � �V�q�U�6�<�<�#�#�
#�
#��H�H�N�N���R�q�Q�6�<�<�#�#�
#�
#��������
�
�a��!2�!2�1�!5�6�6�L�q�I���
�
�a����+�+�H�q�G�F�L�L�$�$�f�&6�&6�7�
7�
7��4�9�9�}�}����
�
�a��1��%�%�B�q�A�d�i�i����>�q�;���
�
�a��c�1�%�%�:�q�9�6�<�<�#�#�
#�
#��1�
�6�<�<�?�?�
"�
"��y�y�A�~�~��q��T�Y�Y������
�
�a��c�1�%�%�,�q�+�6�<�<�?�?�
"�
"��A�v�v�$�+�+�A�.�!�3�3����!�!�#�#�&�q�!���
�
�a��#�#����!�!�#�#��q��6�<�<�?�?�
"�
"��H�H������q��F�L�L�O�O�V�_�_�5�
5�
5��4�9�9�}�}����
�
�a��c�1�%�%��t�(�(��1��-�-�-��H�H�M�M�!�A�#�t�'8�'8��1��'=�>�>��q��6�<�<�?�?�
"�
"��H�H������q��F�L�L�$�$�f�m�m�4�
4�
4��1�u�u����
�
�a��c�1�%�%��t�(�(��1��-�-�-��H�H�M�M�!�A�#�t�'8�'8��1��'=�>�>��qr
cs�d}|j�t|jdz�D]�}|jj	|d�|j|�}|dkr
|jr�Et|jdz�D]`}|jr||krnK|ttjj|jj||���z}�b|jdks��|dz}��|S)z.Collect and return the contents of the window.Zrrz
)rZrangerrrrrrZchrrrr)rZresultrZstoprrr�gatherzTextbox.gather�s�����������t�y�y��{�#�
	'�
	'�A��H�H�M�M�!�Q����$�$�Q�'�D��q�y�y�T�-�-�-���4�9�9�Q�;�'�
O�
O���#�#�#��D����E��#�f�l�l�&8�&8������q�!�9L�&M�"N�N����y�y�1�}�}���$�����
r
Ncs��	|jj�}|r	||�}|s�*|j|�s	|j	�S|jj��i)z2Edit in the widget window and collect the results.)rZgetchr#r"r$)rZvalidaterrr�editzTextbox.edit�se��������!�B��x��X�b�\���2���?�?�2�&�&���{�{�}��
�H�H�����r
)Fr)�__name__Z
__module__Z__qualname__�__doc__rrrr!r#r$r%�r
rrrs���������.�������
���#�#�#�2?�?�?�B���"�����r
rZ__main__cs�d\}}d\}}|j|dz
|d�tj||||�}t||dz
|dz
||z||z�|j	�t|�j
�S)N)i	i)iiizUse Ctrl-G to end editing.r)ZaddstrrZnewwinr	r"rr%)ZstdscrZncolsZnlinesrrrr r�test_editboxr)�s����
��v����S��
�
�c�!�e�S�">�?�?��m�m�F�E�3��4���&�#�a�%��Q���f��c�E�k�B�B�������s�|� � �"�"r
zContents of text box:)r'rZcurses.asciir	rr&r)ZwrapperZstrZprintZreprr(r
r�<module>r*s���@�@�
�
�
�
�����-�-�-�i�i�i�i�i�i�i�V�z���#�#�#��&�.�.��
&�C�	�E�
!�4�4��9�-�-�-�-��r