diff --git a/src/edit.c b/src/edit.c index b2b7787293..d2f058a985 100644 --- a/src/edit.c +++ b/src/edit.c @@ -5183,15 +5183,19 @@ ins_complete(c) } else if (ctrl_x_mode == CTRL_X_FILES) { - char_u *p = line + startcol; - /* Go back to just before the first filename character. */ - mb_ptr_back(line, p); - while (p > line && vim_isfilec(PTR2CHAR(p))) + if (startcol > 0) + { + char_u *p = line + startcol; + mb_ptr_back(line, p); - startcol = (int)(p - line) + 1; - if (p == line && vim_isfilec(PTR2CHAR(p))) - startcol = 0; + while (p > line && vim_isfilec(PTR2CHAR(p))) + mb_ptr_back(line, p); + if (p == line && vim_isfilec(PTR2CHAR(p))) + startcol = 0; + else + startcol = (int)(p - line) + 1; + } compl_col += startcol; compl_length = (int)curs_col - startcol; diff --git a/src/testdir/test32.in b/src/testdir/test32.in index 97e5c8b8b7..6b399fa6c6 100644 --- a/src/testdir/test32.in +++ b/src/testdir/test32.in @@ -36,6 +36,9 @@ kOM :w Xtest11.one :w Xtest11.two OIXA +:" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use +:" CTRL-X CTRL-F again to verify this doesn't cause trouble. +OXddk :se cpt=w OST :se cpt=u nohid diff --git a/src/version.c b/src/version.c index f875d013d7..ef3f9b1b6d 100644 --- a/src/version.c +++ b/src/version.c @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 27, /**/ 26, /**/