fix(tui): end streamed paste correctly when key buffer is empty

This commit is contained in:
zeertzjq
2021-12-10 18:09:55 +08:00
parent 26eb605152
commit 40ed2b51cb
2 changed files with 44 additions and 0 deletions

View File

@@ -114,6 +114,12 @@ static void tinput_done_event(void **argv)
static void tinput_wait_enqueue(void **argv)
{
TermInput *input = argv[0];
if (rbuffer_size(input->key_buffer) == 0 && input->paste == 3) {
const String keys = { .data = "", .size = 0 };
String copy = copy_string(keys);
multiqueue_put(main_loop.events, tinput_paste_event, 3,
copy.data, copy.size, (intptr_t)input->paste);
}
RBUFFER_UNTIL_EMPTY(input->key_buffer, buf, len) {
const String keys = { .data = buf, .size = len };
if (input->paste) {