Commit 78ac55ce authored by Fridrich Strba's avatar Fridrich Strba

On Windows, when called from a console, get console output (works only

with Windows XP or higher. Windows 2000 will not have console output
but it will just work fine.)
parent f575f06b
......@@ -27,6 +27,16 @@
#include "ev-previewer-window.h"
#ifdef G_OS_WIN32
#ifdef DATADIR
#undef DATADIR
#endif
#include <io.h>
#include <conio.h>
#define _WIN32_WINNT 0x0500
#include <windows.h>
#endif
static gboolean unlink_temp_file = FALSE;
static const gchar *print_settings;
static const gchar **filenames;
......@@ -93,6 +103,30 @@ main (gint argc, gchar **argv)
const gchar *filename;
GError *error = NULL;
#ifdef G_OS_WIN32
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 != NULL && p_AttachConsole (ATTACH_PARENT_PROCESS))
{
freopen ("CONOUT$", "w", stdout);
dup2 (fileno (stdout), 1);
freopen ("CONOUT$", "w", stderr);
dup2 (fileno (stderr), 2);
}
}
#endif
/* Init glib threads asap */
if (!g_thread_supported ())
g_thread_init (NULL);
......
......@@ -45,6 +45,16 @@
#endif
#endif /* WITH_SMCLIENT */
#ifdef G_OS_WIN32
#ifdef DATADIR
#undef DATADIR
#endif
#include <io.h>
#include <conio.h>
#define _WIN32_WINNT 0x0500
#include <windows.h>
#endif
static gchar *ev_page_label;
static gchar *ev_find_string;
static gboolean preview_mode = FALSE;
......@@ -387,6 +397,31 @@ main (int argc, char *argv[])
GHashTable *args;
GError *error = NULL;
#ifdef G_OS_WIN32
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 != NULL && p_AttachConsole (ATTACH_PARENT_PROCESS))
{
freopen ("CONOUT$", "w", stdout);
dup2 (fileno (stdout), 1);
freopen ("CONOUT$", "w", stderr);
dup2 (fileno (stderr), 2);
}
}
#endif
/* Init glib threads asap */
if (!g_thread_supported ())
g_thread_init (NULL);
......
......@@ -25,6 +25,16 @@
#include <stdlib.h>
#include <string.h>
#ifdef G_OS_WIN32
#ifdef DATADIR
#undef DATADIR
#endif
#include <io.h>
#include <conio.h>
#define _WIN32_WINNT 0x0500
#include <windows.h>
#endif
#define THUMBNAIL_SIZE 128
static gint size = THUMBNAIL_SIZE;
......
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