patch 9.0.0569: cannot easily get out when using "vim file | grep word"
Problem: Cannot easily get out when using "vim file | grep word".
Solution: Without changes let CTRL-C exit Vim. Otherwise give a message on
stderr. (closes #11209)
diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim
index 6cc62ad..7995cd2 100644
--- a/src/testdir/test_startup.vim
+++ b/src/testdir/test_startup.vim
@@ -1109,6 +1109,29 @@
call delete('Xvimout')
endfunc
+" Test quitting with CTRL-C when output is redirected.
+func Test_redirect_Ctrl_C()
+ CheckUnix
+ CheckNotGui
+ CheckRunVimInTerminal
+
+ let buf = Run_shell_in_terminal({})
+ " Wait for the shell to display a prompt
+ call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
+
+ call term_sendkeys(buf, GetVimProg() .. " | grep word\<CR>")
+ call WaitForAssert({-> assert_match("Output is not to a terminal", getline(1, 4)->join())})
+ " wait for the hard coded delay, otherwise the CTRL-C interrupts startup
+ sleep 2
+ call term_sendkeys(buf, "\<C-C>")
+ sleep 100m
+ call term_sendkeys(buf, "exit\<CR>")
+ call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
+
+ exe buf . 'bwipe!'
+ unlet g:job
+endfunc
+
" Test for the "-w scriptout" argument
func Test_w_arg()