diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-02-17 12:44:09 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-02-17 12:44:09 +0100 |
commit | be20f9fa5da001258a40a5f01e38befac4ebfe80 (patch) | |
tree | 9f53ee0c4b840a970d62f472f4e4c5e548135099 | |
parent | eaa330e8e913823f1514bc419f23b885d6028cb9 (diff) | |
download | vim-git-be20f9fa5da001258a40a5f01e38befac4ebfe80.tar.gz |
updated for version 7.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.c | 11 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/eval.c b/src/eval.c index d468403a0..508a26c1f 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 9b1707007..d2afbf500 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, |