]> sourceware.org Git - newlib-cygwin.git/commitdiff
Cygwin: pty: Fix a bug in input transfer for GDB.
authorTakashi Yano via Cygwin-patches <cygwin-patches@cygwin.com>
Sun, 14 Feb 2021 18:47:51 +0000 (03:47 +0900)
committerCorinna Vinschen <corinna@vinschen.de>
Mon, 15 Feb 2021 12:05:56 +0000 (13:05 +0100)
- With this patch, not only NL but also CR is treated as a line end
  in the code checking if input transfer is necessary.

winsup/cygwin/fhandler_tty.cc

index f6eb3ae4df2c01bd52d1811493ea47a38f3a00db..5afede859cf8b3681d104a75de941a49b1e8f941 100644 (file)
@@ -1181,7 +1181,7 @@ fhandler_pty_slave::mask_switch_to_pcon_in (bool mask, bool xfer)
   /* In GDB, transfer input based on setpgid() does not work because
      GDB may not set terminal process group properly. Therefore,
      transfer input here if isHybrid is set. */
-  if (get_ttyp ()->switch_to_pcon_in && !!masked != mask && xfer && isHybrid)
+  if (isHybrid && !!masked != mask && xfer)
     {
       if (mask && get_ttyp ()->pcon_input_state_eq (tty::to_nat))
        {
@@ -1471,7 +1471,8 @@ wait_retry:
 out:
   termios_printf ("%d = read(%p, %lu)", totalread, ptr, len);
   len = (size_t) totalread;
-  mask_switch_to_pcon_in (false, totalread > 0 && ptr0[totalread - 1] == '\n');
+  bool saw_eol = totalread > 0 && strchr ("\r\n", ptr0[totalread -1]);
+  mask_switch_to_pcon_in (false, saw_eol);
 }
 
 int
This page took 0.034804 seconds and 5 git commands to generate.