diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/buffer.c | 9 | ||||
| -rw-r--r-- | src/nvim/testdir/test_statusline.vim | 9 | 
2 files changed, 10 insertions, 8 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 0248d42f58..124ae8c719 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -4001,14 +4001,7 @@ int build_stl_str_hl(win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use      case STL_VIRTCOL:      case STL_VIRTCOL_ALT: { -      // In list mode virtcol needs to be recomputed -      colnr_T virtcol = wp->w_virtcol; -      if (wp->w_p_list && wp->w_p_lcs_chars.tab1 == NUL) { -        wp->w_p_list = false; -        getvcol(wp, &wp->w_cursor, NULL, &virtcol, NULL); -        wp->w_p_list = true; -      } -      virtcol++; +      colnr_T virtcol = wp->w_virtcol + 1;        // Don't display %V if it's the same as %c.        if (opt == STL_VIRTCOL_ALT            && (virtcol == (colnr_T)(!(State & INSERT) && empty_line diff --git a/src/nvim/testdir/test_statusline.vim b/src/nvim/testdir/test_statusline.vim index a3e4dcdd25..f40c9ae097 100644 --- a/src/nvim/testdir/test_statusline.vim +++ b/src/nvim/testdir/test_statusline.vim @@ -186,7 +186,16 @@ func Test_statusline()    set virtualedit=all    norm 10|    call assert_match('^10,-10\s*$', s:get_statusline()) +  set list +  call assert_match('^10,-10\s*$', s:get_statusline())    set virtualedit& +  exe "norm A\<Tab>\<Tab>a\<Esc>" +  " In list mode a <Tab> is shown as "^I", which is 2-wide. +  call assert_match('^9,-9\s*$', s:get_statusline()) +  set list& +  " Now the second <Tab> ends at the 16th screen column. +  call assert_match('^17,-17\s*$', s:get_statusline()) +  undo    " %w: Preview window flag, text is "[Preview]".    " %W: Preview window flag, text is ",PRV".  | 
