patch 8.1.1077: reg_executing() is reset by calling input()

Problem:    reg_executing() is reset by calling input().
Solution:   Implement a more generic way to save and restore reg_executing.
            (Ozaki Kiichi, closes #4192)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index f30d933..b253e9b 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -1699,6 +1699,7 @@
     exarg_T		ea;			/* Ex command arguments */
     int			save_msg_scroll = msg_scroll;
     cmdmod_T		save_cmdmod;
+    int			save_reg_executing = reg_executing;
     int			ni;			/* set when Not Implemented */
     char_u		*cmd;
 
@@ -2579,6 +2580,7 @@
 
     free_cmdmod();
     cmdmod = save_cmdmod;
+    reg_executing = save_reg_executing;
 
     if (ea.save_msg_silent != -1)
     {