changeset 14129:cb731d098241 v8.1.0082

patch 8.1.0082: in terminal window, typing : at more prompt, inserts ':' commit https://github.com/vim/vim/commit/1d4754f96fa5bff1c349cdb71560c55675f50d03 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jun 19 17:49:24 2018 +0200 patch 8.1.0082: in terminal window, typing : at more prompt, inserts ':' Problem: In terminal window, typing : at more prompt, inserts ':' instead of starting another Ex command. Solution: Add skip_term_loop and set it when putting ':' in the typeahead buffer.
author Christian Brabandt <cb@256bit.org>
date Tue, 19 Jun 2018 18:00:07 +0200
parents 09afa19020db
children 92b622f22745
files src/globals.h src/main.c src/message.c src/version.c
diffstat 4 files changed, 21 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/globals.h
+++ b/src/globals.h
@@ -371,6 +371,11 @@ EXTERN int	highlight_stltermnc[9];		/* O
 #  endif
 # endif
 #endif
+#ifdef FEAT_TERMINAL
+		// When TRUE skip calling terminal_loop() once.  Used when
+		// typing ':' at the more prompt.
+EXTERN int	skip_term_loop INIT(= FALSE);
+#endif
 #ifdef FEAT_GUI
 EXTERN char_u	*use_gvimrc INIT(= NULL);	/* "-U" cmdline argument */
 #endif
--- a/src/main.c
+++ b/src/main.c
@@ -1339,7 +1339,8 @@ main_loop(
 #ifdef FEAT_TERMINAL
 	    if (term_use_loop()
 		    && oa.op_type == OP_NOP && oa.regname == NUL
-		    && !VIsual_active)
+		    && !VIsual_active
+		    && !skip_term_loop)
 	    {
 		/* If terminal_loop() returns OK we got a key that is handled
 		 * in Normal model.  With FAIL we first need to position the
@@ -1349,7 +1350,12 @@ main_loop(
 	    }
 	    else
 #endif
+	    {
+#ifdef FEAT_TERMINAL
+		skip_term_loop = FALSE;
+#endif
 		normal_cmd(&oa, TRUE);
+	    }
 	}
     }
 }
@@ -3320,7 +3326,7 @@ usage(void)
     main_msg(_("-dev <device>\t\tUse <device> for I/O"));
 #endif
 #ifdef FEAT_ARABIC
-    main_msg(_("-A\t\t\tstart in Arabic mode"));
+    main_msg(_("-A\t\t\tStart in Arabic mode"));
 #endif
 #ifdef FEAT_RIGHTLEFT
     main_msg(_("-H\t\t\tStart in Hebrew mode"));
--- a/src/message.c
+++ b/src/message.c
@@ -1219,6 +1219,9 @@ wait_return(int redraw)
 	    cmdline_row = msg_row;
 	skip_redraw = TRUE;	    /* skip redraw once */
 	do_redraw = FALSE;
+#ifdef FEAT_TERMINAL
+	skip_term_loop = TRUE;
+#endif
     }
 
     /*
@@ -2827,6 +2830,9 @@ do_more_prompt(int typed_char)
 		/* Since got_int is set all typeahead will be flushed, but we
 		 * want to keep this ':', remember that in a special way. */
 		typeahead_noflush(':');
+#ifdef FEAT_TERMINAL
+		skip_term_loop = TRUE;
+#endif
 		cmdline_row = Rows - 1;		/* put ':' on this line */
 		skip_redraw = TRUE;		/* skip redraw once */
 		need_wait_return = FALSE;	/* don't wait in main() */
--- 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 */
 /**/
+    82,
+/**/
     81,
 /**/
     80,