Permalink
Browse files

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.
  • Loading branch information...
brammool committed Aug 13, 2017
1 parent 304b64c commit 2bb7b6b0e477612cc098cba27cc63ec3d19a2527
Showing with 11 additions and 0 deletions.
  1. +4 −0 src/evalfunc.c
  2. +5 −0 src/testdir/test_terminal.vim
  3. +2 −0 src/version.c
View
@@ -7849,6 +7849,10 @@ f_mode(typval_T *argvars, typval_T *rettv)
buf[0] = 'x';
buf[1] = '!';
}
#ifdef FEAT_TERMINAL
else if (term_use_loop())
buf[0] = 't';
#endif
else if (VIsual_active)
{
if (VIsual_select)
@@ -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
View
@@ -769,6 +769,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
936,
/**/
935,
/**/

0 comments on commit 2bb7b6b

Please sign in to comment.