Check the C stdout and stderr streams for validity, instead of what
authorTor Lillqvist <tml@iki.fi>
Wed, 1 Jan 2003 23:18:44 +0000 (23:18 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Wed, 1 Jan 2003 23:18:44 +0000 (23:18 +0000)
2003-01-01  Tor Lillqvist  <tml@iki.fi>

* glib/gmessages.c (ensure_stdout_valid, ensure_stderr_valid):
Check the C stdout and stderr streams for validity, instead of
what GetStdHandle() returns.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gmessages.c

index 128d56a..9d9a885 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,8 @@
        * glib/gmessages.c (ensure_stderr_valid): New function, parallel
        to ensure_stdout_valid(). #defined as empty on Unix. Move the
        alloc_console_called static flag inside these two functions.
+       (ensure_stdout_valid, ensure_stderr_valid): Check the C stdout and
+       stderr streams for validity, instead of what GetStdHandle() returns.
        (mklevel_prefix): Do use either stderr or stdout on Windows,
        too. Otherwise g_warning() messages (that are just warnings, by
        definition) will get mixed with proper stdout output. Noticed in
index 128d56a..9d9a885 100644 (file)
@@ -3,6 +3,8 @@
        * glib/gmessages.c (ensure_stderr_valid): New function, parallel
        to ensure_stdout_valid(). #defined as empty on Unix. Move the
        alloc_console_called static flag inside these two functions.
+       (ensure_stdout_valid, ensure_stderr_valid): Check the C stdout and
+       stderr streams for validity, instead of what GetStdHandle() returns.
        (mklevel_prefix): Do use either stderr or stdout on Windows,
        too. Otherwise g_warning() messages (that are just warnings, by
        definition) will get mixed with proper stdout output. Noticed in
index 128d56a..9d9a885 100644 (file)
@@ -3,6 +3,8 @@
        * glib/gmessages.c (ensure_stderr_valid): New function, parallel
        to ensure_stdout_valid(). #defined as empty on Unix. Move the
        alloc_console_called static flag inside these two functions.
+       (ensure_stdout_valid, ensure_stderr_valid): Check the C stdout and
+       stderr streams for validity, instead of what GetStdHandle() returns.
        (mklevel_prefix): Do use either stderr or stdout on Windows,
        too. Otherwise g_warning() messages (that are just warnings, by
        definition) will get mixed with proper stdout output. Noticed in
index 128d56a..9d9a885 100644 (file)
@@ -3,6 +3,8 @@
        * glib/gmessages.c (ensure_stderr_valid): New function, parallel
        to ensure_stdout_valid(). #defined as empty on Unix. Move the
        alloc_console_called static flag inside these two functions.
+       (ensure_stdout_valid, ensure_stderr_valid): Check the C stdout and
+       stderr streams for validity, instead of what GetStdHandle() returns.
        (mklevel_prefix): Do use either stderr or stdout on Windows,
        too. Otherwise g_warning() messages (that are just warnings, by
        definition) will get mixed with proper stdout output. Noticed in
index 128d56a..9d9a885 100644 (file)
@@ -3,6 +3,8 @@
        * glib/gmessages.c (ensure_stderr_valid): New function, parallel
        to ensure_stdout_valid(). #defined as empty on Unix. Move the
        alloc_console_called static flag inside these two functions.
+       (ensure_stdout_valid, ensure_stderr_valid): Check the C stdout and
+       stderr streams for validity, instead of what GetStdHandle() returns.
        (mklevel_prefix): Do use either stderr or stdout on Windows,
        too. Otherwise g_warning() messages (that are just warnings, by
        definition) will get mixed with proper stdout output. Noticed in
index 128d56a..9d9a885 100644 (file)
@@ -3,6 +3,8 @@
        * glib/gmessages.c (ensure_stderr_valid): New function, parallel
        to ensure_stdout_valid(). #defined as empty on Unix. Move the
        alloc_console_called static flag inside these two functions.
+       (ensure_stdout_valid, ensure_stderr_valid): Check the C stdout and
+       stderr streams for validity, instead of what GetStdHandle() returns.
        (mklevel_prefix): Do use either stderr or stdout on Windows,
        too. Otherwise g_warning() messages (that are just warnings, by
        definition) will get mixed with proper stdout output. Noticed in
index d2b8efb..4743d45 100644 (file)
@@ -46,6 +46,7 @@
 #include "gprintfint.h"
 
 #ifdef G_OS_WIN32
+#include <io.h>
 typedef FILE* GFileDescriptor;
 #else
 typedef gint GFileDescriptor;
@@ -129,7 +130,7 @@ ensure_stdout_valid (void)
 
   if (!alloc_console_called)
     {
-      handle = GetStdHandle (STD_OUTPUT_HANDLE);
+      handle = (HANDLE) _get_osfhandle (fileno (stdout)); 
   
       if (handle == INVALID_HANDLE_VALUE)
        {
@@ -151,8 +152,8 @@ ensure_stderr_valid (void)
 
   if (!alloc_console_called)
     {
-      handle = GetStdHandle (STD_ERROR_HANDLE);
-  
+      handle = (HANDLE) _get_osfhandle (fileno (stderr)); 
+
       if (handle == INVALID_HANDLE_VALUE)
        {
          AllocConsole ();