- The commit fca4cda7a420d7b15ac217d008527e029d05758e broke Win7 compatibility. This patch fixes the issue. --- winsup/cygwin/fhandler_console.cc | 10 +++++----- winsup/cygwin/select.cc | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index 709b8255d..75143f27a 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -499,8 +499,11 @@ fhandler_console::process_input_message (void) termios *ti = &(get_ttyp ()->ti); - /* Per MSDN, max size of buffer required is below 64K. */ -#define INREC_SIZE (65536 / sizeof (INPUT_RECORD)) + /* Per MSDN, max size of buffer required is below 64K. */ + /* (65536 / sizeof (INPUT_RECORD)) is 3276, however, + ERROR_NOT_ENOUGH_MEMORY occurs in win7 if this value + is used. */ +#define INREC_SIZE 2048 fhandler_console::input_states stat = input_processing; DWORD total_read, i; @@ -1165,9 +1168,6 @@ fhandler_console::ioctl (unsigned int cmd, void *arg) return -1; case FIONREAD: { - /* Per MSDN, max size of buffer required is below 64K. */ -#define INREC_SIZE (65536 / sizeof (INPUT_RECORD)) - DWORD n; int ret = 0; INPUT_RECORD inp[INREC_SIZE]; diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc index ed8c98d1c..8fdce06a4 100644 --- a/winsup/cygwin/select.cc +++ b/winsup/cygwin/select.cc @@ -1209,7 +1209,7 @@ peek_pty_slave (select_record *s, bool from_select) { if (ptys->is_line_input ()) { -#define INREC_SIZE (65536 / sizeof (INPUT_RECORD)) +#define INREC_SIZE 2048 INPUT_RECORD inp[INREC_SIZE]; DWORD n; PeekConsoleInput (ptys->get_handle (), inp, INREC_SIZE, &n); -- 2.21.0