Merge #9261 'vim-patch:8.0.1731,8.1.0038'

This commit is contained in:
Justin M. Keyes 2018-11-21 03:51:33 +01:00 committed by GitHub
commit 684c7d9228
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 2 deletions

View File

@ -3127,10 +3127,16 @@ static void ins_compl_restart(void)
*/
static void ins_compl_set_original_text(char_u *str)
{
/* Replace the original text entry. */
if (compl_first_match->cp_flags & ORIGINAL_TEXT) { /* safety check */
// Replace the original text entry.
// The ORIGINAL_TEXT flag is either at the first item or might possibly be
// at the last item for backward completion
if (compl_first_match->cp_flags & ORIGINAL_TEXT) { // safety check
xfree(compl_first_match->cp_str);
compl_first_match->cp_str = vim_strsave(str);
} else if (compl_first_match->cp_prev != NULL
&& (compl_first_match->cp_prev->cp_flags & ORIGINAL_TEXT)) {
xfree(compl_first_match->cp_prev->cp_str);
compl_first_match->cp_prev->cp_str = vim_strsave(str);
}
}

View File

@ -246,6 +246,10 @@ func! Test_popup_completion_insertmode()
iunmap <F5>
endfunc
" TODO: Fix what breaks after this line.
" - Do not use "q!", it may exit Vim if there is an error
finish
func Test_noinsert_complete()
function! s:complTest1() abort
call complete(1, ['source', 'soundfold'])
@ -571,6 +575,15 @@ func Test_completion_clear_candidate_list()
bw!
endfunc
func Test_popup_complete_backwards()
new
call setline(1, ['Post', 'Port', 'Po'])
let expected=['Post', 'Port', 'Port']
call cursor(3,2)
call feedkeys("A\<C-X>". repeat("\<C-P>", 3). "rt\<cr>", 'tx')
call assert_equal(expected, getline(1,'$'))
bwipe!
endfunc
func Test_popup_and_preview_autocommand()
" This used to crash Vim