Skip to content

Commit

Permalink
patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedi…
Browse files Browse the repository at this point in the history
…t' set

Problem:    CTRL-G j in Insert mode is incorrect when 'virtualedit' is set.
Solution:   Take coladd into account. (Christian Brabandt, closes #2743)
  • Loading branch information
brammool committed Apr 25, 2018
1 parent 856905b commit db0eede
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/charset.c
Original file line number Diff line number Diff line change
Expand Up @@ -1417,7 +1417,12 @@ getvcol_nolist(pos_T *posp)
colnr_T vcol;

curwin->w_p_list = FALSE;
getvcol(curwin, posp, NULL, &vcol, NULL);
#ifdef FEAT_VIRTUALEDIT
if (posp->coladd)
getvvcol(curwin, posp, NULL, &vcol, NULL);
else
#endif
getvcol(curwin, posp, NULL, &vcol, NULL);
curwin->w_p_list = list_save;
return vcol;
}
Expand Down
18 changes: 18 additions & 0 deletions src/testdir/test_virtualedit.vim
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,24 @@ func Test_paste_end_of_line()
exe "normal! 2G$lllA\<C-O>:normal! \"agP\r"
call assert_equal('123456', getline(2))

bwipe!
set virtualedit=
endfunc

func Test_edit_CTRL_G()
new
set virtualedit=insert
call setline(1, ['123', '1', '12'])
exe "normal! ggA\<c-g>jx\<c-g>jx"
call assert_equal(['123', '1 x', '12 x'], getline(1,'$'))

set virtualedit=all
%d_
call setline(1, ['1', '12'])
exe "normal! ggllix\<c-g>jx"
call assert_equal(['1 x', '12x'], getline(1,'$'))


bwipe!
set virtualedit=
endfunc
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -761,6 +761,8 @@ static char *(features[]) =

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

0 comments on commit db0eede

Please sign in to comment.