diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2024-03-09 15:44:38 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2024-03-09 15:44:38 -0700 |
commit | 376914f419eb08fdf4c1a63a77e1f035898a0f10 (patch) | |
tree | b5adf57e561d2222f1d157f5ba38f91bcd5cc572 /src/nvim/eval | |
parent | df8f1db2a0c771364865be79bf12656a40b7028b (diff) | |
parent | b08269939de5f1e696c67407e79e539af70c103f (diff) | |
download | rneovim-mix_20240309.tar.gz rneovim-mix_20240309.tar.bz2 rneovim-mix_20240309.zip |
Merge remote-tracking branch 'origin/fix_repeatcmdline' into mix_20240309mix_20240309
Diffstat (limited to 'src/nvim/eval')
-rw-r--r-- | src/nvim/eval/userfunc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/eval/userfunc.c b/src/nvim/eval/userfunc.c index fe10d56d49..d16814ed1e 100644 --- a/src/nvim/eval/userfunc.c +++ b/src/nvim/eval/userfunc.c @@ -935,6 +935,7 @@ void call_user_func(ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rett bool started_profiling = false; bool did_save_redo = false; save_redo_T save_redo; + char* saved_repeat_cmdline = NULL; // If depth of calling is getting too high, don't execute the function if (depth >= p_mfd) { @@ -947,6 +948,9 @@ void call_user_func(ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rett // Save search patterns and redo buffer. save_search_patterns(); if (!ins_compl_active()) { + if (repeat_cmdline) { + saved_repeat_cmdline = xstrdup(repeat_cmdline); + } saveRedobuff(&save_redo); did_save_redo = true; } @@ -1289,6 +1293,8 @@ void call_user_func(ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rett // restore search patterns and redo buffer if (did_save_redo) { restoreRedobuff(&save_redo); + xfree(repeat_cmdline); + repeat_cmdline = saved_repeat_cmdline; } restore_search_patterns(); } |