summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Yano <takashi.yano@nifty.ne.jp>2019-09-19 05:49:55 +0900
committerKen Brown <kbrown@cornell.edu>2019-09-19 22:17:54 -0400
commit1a44ad03e0f723e9479d090c43444bce2798a35d (patch)
tree60544e1d922e4477f6dcc74ab50c99194c8e471b
parentbbc625da81076bf31ea77af346d368fd221c4079 (diff)
downloadcygnal-1a44ad03e0f723e9479d090c43444bce2798a35d.tar.gz
cygnal-1a44ad03e0f723e9479d090c43444bce2798a35d.tar.bz2
cygnal-1a44ad03e0f723e9479d090c43444bce2798a35d.zip
Cygwin: console: Revive Win7 compatibility.
- The commit fca4cda7a420d7b15ac217d008527e029d05758e broke Win7 compatibility. This patch fixes the issue.
-rw-r--r--winsup/cygwin/fhandler.h6
-rw-r--r--winsup/cygwin/fhandler_console.cc6
-rw-r--r--winsup/cygwin/select.cc1
3 files changed, 6 insertions, 7 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index 4efb6a4f2..d5aa57300 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -43,6 +43,12 @@ details. */
#define O_TMPFILE_FILE_ATTRS (FILE_ATTRIBUTE_TEMPORARY | FILE_ATTRIBUTE_HIDDEN)
+/* Buffer size for ReadConsoleInput() and PeekConsoleInput(). */
+/* 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
+
extern const char *windows_device_names[];
extern struct __cygwin_perfile *perfile_table;
#define __fmode (*(user_data->fmode_ptr))
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc
index 709b8255d..86c39db25 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -499,9 +499,6 @@ 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))
-
fhandler_console::input_states stat = input_processing;
DWORD total_read, i;
INPUT_RECORD input_rec[INREC_SIZE];
@@ -1165,9 +1162,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..e7014422b 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -1209,7 +1209,6 @@ peek_pty_slave (select_record *s, bool from_select)
{
if (ptys->is_line_input ())
{
-#define INREC_SIZE (65536 / sizeof (INPUT_RECORD))
INPUT_RECORD inp[INREC_SIZE];
DWORD n;
PeekConsoleInput (ptys->get_handle (), inp, INREC_SIZE, &n);