Mercurial > vim
changeset 6614:03688be95994 v7.4.633
updated for version 7.4.633
Problem: After 7.4.630 the problem persists.
Solution: Also skip redo when calling a user function.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 17 Feb 2015 12:44:09 +0100 |
parents | c8834cf86599 |
children | 16cde4ab7635 |
files | src/eval.c src/version.c |
diffstat | 2 files changed, 11 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -8693,13 +8693,19 @@ call_func(funcname, len, rettv, argcount 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 /* Function was unreferenced while being used, free it * now. */ func_free(fp); - restoreRedobuff(); + if (did_save_redo) + restoreRedobuff(); restore_search_patterns(); error = ERROR_NONE; }