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