diff --git a/src/insexpand.c b/src/insexpand.c index 00a7b75684..3a168848fe 100644 --- a/src/insexpand.c +++ b/src/insexpand.c @@ -4012,11 +4012,8 @@ ins_compl_get_exp(pos_T *ini) st.ins_buf = curbuf; // In case the buffer was wiped out. compl_old_match = compl_curr_match; // remember the last current match - if (in_fuzzy) - st.cur_match_pos = (compl_dir_forward()) + st.cur_match_pos = (compl_dir_forward()) ? &st.last_match_pos : &st.first_match_pos; - else - st.cur_match_pos = &st.last_match_pos; // For ^N/^P loop over all the flags/windows/buffers in 'complete'. for (;;) diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim index f3f6eac23f..cf688ac6a6 100644 --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -2688,4 +2688,14 @@ func Test_complete_fuzzy_match_tie() set completeopt& endfunc +func Test_complete_backwards_default() + new + call append(1, ['foobar', 'foobaz']) + new + call feedkeys("i\", 'tx') + call assert_equal('foobaz', getline('.')) + bw! + bw! +endfunc + " vim: shiftwidth=2 sts=2 expandtab nofoldenable diff --git a/src/version.c b/src/version.c index 373cd8cb5c..6520422955 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 634, /**/ 633, /**/