diff src/userfunc.c @ 11325:77f3b7316d8b v8.0.0548

patch 8.0.0548: saving the redo buffer only works one time commit https://github.com/vim/vim/commit/d4863aa99e0527e9505c79cbeafc68a6832200bf Author: Bram Moolenaar <Bram@vim.org> Date: Fri Apr 7 19:50:12 2017 +0200 patch 8.0.0548: saving the redo buffer only works one time Problem: Saving the redo buffer only works one time, resulting in the "." command not working well for a function call inside another function call. (Ingo Karkat) Solution: Save the redo buffer at every user function call. (closes #1619)
author Christian Brabandt <cb@256bit.org>
date Fri, 07 Apr 2017 20:00:04 +0200
parents 4ae86195f559
children 57c452316da1
line wrap: on
line diff
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -1408,6 +1408,7 @@ call_func(
 		else
 		{
 		    int did_save_redo = FALSE;
+		    save_redo_T	save_redo;
 
 		    /*
 		     * Call the user function.
@@ -1419,7 +1420,7 @@ call_func(
 		    if (!ins_compl_active())
 #endif
 		    {
-			saveRedobuff();
+			saveRedobuff(&save_redo);
 			did_save_redo = TRUE;
 		    }
 		    ++fp->uf_calls;
@@ -1431,7 +1432,7 @@ call_func(
 			 * now. */
 			func_clear_free(fp, FALSE);
 		    if (did_save_redo)
-			restoreRedobuff();
+			restoreRedobuff(&save_redo);
 		    restore_search_patterns();
 		    error = ERROR_NONE;
 		}