diff options
author | Thomas Wolff <towo@towo.net> | 2016-03-16 10:25:16 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2016-03-16 10:25:34 +0100 |
commit | 734656818aa571c8f0d8d3e73e391c8ae26d79f1 (patch) | |
tree | ff21e4c2ddb995fbe187304f9962396f16ee6e7d /winsup/cygwin/fhandler.h | |
parent | e8e379ff1d8c7a018f327f89ff3528213920f56f (diff) | |
download | cygnal-734656818aa571c8f0d8d3e73e391c8ae26d79f1.tar.gz cygnal-734656818aa571c8f0d8d3e73e391c8ae26d79f1.tar.bz2 cygnal-734656818aa571c8f0d8d3e73e391c8ae26d79f1.zip |
Make requested console reports work
cf https://cygwin.com/ml/cygwin-patches/2012-q3/msg00019.html
This enables the following ESC sequences:
ESC[c sends primary device attributes
ESC[>c sends secondary device attributes
ESC[6n sends cursor position report
* fhandler.h (class dev_console): Add console read-ahead buffer.
(class fhandler_console): Add peek function for it (for select).
* fhandler_console.cc (fhandler_console::setup): Init buffer.
(fhandler_console::read): Check console read-aheader buffer.
(fhandler_console::char_command): Put responses to terminal
requests (device status and cursor position reports) into
common console buffer (shared between CONOUT/CONIN)
instead of fhandler buffer (separated).
* select.cc (peek_console): Check console read-ahead buffer.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index 134fd716b..1c1862b59 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -1352,6 +1352,8 @@ class dev_console bool ext_mouse_mode15; bool use_focus; bool raw_win32_keyboard_mode; + char cons_rabuf[40]; // cannot get longer than char buf[40] in char_command + char *cons_rapoi; inline UINT get_console_cp (); DWORD con_to_str (char *d, int dlen, WCHAR w); @@ -1449,6 +1451,10 @@ private: int init (HANDLE, DWORD, mode_t); bool mouse_aware (MOUSE_EVENT_RECORD& mouse_event); bool focus_aware () {return shared_console_info->con.use_focus;} + bool get_cons_readahead_valid () + { + return shared_console_info->con.cons_rapoi != NULL; + } select_record *select_read (select_stuff *); select_record *select_write (select_stuff *); |