Mercurial > vim
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; }