updated for version 7.0186
diff --git a/src/getchar.c b/src/getchar.c
index c1c9bca..5da7537 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2365,7 +2365,7 @@
colnr_T col = 0, vcol;
char_u *ptr;
- if (p_smd)
+ if (p_smd && msg_silent == 0)
{
unshowmode(TRUE);
mode_deleted = TRUE;
@@ -2641,7 +2641,7 @@
* if we return an ESC to exit insert mode, the message is deleted
* if we don't return an ESC but deleted the message before, redisplay it
*/
- if (advance && p_smd && (State & INSERT))
+ if (advance && p_smd && msg_silent == 0 && (State & INSERT))
{
if (c == ESC && !mode_deleted && !no_mapping)
{
diff --git a/src/normal.c b/src/normal.c
index 310a6f0..4d105e7 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1165,6 +1165,7 @@
* Don't redraw the screen, it would remove the message.
*/
if ( ((p_smd
+ && msg_silent == 0
&& (restart_edit != 0
#ifdef FEAT_VISUAL
|| (VIsual_active
@@ -1713,7 +1714,7 @@
setmouse();
mouse_dragging = 0;
# endif
- if (p_smd)
+ if (p_smd && msg_silent == 0)
clear_cmdline = TRUE; /* unshow visual mode later */
#ifdef FEAT_CMDL_INFO
else
@@ -2947,7 +2948,8 @@
}
/* If Visual mode changed show it later. */
- if (p_smd && (VIsual_active != old_active || VIsual_mode != old_mode))
+ if (p_smd && msg_silent == 0
+ && (VIsual_active != old_active || VIsual_mode != old_mode))
redraw_cmdline = TRUE;
#endif
@@ -3113,7 +3115,7 @@
curwin->w_cursor.coladd = 0;
#endif
- if (p_smd)
+ if (p_smd && msg_silent == 0)
clear_cmdline = TRUE; /* unshow visual mode later */
#ifdef FEAT_CMDL_INFO
else
@@ -3644,7 +3646,7 @@
};
#endif
- if (!p_sc)
+ if (!p_sc || msg_silent != 0)
return FALSE;
if (showcmd_visual)
@@ -7138,7 +7140,7 @@
#ifdef FEAT_MOUSE
setmouse();
#endif
- if (p_smd)
+ if (p_smd && msg_silent == 0)
redraw_cmdline = TRUE; /* show visual mode later */
/*
* For V and ^V, we multiply the number of lines even if there
@@ -7235,7 +7237,7 @@
#ifdef FEAT_MOUSE
setmouse();
#endif
- if (p_smd)
+ if (p_smd && msg_silent == 0)
redraw_cmdline = TRUE; /* show visual mode later */
#ifdef FEAT_CLIPBOARD
/* Make sure the clipboard gets updated. Needed because start and
@@ -8280,7 +8282,7 @@
if (cap->nchar == Ctrl_N || cap->nchar == Ctrl_G)
{
clearop(cap->oap);
- if (restart_edit != 0 && p_smd)
+ if (restart_edit != 0 && p_smd && msg_silent == 0)
clear_cmdline = TRUE; /* unshow mode later */
restart_edit = 0;
#ifdef FEAT_CMDWIN