diff options
-rw-r--r-- | src/nvim/insexpand.c | 9 | ||||
-rw-r--r-- | test/old/testdir/test_ins_complete.vim | 6 |
2 files changed, 6 insertions, 9 deletions
diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index 73b84175d7..01029ddda2 100644 --- a/src/nvim/insexpand.c +++ b/src/nvim/insexpand.c @@ -3755,15 +3755,16 @@ void ins_compl_insert(bool in_compl_func, bool move_cursor) { int compl_len = get_compl_len(); bool preinsert = ins_compl_has_preinsert(); - char *str = compl_shown_match->cp_str.data; + char *cp_str = compl_shown_match->cp_str.data; + size_t cp_str_len = compl_shown_match->cp_str.size; size_t leader_len = ins_compl_leader_len(); // Make sure we don't go over the end of the string, this can happen with // illegal bytes. - if (compl_len < (int)compl_shown_match->cp_str.size) { - ins_compl_insert_bytes(str + compl_len, -1); + if (compl_len < (int)cp_str_len) { + ins_compl_insert_bytes(cp_str + compl_len, -1); if (preinsert && move_cursor) { - curwin->w_cursor.col -= (colnr_T)(strlen(str) - leader_len); + curwin->w_cursor.col -= (colnr_T)(cp_str_len - leader_len); } } compl_used_match = !(match_at_original_text(compl_shown_match) || preinsert); diff --git a/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim index 969d5012f4..64a0ee3124 100644 --- a/test/old/testdir/test_ins_complete.vim +++ b/test/old/testdir/test_ins_complete.vim @@ -2928,7 +2928,6 @@ func Test_complete_info_matches() call assert_false(has_key(g:compl_info, 'matches')) bw! - bw! unlet g:what delfunc ShownInfo set cot& @@ -2959,7 +2958,6 @@ func Test_complete_info_completed() call assert_equal({}, g:compl_info) bw! - bw! delfunc ShownInfo set cot& endfunc @@ -3021,7 +3019,7 @@ function Test_completeopt_preinsert() call assert_equal("hello fobar wo", getline('.')) call feedkeys("\<C-E>\<ESC>", 'tx') - " confrim + " confirm call feedkeys("S\<C-X>\<C-O>f\<C-Y>", 'tx') call assert_equal("fobar", getline('.')) call assert_equal(5, col('.')) @@ -3074,11 +3072,9 @@ function Test_completeopt_preinsert() call assert_equal(5, col('.')) bw! - bw! set cot& set omnifunc& delfunc Omni_test - autocmd! CompleteChanged endfunc " vim: shiftwidth=2 sts=2 expandtab nofoldenable |