diff options
author | Magnus Groß <magnus.gross@rwth-aachen.de> | 2021-11-17 18:31:51 +0100 |
---|---|---|
committer | Magnus Groß <magnus.gross@rwth-aachen.de> | 2021-11-18 14:23:33 +0100 |
commit | 980c68d0362c3ca099c0facef2d08efede76aabf (patch) | |
tree | 4e72bfba16d15afbaf373103dbf5951e48f34f53 /src | |
parent | 1fb101afe4f28ada83721c4ac260de46d23504ee (diff) | |
download | rneovim-980c68d0362c3ca099c0facef2d08efede76aabf.tar.gz rneovim-980c68d0362c3ca099c0facef2d08efede76aabf.tar.bz2 rneovim-980c68d0362c3ca099c0facef2d08efede76aabf.zip |
vim-patch:8.2.3610: crash when ModeChanged triggered too early
Problem: Crash when ModeChanged triggered too early.
Solution: Trigger ModeChanged after setting VIsual.
https://github.com/vim/vim/commit/a062006b9de0b2947ab5fb376c6e67ef92a8cd69
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/normal.c | 2 | ||||
-rw-r--r-- | src/nvim/testdir/test_edit.vim | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 686eddfb14..2ef15bde9b 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -6789,7 +6789,6 @@ static void n_start_visual_mode(int c) VIsual_mode = c; VIsual_active = true; VIsual_reselect = true; - trigger_modechanged(); // Corner case: the 0 position in a tab may change when going into // virtualedit. Recalculate curwin->w_cursor to avoid bad highlighting. // @@ -6801,6 +6800,7 @@ static void n_start_visual_mode(int c) foldAdjustVisual(); + trigger_modechanged(); setmouse(); // Check for redraw after changing the state. conceal_check_cursor_line(); diff --git a/src/nvim/testdir/test_edit.vim b/src/nvim/testdir/test_edit.vim index 7a7f4cb036..37786f3ca0 100644 --- a/src/nvim/testdir/test_edit.vim +++ b/src/nvim/testdir/test_edit.vim @@ -1727,4 +1727,12 @@ func Test_recursive_ModeChanged() au! endfunc +func Test_ModeChanged_starts_visual() + " This was triggering ModeChanged before setting VIsual, causing a crash. + au! ModeChanged * norm 0u + sil! norm + + au! ModeChanged +endfunc + " vim: shiftwidth=2 sts=2 expandtab |