4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-09 02:29:07 +08:00

Cygwin: pty: Fix a bug in input transfer for GDB.

- With this patch, not only NL but also CR is treated as a line end
  in the code checking if input transfer is necessary.
This commit is contained in:
Takashi Yano via Cygwin-patches 2021-02-15 03:47:51 +09:00 committed by Ken Brown
parent 14bee5f122
commit 4bf48e641a

View 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 /* In GDB, transfer input based on setpgid() does not work because
GDB may not set terminal process group properly. Therefore, GDB may not set terminal process group properly. Therefore,
transfer input here if isHybrid is set. */ 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)) if (mask && get_ttyp ()->pcon_input_state_eq (tty::to_nat))
{ {
@ -1471,7 +1471,8 @@ wait_retry:
out: out:
termios_printf ("%d = read(%p, %lu)", totalread, ptr, len); termios_printf ("%d = read(%p, %lu)", totalread, ptr, len);
len = (size_t) totalread; 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 int