diff options
Diffstat (limited to 'girepository')
-rw-r--r-- | girepository/gi-dump-types.c | 21 | ||||
-rw-r--r-- | girepository/meson.build | 4 |
2 files changed, 19 insertions, 6 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; diff --git a/girepository/meson.build b/girepository/meson.build index 6cd8fd30..c8ef6aa9 100644 --- a/girepository/meson.build +++ b/girepository/meson.build @@ -204,7 +204,7 @@ gthash_test = executable('gthash-test', 'gthash-test.c', test('gthash-test', gthash_test) -if giounix_dep.found() +if giounix_dep.found() or giowin_dep.found() executable('gi-dump-types', 'gi-dump-types.c', - dependencies: [girepo_dep, giounix_dep]) + dependencies: [girepo_dep, giounix_dep, giowin_dep]) endif |