mirror of
https://github.com/neovim/neovim.git
synced 2025-09-27 05:28:33 +00:00
getchar: Handle incomplete <Paste> in typeahead buffer #10311
<Paste> is a 3-byte sequence and the beginning one or two bytes can appear at the very end of the typeahead buffer. When this happens, we were exiting from `vgetorpeek()` instead of reading more characters to see the complete sequence. I think this should fix #7994 -- at least partially. Before this change, when I paste exactly 64 characters into a freshly booted instance, I get what I pasted plus the literal text "<Paste>" at the end. Nvim also stays in nopaste mode. The attached test case fails in this manner without the code change. Fix #7994
This commit is contained in:
@@ -1936,7 +1936,8 @@ static int vgetorpeek(int advance)
|
||||
}
|
||||
|
||||
if ((mp == NULL || max_mlen >= mp_match_len)
|
||||
&& keylen != KEYLEN_PART_MAP) {
|
||||
&& keylen != KEYLEN_PART_MAP
|
||||
&& !(keylen == KEYLEN_PART_KEY && c1 == ui_toggle[0])) {
|
||||
// No matching mapping found or found a non-matching mapping that
|
||||
// matches at least what the matching mapping matched
|
||||
keylen = 0;
|
||||
|
Reference in New Issue
Block a user