aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-05-22 19:03:17 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-05-23 06:54:12 +0800
commiteae4eddc54add4cbf16131edee28acf9ab53cdbb (patch)
tree1b7ad607c1a35784267f1cf2a0a813a9236ee433 /src/nvim/eval.c
parent378615b8ee9440edb9ab7c71d847d03d52c61b2f (diff)
downloadrneovim-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.c3
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;
}
}