mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.0.1731: characters deleted on completion
Problem: Characters deleted on completion. (Adrià Farrés) Solution: Also check the last item for the ORIGINAL_TEXT flag. (Christian Brabandt, closes #1645)
This commit is contained in:
parent
561f8a5a46
commit
e87edf3b85
14
src/edit.c
14
src/edit.c
@ -3656,7 +3656,9 @@ ins_compl_set_original_text(char_u *str)
|
|||||||
{
|
{
|
||||||
char_u *p;
|
char_u *p;
|
||||||
|
|
||||||
/* Replace the original text entry. */
|
/* 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 */
|
if (compl_first_match->cp_flags & ORIGINAL_TEXT) /* safety check */
|
||||||
{
|
{
|
||||||
p = vim_strsave(str);
|
p = vim_strsave(str);
|
||||||
@ -3666,6 +3668,16 @@ ins_compl_set_original_text(char_u *str)
|
|||||||
compl_first_match->cp_str = p;
|
compl_first_match->cp_str = p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (compl_first_match->cp_prev != NULL
|
||||||
|
&& (compl_first_match->cp_prev->cp_flags & ORIGINAL_TEXT))
|
||||||
|
{
|
||||||
|
p = vim_strsave(str);
|
||||||
|
if (p != NULL)
|
||||||
|
{
|
||||||
|
vim_free(compl_first_match->cp_prev->cp_str);
|
||||||
|
compl_first_match->cp_prev->cp_str = p;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -814,5 +814,14 @@ func Test_popup_command()
|
|||||||
call delete('Xtest')
|
call delete('Xtest')
|
||||||
endfunc
|
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
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -762,6 +762,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1731,
|
||||||
/**/
|
/**/
|
||||||
1730,
|
1730,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user