Remove some more unnecessary windows workarounds.

This commit is contained in:
Fridrich Strba
2010-03-14 23:13:29 +01:00
parent 22d0d5131c
commit 730cf96cd0
3 changed files with 28 additions and 56 deletions

View File

@ -44,6 +44,10 @@ evolution_settings_SOURCES = \
evolution_settings_LDFLAGS = \
-Wl,--export-dynamic
if OS_WIN32
evolution_settings_LDFLAGS += -mwindows
endif
evolution_settings_LDADD = \
$(EVOLUTION_MAIL_LIBS) \
$(CERT_UI_LIBS) \

View File

@ -41,9 +41,16 @@
#ifdef G_OS_WIN32
#define WIN32_LEAN_AND_MEAN
#ifdef DATADIR
#undef DATADIR
#endif
#include <io.h>
#include <conio.h>
#define _WIN32_WINNT 0x0501
#include <windows.h>
#endif
#include <unique/unique.h>
gboolean windowed = FALSE;
@ -173,8 +180,22 @@ main (int argc, char *argv[])
UniqueApp *app;
#ifdef G_OS_WIN32
extern void link_shutdown (void);
set_paths ();
if (fileno (stdout) != -1 && _get_osfhandle (fileno (stdout)) != -1) {
/* stdout is fine, presumably redirected to a file or pipe */
} else {
typedef BOOL (* WINAPI AttachConsole_t) (DWORD);
AttachConsole_t p_AttachConsole =
(AttachConsole_t) GetProcAddress (
GetModuleHandle ("kernel32.dll"), "AttachConsole");
if (p_AttachConsole && p_AttachConsole (ATTACH_PARENT_PROCESS)) {
freopen ("CONOUT$", "w", stdout);
dup2 (fileno (stdout), 1);
freopen ("CONOUT$", "w", stderr);
dup2 (fileno (stderr), 2);
}
}
#endif
static GOptionEntry entries[] = {
@ -245,10 +266,6 @@ main (int argc, char *argv[])
gtk_main ();
#ifdef G_OS_WIN32
link_shutdown ();
#endif
return 0;
}

View File

@ -349,51 +349,6 @@ static GOptionEntry entries[] = {
{ NULL }
};
#ifdef G_OS_WIN32
static void
set_paths (void)
{
/* Set PATH to include the Evolution executable's folder
* and the lib/evolution/$(BASE_VERSION)/components folder. */
wchar_t exe_filename[MAX_PATH];
wchar_t *p;
gchar *exe_folder_utf8;
gchar *components_folder_utf8;
gchar *top_folder_utf8;
gchar *path;
GetModuleFileNameW (NULL, exe_filename, G_N_ELEMENTS (exe_filename));
p = wcsrchr (exe_filename, L'\\');
g_assert (p != NULL);
*p = L'\0';
exe_folder_utf8 = g_utf16_to_utf8 (exe_filename, -1, NULL, NULL, NULL);
p = wcsrchr (exe_filename, L'\\');
g_assert (p != NULL);
*p = L'\0';
top_folder_utf8 = g_utf16_to_utf8 (exe_filename, -1, NULL, NULL, NULL);
components_folder_utf8 = g_strconcat (
top_folder_utf8, "/lib/evolution/"
BASE_VERSION "/components", NULL);
path = g_build_path (
";", exe_folder_utf8,
components_folder_utf8, g_getenv ("PATH"), NULL);
if (!g_setenv ("PATH", path, TRUE))
g_warning ("Could not set PATH for Evolution "
"and its child processes");
g_free (path);
g_free (exe_folder_utf8);
g_free (components_folder_utf8);
g_free (top_folder_utf8);
}
#endif
static void G_GNUC_NORETURN
shell_force_shutdown (void)
{
@ -486,7 +441,7 @@ main (gint argc, gchar **argv)
(AttachConsole_t) GetProcAddress (
GetModuleHandle ("kernel32.dll"), "AttachConsole");
if (p_AttachConsole != NULL && p_AttachConsole (ATTACH_PARENT_PROCESS)) {
if (p_AttachConsole && p_AttachConsole (ATTACH_PARENT_PROCESS)) {
freopen ("CONOUT$", "w", stdout);
dup2 (fileno (stdout), 1);
freopen ("CONOUT$", "w", stderr);
@ -502,10 +457,6 @@ main (gint argc, gchar **argv)
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
#ifdef G_OS_WIN32
set_paths ();
#endif
gtk_init_with_args (
&argc, &argv,
_("- The Evolution PIM and Email Client"),