diff --git a/app/config/gimpxmlparser.c b/app/config/gimpxmlparser.c index 840d3d0c3d..62f121f01e 100644 --- a/app/config/gimpxmlparser.c +++ b/app/config/gimpxmlparser.c @@ -153,7 +153,11 @@ gimp_xml_parser_parse_fd (GimpXmlParser *parser, g_return_val_if_fail (parser != NULL, FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); +#ifdef G_OS_WIN32 + io = g_io_channel_win32_new_fd (fd); +#else io = g_io_channel_unix_new (fd); +#endif success = gimp_xml_parser_parse_io_channel (parser, io, error); diff --git a/app/plug-in/gimpplugin.c b/app/plug-in/gimpplugin.c index 2025138a5d..93e4dc08d1 100644 --- a/app/plug-in/gimpplugin.c +++ b/app/plug-in/gimpplugin.c @@ -261,12 +261,17 @@ gimp_plug_in_open (GimpPlugIn *plug_in, /* Prevent the plug-in from inheriting our ends of the pipes */ SetHandleInformation ((HANDLE) _get_osfhandle (my_read[0]), HANDLE_FLAG_INHERIT, 0); SetHandleInformation ((HANDLE) _get_osfhandle (my_write[1]), HANDLE_FLAG_INHERIT, 0); -#endif + plug_in->my_read = g_io_channel_win32_new_fd (my_read[0]); + plug_in->my_write = g_io_channel_win32_new_fd (my_write[1]); + plug_in->his_read = g_io_channel_win32_new_fd (my_write[0]); + plug_in->his_write = g_io_channel_win32_new_fd (my_read[1]); +#else plug_in->my_read = g_io_channel_unix_new (my_read[0]); plug_in->my_write = g_io_channel_unix_new (my_write[1]); plug_in->his_read = g_io_channel_unix_new (my_write[0]); plug_in->his_write = g_io_channel_unix_new (my_read[1]); +#endif g_io_channel_set_encoding (plug_in->my_read, NULL, NULL); g_io_channel_set_encoding (plug_in->my_write, NULL, NULL); diff --git a/libgimp/gimp.c b/libgimp/gimp.c index aea24b2242..0d85d2dae2 100644 --- a/libgimp/gimp.c +++ b/libgimp/gimp.c @@ -401,8 +401,13 @@ gimp_main (const GimpPlugInInfo *info, gimp_signal_private (SIGCHLD, SIG_DFL, SA_RESTART); #endif +#ifdef G_OS_WIN32 + _readchannel = g_io_channel_win32_new_fd (atoi (argv[2])); + _writechannel = g_io_channel_win32_new_fd (atoi (argv[3])); +#else _readchannel = g_io_channel_unix_new (atoi (argv[2])); _writechannel = g_io_channel_unix_new (atoi (argv[3])); +#endif g_io_channel_set_encoding (_readchannel, NULL, NULL); g_io_channel_set_encoding (_writechannel, NULL, NULL);