Mercurial > vim
comparison src/buffer.c @ 18746:64eea864dff6 v8.1.2363
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Commit: https://github.com/vim/vim/commit/dee50a518007b3a59f54b8ad018b6a83993593e7
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Nov 30 15:05:22 2019 +0100
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 https://github.com/vim/vim/issues/5278)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 30 Nov 2019 15:15:04 +0100 |
parents | bbea1f108187 |
children | c469e1930456 |
comparison
equal
deleted
inserted
replaced
18745:9752ce174299 | 18746:64eea864dff6 |
---|---|
3977 char_u *t; | 3977 char_u *t; |
3978 int byteval; | 3978 int byteval; |
3979 #ifdef FEAT_EVAL | 3979 #ifdef FEAT_EVAL |
3980 win_T *save_curwin; | 3980 win_T *save_curwin; |
3981 buf_T *save_curbuf; | 3981 buf_T *save_curbuf; |
3982 int save_VIsual_active; | |
3982 #endif | 3983 #endif |
3983 int empty_line; | 3984 int empty_line; |
3984 colnr_T virtcol; | 3985 colnr_T virtcol; |
3985 long l; | 3986 long l; |
3986 long n; | 3987 long n; |
4366 vim_snprintf((char *)win_tmp, sizeof(win_tmp), "%d", curwin->w_id); | 4367 vim_snprintf((char *)win_tmp, sizeof(win_tmp), "%d", curwin->w_id); |
4367 set_internal_string_var((char_u *)"g:actual_curwin", win_tmp); | 4368 set_internal_string_var((char_u *)"g:actual_curwin", win_tmp); |
4368 | 4369 |
4369 save_curbuf = curbuf; | 4370 save_curbuf = curbuf; |
4370 save_curwin = curwin; | 4371 save_curwin = curwin; |
4372 save_VIsual_active = VIsual_active; | |
4371 curwin = wp; | 4373 curwin = wp; |
4372 curbuf = wp->w_buffer; | 4374 curbuf = wp->w_buffer; |
4375 // Visual mode is only valid in the current window. | |
4376 if (curwin != save_curwin) | |
4377 VIsual_active = FALSE; | |
4373 | 4378 |
4374 str = eval_to_string_safe(p, &t, use_sandbox); | 4379 str = eval_to_string_safe(p, &t, use_sandbox); |
4375 | 4380 |
4376 curwin = save_curwin; | 4381 curwin = save_curwin; |
4377 curbuf = save_curbuf; | 4382 curbuf = save_curbuf; |
4383 VIsual_active = save_VIsual_active; | |
4378 do_unlet((char_u *)"g:actual_curbuf", TRUE); | 4384 do_unlet((char_u *)"g:actual_curbuf", TRUE); |
4379 do_unlet((char_u *)"g:actual_curwin", TRUE); | 4385 do_unlet((char_u *)"g:actual_curwin", TRUE); |
4380 | 4386 |
4381 if (str != NULL && *str != 0) | 4387 if (str != NULL && *str != 0) |
4382 { | 4388 { |