diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-09-08 20:00:48 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-09-08 20:00:48 +0200 |
commit | dd4073480011fe1cc58408a33963154fcb41673d (patch) | |
tree | 5674d007dc9b0826deb7735d762c6805bb0c7127 /src | |
parent | 95235e64d8329b8c0fbd9311d98626afe86ad911 (diff) | |
download | vim-dd4073480011fe1cc58408a33963154fcb41673d.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/edit.c | 18 | ||||
-rw-r--r-- | src/testdir/test32.in | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 16 insertions, 7 deletions
diff --git a/src/edit.c b/src/edit.c index b2b778729..d2f058a98 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 97e5c8b8b..6b399fa6c 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 f875d013d..ef3f9b1b6 100644 --- 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, |