mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 05:35:10 -07:00
vim-patch:7.4.870
Problem: May get into an invalid state when using getchar() in an
expression mapping.
Solution: Anticipate mod_mask to change. (idea by Yukihiro Nakadaira)
2455c4ede8
This commit is contained in:
parent
44024f2c65
commit
5b263ac6ad
@ -1380,13 +1380,15 @@ int vgetc(void)
|
|||||||
} else {
|
} else {
|
||||||
mod_mask = 0x0;
|
mod_mask = 0x0;
|
||||||
last_recorded_len = 0;
|
last_recorded_len = 0;
|
||||||
for (;; ) { /* this is done twice if there are modifiers */
|
for (;; ) { // this is done twice if there are modifiers
|
||||||
if (mod_mask) { /* no mapping after modifier has been read */
|
bool did_inc = false;
|
||||||
|
if (mod_mask) { // no mapping after modifier has been read
|
||||||
++no_mapping;
|
++no_mapping;
|
||||||
++allow_keys;
|
++allow_keys;
|
||||||
|
did_inc = true; // mod_mask may change value
|
||||||
}
|
}
|
||||||
c = vgetorpeek(TRUE);
|
c = vgetorpeek(true);
|
||||||
if (mod_mask) {
|
if (did_inc) {
|
||||||
--no_mapping;
|
--no_mapping;
|
||||||
--allow_keys;
|
--allow_keys;
|
||||||
}
|
}
|
||||||
|
@ -420,7 +420,7 @@ static int included_patches[] = {
|
|||||||
// 873 NA
|
// 873 NA
|
||||||
// 872 NA
|
// 872 NA
|
||||||
// 871,
|
// 871,
|
||||||
// 870,
|
870,
|
||||||
// 869 NA
|
// 869 NA
|
||||||
868,
|
868,
|
||||||
// 867 NA
|
// 867 NA
|
||||||
|
Loading…
Reference in New Issue
Block a user