summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2015-02-17 12:44:09 +0100
committerBram Moolenaar <bram@vim.org>2015-02-17 12:44:09 +0100
commit542ce28ae107d27b61b5cbf00f813e591951d4f6 (patch)
tree61e14c34c0342a7c0609b8223a8c122c4435f827
parente2f973f6d7f02cc59fc2dd6f12b5e023dabb4dfc (diff)
downloadvim-542ce28ae107d27b61b5cbf00f813e591951d4f6.tar.gz
updated for version 7.4.633v7.4.633v7-4-633
Problem: After 7.4.630 the problem persists. Solution: Also skip redo when calling a user function.
-rw-r--r--src/eval.c11
-rw-r--r--src/version.c2
2 files changed, 11 insertions, 2 deletions
diff --git a/src/eval.c b/src/eval.c
index d468403a..508a26c1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -8693,13 +8693,19 @@ call_func(funcname, len, rettv, argcount, argvars, firstline, lastline,
error = ERROR_DICT;
else
{
+ int did_save_redo = FALSE;
+
/*
* Call the user function.
* Save and restore search patterns, script variables and
* redo buffer.
*/
save_search_patterns();
- saveRedobuff();
+ if (!ins_compl_active())
+ {
+ saveRedobuff();
+ did_save_redo = TRUE;
+ }
++fp->uf_calls;
call_user_func(fp, argcount, argvars, rettv,
firstline, lastline,
@@ -8709,7 +8715,8 @@ call_func(funcname, len, rettv, argcount, argvars, firstline, lastline,
/* Function was unreferenced while being used, free it
* now. */
func_free(fp);
- restoreRedobuff();
+ if (did_save_redo)
+ restoreRedobuff();
restore_search_patterns();
error = ERROR_NONE;
}
diff --git a/src/version.c b/src/version.c
index 9b170700..d2afbf50 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 633,
+/**/
632,
/**/
631,