changeset 12467:66fe20238c1d v8.0.1113

patch 8.0.1113: can go to Insert mode from Terminal-Normal mode commit https://github.com/vim/vim/commit/eef9adddab4c7fc7bb1c54267e76849caf565edf Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 16 15:38:04 2017 +0200 patch 8.0.1113: can go to Insert mode from Terminal-Normal mode Problem: Can go to Insert mode from Terminal-Normal mode. Solution: Prevent :startinsert and "VA" to enter Insert mode. (Yasuhiro Matsumoto, closes #2092)
author Christian Brabandt <cb@256bit.org>
date Sat, 16 Sep 2017 15:45:03 +0200
parents 2f5d2f70f891
children 59348fe5c3ec
files src/normal.c src/version.c
diffstat 2 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/normal.c
+++ b/src/normal.c
@@ -1309,8 +1309,8 @@ normal_end:
 #endif
 
 #ifdef FEAT_TERMINAL
-    /* don't go to Insert mode from Terminal-Job mode */
-    if (term_use_loop())
+    /* don't go to Insert mode if a terminal has a running job */
+    if (term_job_running(curbuf->b_term))
 	restart_edit = 0;
 #endif
 
@@ -9044,7 +9044,18 @@ nv_edit(cmdarg_T *cap)
 
     /* in Visual mode "A" and "I" are an operator */
     if (VIsual_active && (cap->cmdchar == 'A' || cap->cmdchar == 'I'))
+    {
+#ifdef FEAT_TERMINAL
+	if (term_in_normal_mode())
+	{
+	    end_visual_mode();
+	    clearop(cap->oap);
+	    term_enter_job_mode();
+	    return;
+	}
+#endif
 	v_visop(cap);
+    }
 
     /* in Visual mode and after an operator "a" and "i" are for text objects */
     else if ((cap->cmdchar == 'a' || cap->cmdchar == 'i')
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1113,
+/**/
     1112,
 /**/
     1111,