vim-patch:8.1.2363: ml_get error when accessing Visual area in 'statusline'

Problem:    ml_get error when accessing Visual area in 'statusline'.
Solution:   Disable Visual mode when using another window. (closes vim/vim#5278)
dee50a5180
This commit is contained in:
Jan Edmund Lazo
2019-11-30 15:29:01 -05:00
parent 6c6afbcddd
commit 5b60023a8c
2 changed files with 28 additions and 0 deletions

View File

@@ -3801,14 +3801,20 @@ int build_stl_str_hl(
buf_T *const save_curbuf = curbuf;
win_T *const save_curwin = curwin;
const int 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;
}
// Note: The result stored in `t` is unused.
str = eval_to_string_safe(out_p, &t, use_sandbox);
curwin = save_curwin;
curbuf = save_curbuf;
VIsual_active = save_VIsual_active;
// Remove the variable we just stored
do_unlet(S_LEN("g:actual_curbuf"), true);