aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/edit.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-11-21 03:51:33 +0100
committerGitHub <noreply@github.com>2018-11-21 03:51:33 +0100
commit684c7d9228c1707002410470ef6b981adf3c8eba (patch)
treec3d01a38eba4513621a0afee07c93a86d97410e6 /src/nvim/edit.c
parent85761dd4269bff17e7607020bbb5ed9994afca61 (diff)
parent5d22d100f2a848b692c37dc5d413939c8ef7681f (diff)
downloadrneovim-684c7d9228c1707002410470ef6b981adf3c8eba.tar.gz
rneovim-684c7d9228c1707002410470ef6b981adf3c8eba.tar.bz2
rneovim-684c7d9228c1707002410470ef6b981adf3c8eba.zip
Merge #9261 'vim-patch:8.0.1731,8.1.0038'
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r--src/nvim/edit.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index d20660bfb9..451d19b8e3 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -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);
}
}