updated for version 7.4.047
Problem:    When using input() in a function invoked by a mapping it doesn't
            work.
Solution:   Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto)
diff --git a/src/eval.c b/src/eval.c
index 68f80fc..c3ac467 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -13054,9 +13054,18 @@
 	}
 
 	if (defstr != NULL)
+	{
+# ifdef FEAT_EX_EXTRA
+	    int save_ex_normal_busy = ex_normal_busy;
+	    ex_normal_busy = 0;
+# endif
 	    rettv->vval.v_string =
 		getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
 				  xp_type, xp_arg);
+# ifdef FEAT_EX_EXTRA
+	    ex_normal_busy = save_ex_normal_busy;
+# endif
+	}
 	if (inputdialog && rettv->vval.v_string == NULL
 		&& argvars[1].v_type != VAR_UNKNOWN
 		&& argvars[2].v_type != VAR_UNKNOWN)
diff --git a/src/version.c b/src/version.c
index c43ae93..6b54397 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    47,
+/**/
     46,
 /**/
     45,