mirror of
https://github.com/neovim/neovim.git
synced 2025-09-28 22:18:33 +00:00
vim-patch:9.0.1866: undo is synced after character find (#25021)
vim-patch:9.0.1866: undo is synced after character find
Problem: Undo is synced after character find.
Solution: Set no_u_sync when calling gotchars_nop().
closes: vim/vim#13022
closes: vim/vim#13024
dccc29c228
This commit is contained in:
@@ -831,7 +831,7 @@ static void normal_get_additional_char(NormalState *s)
|
||||
// because if it's put back with vungetc() it's too late to apply
|
||||
// mapping.
|
||||
no_mapping--;
|
||||
while (lang && (s->c = vpeekc()) > 0
|
||||
while ((s->c = vpeekc()) > 0
|
||||
&& (s->c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1)) {
|
||||
s->c = plain_vgetc();
|
||||
if (!utf_iscomposing(s->c)) {
|
||||
@@ -848,7 +848,9 @@ static void normal_get_additional_char(NormalState *s)
|
||||
// but when replaying a recording the next key is already in the
|
||||
// typeahead buffer, so record a <Nop> before that to prevent the
|
||||
// vpeekc() above from applying wrong mappings when replaying.
|
||||
no_u_sync++;
|
||||
gotchars_nop();
|
||||
no_u_sync--;
|
||||
}
|
||||
}
|
||||
no_mapping--;
|
||||
|
Reference in New Issue
Block a user