4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-02 12:30:24 +08:00

Cygwin: console: Add support for FLUSHO and Ctrl-O.

- With this patch, FLUSHO and Ctrl-O (VDISCARD) get working.
This commit is contained in:
Takashi Yano via Cygwin-patches 2021-02-19 17:44:02 +09:00 committed by Ken Brown
parent e1d32fc075
commit 09deb966bb

View File

@ -259,6 +259,7 @@ fhandler_console::cons_master_thread (handle_set_t *p, tty *ttyp)
{
ttyp->kill_pgrp (sig);
ttyp->output_stopped = false;
ti.c_lflag &= ~FLUSHO;
/* Discard type ahead input */
goto skip_writeback;
}
@ -286,6 +287,13 @@ fhandler_console::cons_master_thread (handle_set_t *p, tty *ttyp)
&& c && i >= output_stopped_at)
goto restart_output;
}
if ((ti.c_lflag & ICANON) && (ti.c_lflag & IEXTEN)
&& CCEQ (ti.c_cc[VDISCARD], c))
{
if (input_rec[i].Event.KeyEvent.bKeyDown)
ti.c_lflag ^= FLUSHO;
processed = true;
}
break;
case WINDOW_BUFFER_SIZE_EVENT:
SHORT y = con.dwWinSize.Y;
@ -3111,6 +3119,9 @@ fhandler_console::write (const void *vsrc, size_t len)
if (bg <= bg_eof)
return (ssize_t) bg;
if (get_ttyp ()->ti.c_lflag & FLUSHO)
return len; /* Discard write data */
if (get_ttyp ()->output_stopped && is_nonblocking ())
{
set_errno (EAGAIN);