changeset 12112:6afc7339c2ad v8.0.0936

patch 8.0.0936: mode() returns wrong value for a terminal window commit https://github.com/vim/vim/commit/2bb7b6b0e477612cc098cba27cc63ec3d19a2527 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 13 20:58:33 2017 +0200 patch 8.0.0936: mode() returns wrong value for a terminal window Problem: Mode() returns wrong value for a terminal window. Solution: Return 't' when typed keys go to a job.
author Christian Brabandt <cb@256bit.org>
date Sun, 13 Aug 2017 21:00:04 +0200
parents feca91869d87
children e058a485a027
files src/evalfunc.c src/testdir/test_terminal.vim src/version.c
diffstat 3 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -7849,6 +7849,10 @@ f_mode(typval_T *argvars, typval_T *rett
 	buf[0] = 'x';
 	buf[1] = '!';
     }
+#ifdef FEAT_TERMINAL
+    else if (term_use_loop())
+	buf[0] = 't';
+#endif
     else if (VIsual_active)
     {
 	if (VIsual_select)
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -42,8 +42,13 @@ func Test_terminal_basic()
     call assert_match("^winpty://", job_info(g:job).tty)
     call assert_match("^winpty://", term_gettty(''))
   endif
+  call assert_equal('t', mode())
+  call assert_match('%aR[^\n]*running]', execute('ls'))
+
   call Stop_shell_in_terminal(buf)
   call term_wait(buf)
+  call assert_equal('n', mode())
+  call assert_match('%aF[^\n]*finished]', execute('ls'))
 
   " closing window wipes out the terminal buffer a with finished job
   close
--- 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 */
 /**/
+    936,
+/**/
     935,
 /**/
     934,