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/normal.c b/src/normal.c
index 35f7610..be578ae 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -6793,10 +6793,33 @@
&& !VIsual_active
&& no_reason)
{
+ int out_redir = !stdout_isatty
+#ifdef FEAT_GUI
+ && !gui.in_use
+#endif
+ ;
+ // The user may accidentally do "vim file | grep word" and then
+ // CTRL-C doesn't show anything. With a changed buffer give the
+ // message on stderr. Without any changes might as well exit.
if (anyBufIsChanged())
- msg(_("Type :qa! and press <Enter> to abandon all changes and exit Vim"));
+ {
+ char *ms = _("Type :qa! and press <Enter> to abandon all changes and exit Vim");
+
+ if (out_redir)
+ mch_errmsg(ms);
+ else
+ msg(ms);
+ }
else
- msg(_("Type :qa and press <Enter> to exit Vim"));
+ {
+ if (out_redir)
+ {
+ got_int = FALSE;
+ do_cmdline_cmd((char_u *)"qa");
+ }
+ else
+ msg(_("Type :qa and press <Enter> to exit Vim"));
+ }
}
if (restart_edit != 0)