python (3.12.0)

(root)/
lib/
python3.12/
curses/
__pycache__/
textpad.cpython-312.pyc

ˑeJdZddlZddlZdZGddZedk(r%dZejeZe	de
eyy)	z:Simple textbox editing widget with Emacs-like keybindings.Ncd|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||tjy)z^Draw a rectangle with corners at the provided upper-left
    and lower-right coordinates.
    N)
vlinecurses	ACS_VLINEhline	ACS_HLINEaddchACS_ULCORNERACS_URCORNERACS_LRCORNERACS_LLCORNER)winulyulxlrylrxs     B/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/curses/textpad.py	rectanglersIIc!eS&**C#IM:IIc3q5&**C#IM:IIc3q5&**C#IM:IIc!eS&**C#IM:IIc3++,IIc3++,IIc3++,IIc3++,c>eZdZdZd
dZdZdZdZdZdZ	dd	Z
y)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
    c~||_||_|jd|_d|_|jdyNr)rinsert_mode_update_max_yxstripspaceslastcmdkeypad)selfrrs   r__init__zTextbox.__init__+s7&

1
rcf|jj\}}|dz
|_|dz
|_yr)rgetmaxyxmaxymaxx)r r$r%s   rrzTextbox._update_max_yx3s.XX&&(
d1H	1H	rc8|j|j}	tjj|jj||tjjk7rt|j|dz}	|S|dk(r	|S|dz
}~)zuGo to the location of the first blank on the given line,
        returning the index of the last non-blank character.rr)rr%rasciirinchSPmin)r ylasts   r_end_of_linezTextbox._end_of_line8s	
yy||!!$((--4"89V\\__L499d1f-!8D
rcn|j|jj\}}d}||jks||jkr|j
r|jj
}	|jj||j
rtjjsnE|}|jj\}}|||f}||jkr||jkr||jj|yy#tj$rYwxYwN)
rrgetyxr$r%rr(r
rerrorr'isprintmove)r chr+xbackyxoldchs      r_insert_printable_charzTextbox._insert_printable_charFs!A$))mq499}


r"##6<<+?+?+FBXX^^%FQ~A!$))mq499}$DHHMM6"<<

s5DD43D4c|j|jj\}}||_tj
j
|r0||jks||jkr|j|y|tj
jk(r|jj|dy|tj
jtjtj
jtjtj
j fvr|dkDr |jj||dz
nm|dk(rng|j"r2|jj|dz
|j%|dz
n)|jj|dz
|j|tj
jtjtj
j fvr|jj'y|tj
j(k(r|jj'y|tj
j*k(r_|j"r,|jj||j%|y|jj||jy|tj
j,tj.fvr`||jkr |jj||dzy||jk(r	y|jj|dzdy|tj
j0k(ry|tj
j2k(r?|jdk(ry||jkr|jj|dzdy|tj
j4k(rk|dk(r/|j%|dk(r|jj7y|jj|||jj9y|tj
j:k(r|jj=y|tj
j>tj@fvrw||jkrg|jj|dz|||j%|dzkDr1|jj|dz|j%|dzy|tj
jBk(r|jjEy|tj
jFtjHfvrl|dkDrg|jj|dz
|||j%|dz
kDr1|jj|dz
|j%|dz
y)z!Process a single editing command.rr)%rrr0rrr'r2r$r%r8SOHr3STXKEY_LEFTBS
KEY_BACKSPACEDELrr-delchEOTENQACK	KEY_RIGHTBELNLVTdeletelnclrtoeolFFrefreshSOKEY_DOWNSIinsertlnDLEKEY_UP)r r4r+r5s    r
do_commandzTextbox.do_command_s!A<<#499}DII
++B/vu6<<##
#HHMM!QrqFLL$$V__LLOO((LL$$&&1u

a1%a!!

ac4#4#4QqS#9:

ac499-flloov';';V\\=M=MNN VU6<<##
#HHNNRQ6<<##
#

a!2!21!56LI

a+HGFLL$$f&6&67
7499}

a1%BAdii>;

ac1%:96<<##
#
6<<??
"yyA~TYY

ac1%,+6<<??
"Av$++A.!3!!#&!

a#!!#6<<??
"HHFLLOOV__5
5499}

ac1%t((1--HHMM!A#t'8'81'=>6<<??
"HHFLL$$fmm4
41u

ac1%t((1--HHMM!A#t'8'81'=>rcd}|jt|jdzD]}|jj	|d|j|}|dk(r
|jrBt|jdzD]Z}|jr||kDrnG|ttjj|jj||z}\|jdkDs|dz}|S)z.Collect and return the contents of the window.rr
)rranger$rr3r-rr%chrrr'r()r resultr+stopr5s     rgatherzTextbox.gatherstyy{#
	'AHHMM!Q$$Q'DqyT--499Q;'
O##D#fll&8&8q!9L&M"NN
Oyy1}$
	'
rNc	|jj}|r||}|s(|j|s	|j	S|jjd)z2Edit in the widget window and collect the results.)rgetchrRrKrZ)r validater4s   reditzTextbox.editsY!Bb\??2&{{}
HHr)Fr/)__name__
__module____qualname____doc__r!rr-r8rRrZr^rrrrs,.
#2BH"rr__main__cd\}}d\}}|j|dz
|dtj||||}t||dz
|dz
||z||z|j	t|j
S)N)	)zUse Ctrl-G to end editing.r)addstrrnewwinrrKrr^)stdscrncolsnlinesrrrs      rtest_editboxrpsz
vS

c!eS">?mmFE34&#a%QfcEkBs|  ""rzContents of text box:)rbrcurses.asciirrr_rpwrapperstrprintreprrcrr<module>rvsU@
-ll\z#&..
&C	
!49-r