search: insert new characters at cursor, not at the end of the buffer

This commit is contained in:
Daniel Eklöf 2019-08-29 21:03:46 +02:00
parent 6003b87813
commit 10649178f8
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -312,11 +312,16 @@ search_input(struct terminal *term, uint32_t key, xkb_keysym_t sym, xkb_mod_mask
assert(term->search.len + wchars < term->search.sz);
memmove(&term->search.buf[term->search.cursor + wchars],
&term->search.buf[term->search.cursor],
(term->search.len - term->search.cursor) * sizeof(wchar_t));
memset(&ps, 0, sizeof(ps));
mbsnrtowcs(&term->search.buf[term->search.len], &src, count,
term->search.sz - term->search.len - 1, &ps);
mbsnrtowcs(&term->search.buf[term->search.cursor], &src, count,
wchars, &ps);
term->search.len += wchars;
term->search.cursor += wchars;
term->search.buf[term->search.len] = L'\0';
}