[Xfce4-commits] <midori:master> Attach Win32 console to stdout if not redirected

Christian Dywan noreply at xfce.org
Mon Nov 28 20:44:02 CET 2011


Updating branch refs/heads/master
         to 75c5f57f91073dfc2cdf27f9fe8b21d9faf0689d (commit)
       from 47445f8c9494d027f2bc6e6bd76a200552d560dd (commit)

commit 75c5f57f91073dfc2cdf27f9fe8b21d9faf0689d
Author: Paweł Forysiuk <tuxator at o2.pl>
Date:   Mon Nov 28 20:37:53 2011 +0100

    Attach Win32 console to stdout if not redirected

 midori/midori-app.c |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/midori/midori-app.c b/midori/midori-app.c
index aa17180..d8502a1 100644
--- a/midori/midori-app.c
+++ b/midori/midori-app.c
@@ -9,6 +9,12 @@
  See the file COPYING for the full license text.
 */
 
+/* When cross-compiling assume at least WinXP */
+#ifdef _WIN32
+    #define _WIN32_WINNT 0x0501
+    #include <unistd.h>
+#endif
+
 #if HAVE_CONFIG_H
     #include <config.h>
 #endif
@@ -1437,5 +1443,28 @@ midori_app_setup (gchar** argument_vector)
     gtk_icon_factory_add_default (factory);
     g_object_unref (factory);
     #endif
+
+    /* Print messages to stdout on Win32 console, cf. AbiWord
+     * http://svn.abisource.com/abiword/trunk/src/wp/main/win/Win32Main.cpp */
+    #ifdef _WIN32
+    if (fileno (stdout) != -1
+    && _get_osfhandle (fileno (stdout)) != -1)
+    {
+        /* stdout is already being redirected to a file */
+    }
+    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
 }
 


More information about the Xfce4-commits mailing list