* fhandler_termios.cc (fhandler_termios::line_edit): Don't do special character
handling when stopped by CTRL-S. * fhandler_tty.cc (bytes_available): Add arguments to debug_only_printf call. * sigproc.cc (proc_subproc): Simplify some if logic.
This commit is contained in:
parent
61746d6ae8
commit
aaa812cbd0
|
@ -1,3 +1,11 @@
|
||||||
|
2012-11-08 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||||
|
|
||||||
|
* fhandler_termios.cc (fhandler_termios::line_edit): Don't do special
|
||||||
|
character handling when stopped by CTRL-S.
|
||||||
|
* fhandler_tty.cc (bytes_available): Add arguments to debug_only_printf
|
||||||
|
call.
|
||||||
|
* sigproc.cc (proc_subproc): Simplify some if logic.
|
||||||
|
|
||||||
2012-11-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
|
2012-11-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
|
||||||
|
|
||||||
* include/sys/termios.h (CBRK): Define as alias of CEOL.
|
* include/sys/termios.h (CBRK): Define as alias of CEOL.
|
||||||
|
|
|
@ -239,26 +239,6 @@ fhandler_termios::line_edit (const char *rptr, int nread, termios& ti)
|
||||||
|
|
||||||
paranoid_printf ("char %0c", c);
|
paranoid_printf ("char %0c", c);
|
||||||
|
|
||||||
/* Check for special chars */
|
|
||||||
|
|
||||||
if (c == '\r')
|
|
||||||
{
|
|
||||||
if (ti.c_iflag & IGNCR)
|
|
||||||
continue;
|
|
||||||
if (ti.c_iflag & ICRNL)
|
|
||||||
{
|
|
||||||
c = '\n';
|
|
||||||
set_input_done (iscanon);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (c == '\n')
|
|
||||||
{
|
|
||||||
if (ti.c_iflag & INLCR)
|
|
||||||
c = '\r';
|
|
||||||
else
|
|
||||||
set_input_done (iscanon);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ti.c_iflag & ISTRIP)
|
if (ti.c_iflag & ISTRIP)
|
||||||
c &= 0x7f;
|
c &= 0x7f;
|
||||||
if (ti.c_lflag & ISIG)
|
if (ti.c_lflag & ISIG)
|
||||||
|
@ -298,11 +278,31 @@ fhandler_termios::line_edit (const char *rptr, int nread, termios& ti)
|
||||||
else if ((ti.c_iflag & IXANY) && tc ()->output_stopped)
|
else if ((ti.c_iflag & IXANY) && tc ()->output_stopped)
|
||||||
goto restart_output;
|
goto restart_output;
|
||||||
}
|
}
|
||||||
|
/* Check for special chars */
|
||||||
|
|
||||||
|
if (c == '\r')
|
||||||
|
{
|
||||||
|
if (ti.c_iflag & IGNCR)
|
||||||
|
continue;
|
||||||
|
if (ti.c_iflag & ICRNL)
|
||||||
|
{
|
||||||
|
c = '\n';
|
||||||
|
set_input_done (iscanon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (c == '\n')
|
||||||
|
{
|
||||||
|
if (ti.c_iflag & INLCR)
|
||||||
|
c = '\r';
|
||||||
|
else
|
||||||
|
set_input_done (iscanon);
|
||||||
|
}
|
||||||
if (iscanon && ti.c_lflag & IEXTEN && CCEQ (ti.c_cc[VDISCARD], c))
|
if (iscanon && ti.c_lflag & IEXTEN && CCEQ (ti.c_cc[VDISCARD], c))
|
||||||
{
|
{
|
||||||
ti.c_lflag ^= FLUSHO;
|
ti.c_lflag ^= FLUSHO;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!iscanon)
|
if (!iscanon)
|
||||||
/* nothing */;
|
/* nothing */;
|
||||||
else if (CCEQ (ti.c_cc[VERASE], c))
|
else if (CCEQ (ti.c_cc[VERASE], c))
|
||||||
|
|
|
@ -67,7 +67,7 @@ bytes_available (DWORD& n, HANDLE h)
|
||||||
termios_printf ("PeekNamedPipe(%p) failed, %E", h);
|
termios_printf ("PeekNamedPipe(%p) failed, %E", h);
|
||||||
n = 0;
|
n = 0;
|
||||||
}
|
}
|
||||||
debug_only_printf ("n %u, nleft %u, navail %u");
|
debug_only_printf ("n %u, nleft %u, navail %u", n, nleft, navail);
|
||||||
return succeeded;
|
return succeeded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -247,9 +247,7 @@ proc_subproc (DWORD what, DWORD val)
|
||||||
case PROC_WAIT:
|
case PROC_WAIT:
|
||||||
wval->ev = NULL; // Don't know event flag yet
|
wval->ev = NULL; // Don't know event flag yet
|
||||||
|
|
||||||
if (wval->pid == -1 || !wval->pid)
|
if (wval->pid != -1 && wval->pid && !mychild (wval->pid))
|
||||||
child = NULL; // Not looking for a specific pid
|
|
||||||
else if (!mychild (wval->pid))
|
|
||||||
goto out; // invalid pid. flag no such child
|
goto out; // invalid pid. flag no such child
|
||||||
|
|
||||||
wval->status = 0; // Don't know status yet
|
wval->status = 0; // Don't know status yet
|
||||||
|
|
Loading…
Reference in New Issue