]> sourceware.org Git - newlib-cygwin.git/commitdiff
Cygwin: console: Maintain ENABLE_(INSERT|QUICK_EDIT)_MODE flags.
authorMitchell Hentges <mhentges@mozilla.com>
Thu, 10 Feb 2022 15:38:08 +0000 (10:38 -0500)
committerTakashi Yano <takashi.yano@nifty.ne.jp>
Fri, 11 Feb 2022 00:07:30 +0000 (09:07 +0900)
- Currently, ENABLE_INSERT_MODE and ENABLE_QUICK_EDIT_MODE are cleared
  if cygwin is started in console. These flags will not be recovered
  even when exiting from cygwin. Also note that if ENABLE_EXTENDED_FLAGS
  is once unset, then the flag ENABLE_QUICK_EDIT_MODE it's associated
  with will no longer be preserved. Unfortunately, we're accidentally
  stepping on this in fhandler_console::set_input_mode().

  This patch solves this by carrying forward these flags in the place
  where it had been ignoring them. Since the previous behaviour of
  leaving these flags unset would essentially maintain their existing
  state, adding the carry-over of the flags now should not alter console
  behaviour.

winsup/cygwin/fhandler_console.cc

index 7a1a45bc15e5a2bc8c69ec07bf270896db5f05d9..b28dd66f56392f75df653952728849d1d6e01ad1 100644 (file)
@@ -458,16 +458,18 @@ void
 fhandler_console::set_input_mode (tty::cons_mode m, const termios *t,
                                  const handle_set_t *p)
 {
-  DWORD flags = 0, oflags;
+  DWORD oflags;
   WaitForSingleObject (p->input_mutex, mutex_timeout);
   GetConsoleMode (p->input_handle, &oflags);
+  DWORD flags = oflags
+    & (ENABLE_EXTENDED_FLAGS | ENABLE_INSERT_MODE | ENABLE_QUICK_EDIT_MODE);
   switch (m)
     {
     case tty::restore:
-      flags = ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT;
+      flags |= ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT;
       break;
     case tty::cygwin:
-      flags = ENABLE_WINDOW_INPUT;
+      flags |= ENABLE_WINDOW_INPUT;
       if (wincap.has_con_24bit_colors () && !con_is_legacy)
        flags |= ENABLE_VIRTUAL_TERMINAL_INPUT;
       else
This page took 0.03696 seconds and 5 git commands to generate.