diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-05-22 19:03:17 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-05-23 06:54:12 +0800 |
commit | eae4eddc54add4cbf16131edee28acf9ab53cdbb (patch) | |
tree | 1b7ad607c1a35784267f1cf2a0a813a9236ee433 /src/nvim/eval.c | |
parent | 378615b8ee9440edb9ab7c71d847d03d52c61b2f (diff) | |
download | rneovim-eae4eddc54add4cbf16131edee28acf9ab53cdbb.tar.gz rneovim-eae4eddc54add4cbf16131edee28acf9ab53cdbb.tar.bz2 rneovim-eae4eddc54add4cbf16131edee28acf9ab53cdbb.zip |
vim-patch:8.2.4996: setbufline() may change Visual selection
Problem: setbufline() may change Visual selection. (Qiming Zhao)
Solution: Disable Visual mode when using another buffer. (closes vim/vim#10466)
https://github.com/vim/vim/commit/0ad00a7fd3e0389f565876521e395c35144d8009
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 641dcae55e..33080c145d 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -6886,6 +6886,7 @@ void set_buffer_lines(buf_T *buf, linenr_T lnum_arg, bool append, const typval_T buf_T *curbuf_save = NULL; win_T *curwin_save = NULL; const bool is_curbuf = buf == curbuf; + const bool save_VIsual_active = VIsual_active; // When using the current buffer ml_mfp will be set if needed. Useful when // setline() is used on startup. For other buffers the buffer must be @@ -6896,6 +6897,7 @@ void set_buffer_lines(buf_T *buf, linenr_T lnum_arg, bool append, const typval_T } if (!is_curbuf) { + VIsual_active = false; curbuf_save = curbuf; curwin_save = curwin; curbuf = buf; @@ -6986,6 +6988,7 @@ void set_buffer_lines(buf_T *buf, linenr_T lnum_arg, bool append, const typval_T if (!is_curbuf) { curbuf = curbuf_save; curwin = curwin_save; + VIsual_active = save_VIsual_active; } } |