Fix kernel_main.c to generate console Window
slawek
slawek at lach.art.pl
Thu Oct 30 11:10:10 CDT 2008
>From 1729fa1488e7c1412acfab3d969e19bcc3ae719a Mon Sep 17 00:00:00 2001
From: Lachu <slawek at lach.art.pl>
Date: Thu, 30 Oct 2008 17:05:47 +0100
Subject: Fix problem with running terminal window if they needed. We still have problem if user delete WINDOWID env varliable.
---
dlls/kernel32/kernel_main.c | 2 +-
programs/services/Makefile.in | 2 +-
programs/start/Makefile.in | 2 +-
programs/start/start.c | 5 +++--
programs/wineboot/Makefile.in | 2 +-
5 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/dlls/kernel32/kernel_main.c b/dlls/kernel32/kernel_main.c
index be1212f..39a7f75 100644
--- a/dlls/kernel32/kernel_main.c
+++ b/dlls/kernel32/kernel_main.c
@@ -170,7 +170,7 @@ static BOOL process_attach( HMODULE module )
/* finish the process initialisation for console bits, if needed */
__wine_set_signal_handler(SIGINT, CONSOLE_HandleCtrlC);
- if (params->ConsoleHandle == (HANDLE)1) /* FIXME */
+ if ((getenv("DISPLAY") && !isatty(STDIN_FILENO) && !getenv("WINDOWID") /* SHELL ? */) || params->ConsoleHandle == (HANDLE)1 )
{
HMODULE mod = GetModuleHandleA(0);
if (RtlImageNtHeader(mod)->OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_CUI)
diff --git a/programs/services/Makefile.in b/programs/services/Makefile.in
index 257489b..6a6d85f 100644
--- a/programs/services/Makefile.in
+++ b/programs/services/Makefile.in
@@ -4,7 +4,7 @@ TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = services.exe
-APPMODE = -mconsole
+APPMODE = -mwindows
IMPORTS = kernel32
IMPORTS = rpcrt4 advapi32 kernel32 ntdll
diff --git a/programs/start/Makefile.in b/programs/start/Makefile.in
index 976766f..b55bb6f 100644
--- a/programs/start/Makefile.in
+++ b/programs/start/Makefile.in
@@ -4,7 +4,7 @@ TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = start.exe
-APPMODE = -mconsole -municode
+APPMODE = -mwindows -municode
IMPORTS = shell32 user32 kernel32
C_SRCS = start.c
diff --git a/programs/start/start.c b/programs/start/start.c
index 2009e78..b5fed0c 100644
--- a/programs/start/start.c
+++ b/programs/start/start.c
@@ -182,11 +182,13 @@ int wmain (int argc, WCHAR *argv[])
static const WCHAR openW[] = { 'o', 'p', 'e', 'n', 0 };
static const WCHAR unixW[] = { 'u', 'n', 'i', 'x', 0 };
-
+ unsetenv("WINDOWID");
+
memset(&sei, 0, sizeof(sei));
sei.cbSize = sizeof(sei);
sei.lpVerb = openW;
sei.nShow = SW_SHOWNORMAL;
+
/* Dunno what these mean, but it looks like winMe's start uses them */
sei.fMask = SEE_MASK_FLAG_DDEWAIT|
SEE_MASK_FLAG_NO_UI|
@@ -314,7 +316,6 @@ int wmain (int argc, WCHAR *argv[])
goto done;
}
}
-
if (!ShellExecuteExW(&sei))
fatal_string_error(STRING_EXECFAIL, GetLastError());
diff --git a/programs/wineboot/Makefile.in b/programs/wineboot/Makefile.in
index 63c6fd8..94f313c 100644
--- a/programs/wineboot/Makefile.in
+++ b/programs/wineboot/Makefile.in
@@ -4,7 +4,7 @@ TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = wineboot.exe
-APPMODE = -mconsole
+APPMODE = -mwindows
IMPORTS = uuid advapi32 kernel32 ntdll
DELAYIMPORTS = setupapi shell32 shlwapi version user32
--
1.5.6
More information about the wine-patches
mailing list