summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2012-01-20 14:32:27 +0100
committerBram Moolenaar <Bram@vim.org>2012-01-20 14:32:27 +0100
commit6d6cec83750a4158044a25696e8ae69eda1c3798 (patch)
treea4b76810c0e16970959d8decc87db3ef949122d8
parent73633f84d6242936b3066ed29f332f682aa584f9 (diff)
downloadvim-git-7.3.404.tar.gz
updated for version 7.3.404v7.3.404
Problem: When a complete function uses refresh "always" redo will not work properly. Solution: Do not reset compl_leader when compl_opt_refresh_always is set. (Yasuhiro Matsumoto)
-rw-r--r--src/edit.c19
-rw-r--r--src/version.c2
2 files changed, 17 insertions, 4 deletions
diff --git a/src/edit.c b/src/edit.c
index 4289ff5cd..08b555ba2 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -3465,11 +3465,17 @@ ins_compl_addleader(c)
if (ins_compl_need_restart())
ins_compl_restart();
- vim_free(compl_leader);
- compl_leader = vim_strnsave(ml_get_curline() + compl_col,
+ /* When 'always' is set, don't reset compl_leader. While completing,
+ * cursor don't point original position, changing compl_leader would
+ * break redo. */
+ if (!compl_opt_refresh_always)
+ {
+ vim_free(compl_leader);
+ compl_leader = vim_strnsave(ml_get_curline() + compl_col,
(int)(curwin->w_cursor.col - compl_col));
- if (compl_leader != NULL)
- ins_compl_new_leader();
+ if (compl_leader != NULL)
+ ins_compl_new_leader();
+ }
}
/*
@@ -4554,6 +4560,11 @@ ins_compl_next(allow_get_expansion, count, insert_match)
int found_end = FALSE;
int advance;
+ /* When user complete function return -1 for findstart which is next
+ * time of 'always', compl_shown_match become NULL. */
+ if (compl_shown_match == NULL)
+ return -1;
+
if (compl_leader != NULL
&& (compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0)
{
diff --git a/src/version.c b/src/version.c
index 7fc230282..e2a2fa21d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 404,
+/**/
403,
/**/
402,