[gobject-introspection: 3/5] Use `_get_oshandle()` and `g_win32_output_stream_new()` instead since `g_win32_output_stream_new_fro



commit 5b9cf70d4ea36fd95449855cbbad592dabc653cc
Author: Gisle Vanem <gisle vanem gmail com>
Date:   Fri May 15 10:59:39 2020 +0000

    Use `_get_oshandle()` and `g_win32_output_stream_new()` instead since
    `g_win32_output_stream_new_from_fd()` is private in Gio.
    
    It's normally not exported unless `GLIB_STATIC_COMPILATION` is effective.
    PS. Why would i not be called `GIO_STATIC_COMPILATION` for Gio .c-files?

 girepository/gi-dump-types.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
---
diff --git a/girepository/gi-dump-types.c b/girepository/gi-dump-types.c
index bac32f2b..8dae9c02 100644
--- a/girepository/gi-dump-types.c
+++ b/girepository/gi-dump-types.c
@@ -1,6 +1,7 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 #include "gdump.c"
 #ifdef G_OS_WIN32
+  #include <io.h>  /* For _get_osfhandle() */
   #include <gio/gwin32outputstream.h>
 #else
   #include <gio/gunixoutputstream.h>
@@ -15,7 +16,10 @@ main (int    argc,
   GModule *self;
 
 #if defined(G_OS_WIN32)
-  Stdout = g_win32_output_stream_new (1, FALSE);
+  HANDLE *hnd = (HANDLE) _get_osfhandle (1);
+
+  g_return_val_if_fail (hnd && hnd != INVALID_HANDLE_VALUE, 1);
+  Stdout = g_win32_output_stream_new (hnd, FALSE);
 #else
   Stdout = g_unix_output_stream_new (1, FALSE);
 #endif


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]