Problem: When using an expression mapping on the command line the cursor
ends up in the wrong place. (Yasuhiro Matsumoto)
Solution: Save and restore msg_col and msg_row when evaluating the
expression.
char_u *expr;
char_u *save_cmd;
pos_T save_cursor;
+ int save_msg_col;
+ int save_msg_row;
/* Remove escaping of CSI, because "str" is in a format to be used as
* typeahead. */
#endif
set_vim_var_char(c); /* set v:char to the typed character */
save_cursor = curwin->w_cursor;
+ save_msg_col = msg_col;
+ save_msg_row = msg_row;
p = eval_to_string(expr, NULL, FALSE);
--textlock;
#ifdef FEAT_EX_EXTRA
--ex_normal_lock;
#endif
curwin->w_cursor = save_cursor;
+ msg_col = save_msg_col;
+ msg_row = save_msg_row;
restore_cmdline_alloc(save_cmd);
vim_free(expr);
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 385,
/**/
384,
/**/