Skip to content

Commit

Permalink
patch 8.0.1705: when making a vertical split the mode message isn't u…
Browse files Browse the repository at this point in the history
…pdated

Problem:    When making a vertical split the mode message isn't always
            updated, "VISUAL" remains. (Alexei Averchenko)
Solution:   Only reset clear_cmdline when filling all columns of the last
            screen line. (Tom M. closes #2611)
  • Loading branch information
brammool committed Apr 13, 2018
1 parent b8e22a0 commit 5bab555
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/screen.c
Original file line number Diff line number Diff line change
Expand Up @@ -8699,7 +8699,8 @@ screen_fill(
if (row == Rows - 1) /* overwritten the command line */
{
redraw_cmdline = TRUE;
if (c1 == ' ' && c2 == ' ')
if (start_col == 0 && end_col == Columns
&& c1 == ' ' && c2 == ' ' && attr == 0)
clear_cmdline = FALSE; /* command line has been cleared */
if (start_col == 0)
mode_displayed = FALSE; /* mode cleared or overwritten */
Expand Down
24 changes: 24 additions & 0 deletions src/testdir/test_window_cmd.vim
Original file line number Diff line number Diff line change
Expand Up @@ -483,4 +483,28 @@ func Test_access_freed_mem()
bwipe xxx
endfunc

func Test_visual_cleared_after_window_split()
new | only!
let smd_save = &showmode
set showmode
let ls_save = &laststatus
set laststatus=1
call setline(1, ['a', 'b', 'c', 'd', ''])
norm! G
exe "norm! kkvk"
redraw
exe "norm! \<C-W>v"
redraw
" check if '-- VISUAL --' disappeared from command line
let columns = range(1, &columns)
let cmdlinechars = map(columns, 'nr2char(screenchar(&lines, v:val))')
let cmdline = join(cmdlinechars, '')
let cmdline_ltrim = substitute(cmdline, '^\s*', "", "")
let mode_shown = substitute(cmdline_ltrim, '\s*$', "", "")
call assert_equal('', mode_shown)
let &showmode = smd_save
let &laststatus = ls_save
bwipe!
endfunc

" vim: shiftwidth=2 sts=2 expandtab
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -762,6 +762,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1705,
/**/
1704,
/**/
Expand Down

0 comments on commit 5bab555

Please sign in to comment.