updated for version 7.0f04
diff --git a/src/getchar.c b/src/getchar.c
index 629ad77..7b1cf87 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2321,7 +2321,8 @@
/*
* Handle ":map <expr>": evaluate the {rhs} as an
* expression. Save and restore the typeahead so that
- * getchar() can be used.
+ * getchar() can be used. Also save and restore the
+ * command line for "normal :".
*/
if (mp->m_expr)
{
@@ -4301,8 +4302,13 @@
{
char_u *res;
char_u *p;
+ char_u *save_cmd;
+ save_cmd = save_cmdline_alloc();
+ if (save_cmd == NULL)
+ return NULL;
p = eval_to_string(str, NULL, FALSE);
+ restore_cmdline_alloc(save_cmd);
if (p == NULL)
return NULL;
res = vim_strsave_escape_csi(p);