summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/edit.c2
-rw-r--r--src/screen.c4
-rw-r--r--src/version.c2
-rw-r--r--src/window.c2
4 files changed, 7 insertions, 3 deletions
diff --git a/src/edit.c b/src/edit.c
index 326a382b5..3204ec31a 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -1179,7 +1179,7 @@ doESCkey:
// In a prompt window CTRL-W is used for window commands.
// Use Shift-CTRL-W to delete a word.
stuffcharReadbuff(Ctrl_W);
- restart_edit = 'i';
+ restart_edit = 'A';
nomove = TRUE;
count = 0;
goto doESCkey;
diff --git a/src/screen.c b/src/screen.c
index 2fae1805d..3dde1b7a1 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -10263,7 +10263,7 @@ showmode(void)
do_mode = ((p_smd && msg_silent == 0)
&& ((State & INSERT)
- || restart_edit
+ || restart_edit != NUL
|| VIsual_active));
if (do_mode || reg_recording != 0)
{
@@ -10370,7 +10370,7 @@ showmode(void)
#endif
MSG_PUTS_ATTR(_(" INSERT"), attr);
}
- else if (restart_edit == 'I')
+ else if (restart_edit == 'I' || restart_edit == 'A')
MSG_PUTS_ATTR(_(" (insert)"), attr);
else if (restart_edit == 'R')
MSG_PUTS_ATTR(_(" (replace)"), attr);
diff --git a/src/version.c b/src/version.c
index 9b4e028ba..8159e480c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 64,
+/**/
63,
/**/
62,
diff --git a/src/window.c b/src/window.c
index 4f4f08b67..f059b3766 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2114,6 +2114,8 @@ leaving_window(win_T *win)
// When leaving a prompt window stop Insert mode and perhaps restart
// it when entering that window again.
win->w_buffer->b_prompt_insert = restart_edit;
+ if (restart_edit != 0 && mode_displayed)
+ clear_cmdline = TRUE; /* unshow mode later */
restart_edit = NUL;
// When leaving the window (or closing the window) was done from a