summaryrefslogtreecommitdiff
path: root/girepository/gi-dump-types.c
diff options
context:
space:
mode:
Diffstat (limited to 'girepository/gi-dump-types.c')
-rw-r--r--girepository/gi-dump-types.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/girepository/gi-dump-types.c b/girepository/gi-dump-types.c
index 69d8b12d..aeef774c 100644
--- a/girepository/gi-dump-types.c
+++ b/girepository/gi-dump-types.c
@@ -1,16 +1,29 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
#include "gdump.c"
-#include <gio/gunixoutputstream.h>
+#ifdef G_OS_WIN32
+ #include <windows.h>
+ #include <io.h> /* For _get_osfhandle() */
+ #include <gio/gwin32outputstream.h>
+#else
+ #include <gio/gunixoutputstream.h>
+#endif
int
main (int argc,
char **argv)
{
int i;
- GOutputStream *stdout;
+ GOutputStream *Stdout;
GModule *self;
- stdout = g_unix_output_stream_new (1, FALSE);
+#if defined(G_OS_WIN32)
+ 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
self = g_module_open (NULL, 0);
@@ -26,7 +39,7 @@ main (int argc,
g_clear_error (&error);
}
else
- dump_type (type, argv[i], stdout);
+ dump_type (type, argv[i], Stdout);
}
return 0;