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)
diff --git a/src/userfunc.c b/src/userfunc.c
index fc2216d..859e6eb 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -1408,6 +1408,7 @@
else
{
int did_save_redo = FALSE;
+ save_redo_T save_redo;
/*
* Call the user function.
@@ -1419,7 +1420,7 @@
if (!ins_compl_active())
#endif
{
- saveRedobuff();
+ saveRedobuff(&save_redo);
did_save_redo = TRUE;
}
++fp->uf_calls;
@@ -1431,7 +1432,7 @@
* now. */
func_clear_free(fp, FALSE);
if (did_save_redo)
- restoreRedobuff();
+ restoreRedobuff(&save_redo);
restore_search_patterns();
error = ERROR_NONE;
}