changeset 14093:a9d94f10ecef v8.1.0064

patch 8.1.0064: typing CTRL-W in a prompt buffer shows mode "-- --" commit https://github.com/vim/vim/commit/942b4541a2d8e8df8369ab70e112dbbbe0c7c0aa Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 17 16:23:34 2018 +0200 patch 8.1.0064: typing CTRL-W in a prompt buffer shows mode "-- --" Problem: Typing CTRL-W in a prompt buffer shows mode "-- --". Solution: Set restart_edit to 'A' and check for it.
author Christian Brabandt <cb@256bit.org>
date Sun, 17 Jun 2018 16:30:06 +0200
parents 5e5daac87b5d
children cc99f2e4de00
files src/edit.c src/screen.c src/version.c src/window.c
diffstat 4 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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);
--- 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,
--- 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