# HG changeset patch # User Bram Moolenaar # Date 1378663248 -7200 # Node ID 73cc7272de5e0173b9578f715c4794a8b3803bce # Parent dfdc81191d2e2be2f3722b185b21d2191d79c16f updated for version 7.4.027 Problem: Another valgrind error when using CTRL-X CTRL-F at the start of the line. (Dominique Pelle) Solution: Don't call mb_ptr_back() at the start of the line. Add a test. diff --git a/src/edit.c b/src/edit.c --- 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 --- 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 --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 27, +/**/ 26, /**/ 25,