vim-patch:8.1.0992: :normal resets reg_executing() result #11398

Problem:    A :normal command while executing a register resets the
            reg_executing() result.
Solution:   Save and restore reg_executing. (closes vim/vim#4066)
cce713ddcc
This commit is contained in:
Jan Edmund Lazo
2019-11-16 03:34:25 -05:00
committed by Justin M. Keyes
parent e3b08a0fc4
commit d79164c9f9
3 changed files with 21 additions and 12 deletions

View File

@@ -8207,6 +8207,7 @@ static void ex_normal(exarg_T *eap)
int save_insertmode = p_im;
int save_finish_op = finish_op;
long save_opcount = opcount;
const int save_reg_executing = reg_executing;
char_u *arg = NULL;
int l;
char_u *p;
@@ -8301,7 +8302,8 @@ static void ex_normal(exarg_T *eap)
p_im = save_insertmode;
finish_op = save_finish_op;
opcount = save_opcount;
msg_didout |= save_msg_didout; /* don't reset msg_didout now */
reg_executing = save_reg_executing;
msg_didout |= save_msg_didout; // don't reset msg_didout now
/* Restore the state (needed when called from a function executed for
* 'indentexpr'). Update the mouse and cursor, they may have changed. */