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;
 		}
--- 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,