0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

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)
This commit is contained in:
Bram Moolenaar
2017-04-07 19:50:12 +02:00
parent 52604f2454
commit d4863aa99e
7 changed files with 60 additions and 34 deletions

View File

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