Send Ctrl signals to child process correctly. We can now use CTRL+C to close programs in cmd!

svn path=/trunk/; revision=19022
This commit is contained in:
Brandon Turner 2005-11-05 22:13:59 +00:00
parent e087024bb5
commit 616d5f3ade

View file

@ -469,11 +469,12 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
NULL,
NULL,
TRUE,
CREATE_NEW_PROCESS_GROUP,
0, /* CREATE_NEW_PROCESS_GROUP */
NULL,
NULL,
&stui,
&prci))
{
if (IsConsoleProcess(prci.hProcess))
{
@ -1426,20 +1427,33 @@ ProcessInput (BOOL bFlag)
BOOL WINAPI BreakHandler (DWORD dwCtrlType)
{
static BOOL SelfGenerated = FALSE;
if ((dwCtrlType != CTRL_C_EVENT) &&
(dwCtrlType != CTRL_BREAK_EVENT))
{
return FALSE;
}
else
{
if(SelfGenerated)
{
SelfGenerated = FALSE;
return TRUE;
}
}
if (bChildProcessRunning == TRUE)
{
GenerateConsoleCtrlEvent (CTRL_C_EVENT,
dwChildProcessId);
SelfGenerated = TRUE;
GenerateConsoleCtrlEvent (dwCtrlType, 0);
return TRUE;
}
bCtrlBreak = TRUE;
/* FIXME: Handle batch files */
/* FIXME: Print "^C" */
//ConOutPrintf(_T("^C"));
return TRUE;