summaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-11-30 15:05:22 +0100
committerBram Moolenaar <Bram@vim.org>2019-11-30 15:05:22 +0100
commitdee50a518007b3a59f54b8ad018b6a83993593e7 (patch)
tree33c91c65505b6efc3c100a995a9774cdeda0983a /src/buffer.c
parent7257073043252c2e01c8e168e6842a1121797243 (diff)
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'v8.1.2363
Problem: ml_get error when accessing Visual area in 'statusline'. Solution: Disable Visual mode when using another window. (closes #5278)
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/buffer.c b/src/buffer.c
index cba84c629a..3b50c89379 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -3979,6 +3979,7 @@ build_stl_str_hl(
#ifdef FEAT_EVAL
win_T *save_curwin;
buf_T *save_curbuf;
+ int save_VIsual_active;
#endif
int empty_line;
colnr_T virtcol;
@@ -4368,13 +4369,18 @@ build_stl_str_hl(
save_curbuf = curbuf;
save_curwin = curwin;
+ save_VIsual_active = VIsual_active;
curwin = wp;
curbuf = wp->w_buffer;
+ // Visual mode is only valid in the current window.
+ if (curwin != save_curwin)
+ VIsual_active = FALSE;
str = eval_to_string_safe(p, &t, use_sandbox);
curwin = save_curwin;
curbuf = save_curbuf;
+ VIsual_active = save_VIsual_active;
do_unlet((char_u *)"g:actual_curbuf", TRUE);
do_unlet((char_u *)"g:actual_curwin", TRUE);