0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

updated for version 7.3.385

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.
This commit is contained in:
Bram Moolenaar
2011-12-23 14:54:04 +01:00
parent bbd9fd7353
commit 637606413f
2 changed files with 8 additions and 0 deletions

View File

@@ -4510,6 +4510,8 @@ eval_map_expr(str, c)
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. */
@@ -4533,12 +4535,16 @@ eval_map_expr(str, c)
#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);

View File

@@ -714,6 +714,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
385,
/**/
384,
/**/