Permalink
Browse files

patch 8.0.0669: CTRL-N at start of the buffer does not work correctly

Problem:    In Insert mode, CTRL-N at start of the buffer does not work
            correctly. (zuloloxi)
Solution:   Wrap around the start of the buffer. (Christian Brabandt)
  • Loading branch information...
brammool committed Jun 24, 2017
1 parent a1bd86e commit 24a9e348aa88a6c60ae0cdf5c4a777d8c03b08ca
Showing with 27 additions and 3 deletions.
  1. +11 −3 src/edit.c
  2. +14 −0 src/testdir/test_popup.vim
  3. +2 −0 src/version.c
View
@@ -4308,9 +4308,17 @@ ins_compl_get_exp(pos_T *ini)
{
ins_buf = curbuf;
first_match_pos = *ini;
/* So that ^N can match word immediately after cursor */
if (ctrl_x_mode == 0)
dec(&first_match_pos);
/* Move the cursor back one character so that ^N can match the
* word immediately after the cursor. */
if (ctrl_x_mode == 0 && dec(&first_match_pos) < 0)
{
/* Move the cursor to after the last character in the
* buffer, so that word at start of buffer is found
* correctly. */
first_match_pos.lnum = ins_buf->b_ml.ml_line_count;
first_match_pos.col =
(colnr_T)STRLEN(ml_get(first_match_pos.lnum));
}
last_match_pos = first_match_pos;
type = 0;
View
@@ -612,5 +612,19 @@ func Test_complete_func_mess()
set completefunc=
endfunc
func Test_complete_CTRLN_startofbuffer()
new
call setline(1, [ 'organize(cupboard, 3, 2);',
\ 'prioritize(bureau, 8, 7);',
\ 'realize(bannister, 4, 4);',
\ 'moralize(railing, 3,9);'])
let expected=['cupboard.organize(3, 2);',
\ 'bureau.prioritize(8, 7);',
\ 'bannister.realize(4, 4);',
\ 'railing.moralize(3,9);']
call feedkeys("qai\<c-n>\<c-n>.\<esc>3wdW\<cr>q3@a", 'tx')
call assert_equal(expected, getline(1,'$'))
bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab
View
@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
669,
/**/
668,
/**/

0 comments on commit 24a9e34

Please sign in to comment.