aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-29 18:12:28 +0100
committereunhhu <[email protected]>2026-09-29 18:12:28 +0100
commit461714a01549841746b721d38441df21f74a4077 (patch)
tree1260c5ddc04d841474667e7c0d46da236946647e /docs
parentc919b5f81ad6cad55935fa7a22bfda9539dd584f (diff)
downloadvega-461714a01549841746b721d38441df21f74a4077.tar.gz
vega-461714a01549841746b721d38441df21f74a4077.zip
Keep a key cut across the terminal's reads until it comes whole
handle_input found escape sequences only whole within one read, so an arrow whose ESC [ came in one read and its A in the next was Escape, [ and A (Pure's review 004, F5); a UTF-8 character cut the same way went in pieces. A read's bytes are not the terminal's keys: now an escape sequence, a mouse report or a character cut short waits for the next read. An escape alone that nothing follows within 100 ms (vim's ttimeoutlen) is the Escape key; the rest of a key already begun waits up to a second. check.py's interactive runs a third session with every key coming a byte at a time, 50 ms apart, and the arrow's A 150 ms after its ESC [: the focus moves, as when keys come whole; Vega before this marks the wrong task done.
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions