Commit 626669e1 authored by Alexandre Julliard's avatar Alexandre Julliard

kernel: Use a magic ConsoleHandle value instead of create flag to pass

the CREATE_NEW_CONSOLE flag to the child.
parent 645c0cc6
......@@ -50,8 +50,6 @@
extern int __wine_set_signal_handler(unsigned, int (*)(unsigned));
extern int main_create_flags;
static CRITICAL_SECTION ldt_section;
static CRITICAL_SECTION_DEBUG critsect_debug =
{
......@@ -142,19 +140,17 @@ static BOOL process_attach(void)
/* finish the process initialisation for console bits, if needed */
__wine_set_signal_handler(SIGINT, CONSOLE_HandleCtrlC);
if (main_create_flags & CREATE_NEW_CONSOLE)
if (NtCurrentTeb()->Peb->ProcessParameters->ConsoleHandle == (HANDLE)1) /* FIXME */
{
HMODULE mod = GetModuleHandleA(0);
if (RtlImageNtHeader(mod)->OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_CUI)
AllocConsole();
}
else if (!(main_create_flags & DETACHED_PROCESS))
{
/* 1/ shall inherit console + handles
* 2/ shall create std handles, if handles are not inherited
* TBD when not using wineserver handles for console handles
*/
}
/* else TODO for DETACHED_PROCESS:
* 1/ inherit console + handles
* 2/ create std handles, if handles are not inherited
* TBD when not using wineserver handles for console handles
*/
/* Create 16-bit task */
LoadLibrary16( "krnl386.exe" );
......
......@@ -1426,6 +1426,7 @@ static RTL_USER_PROCESS_PARAMETERS *create_user_params( LPCWSTR filename, LPCWST
}
if (flags & CREATE_NEW_PROCESS_GROUP) params->ConsoleFlags = 1;
if (flags & CREATE_NEW_CONSOLE) params->ConsoleHandle = (HANDLE)1; /* FIXME: cf. kernel_main.c */
params->hStdInput = startup->hStdInput;
params->hStdOutput = startup->hStdOutput;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment