[gimp/gimp-2-8] Do not use g_io_channel_unix_new() for the win32 platforms.
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-8] Do not use g_io_channel_unix_new() for the win32 platforms.
- Date: Sat, 26 Mar 2016 23:58:42 +0000 (UTC)
commit 4dbb1232a8221a31ca16b5c5c0a080fce15c3d4a
Author: Jehan <jehan girinstud io>
Date: Mon Aug 11 23:01:12 2014 +0000
Do not use g_io_channel_unix_new() for the win32 platforms.
It is advised to use the more accurate g_io_channel_win32_new_fd() or
g_io_channel_win32_new_socket() because GLib can't differentiate between
file descriptors and sockets on Windows, which outputs a warning when
there is ambiguity.
(cherry picked from commit b8aabcac5c06b393911ae7556d18e137f4781e6a)
app/config/gimpxmlparser.c | 4 ++++
app/plug-in/gimpplugin.c | 7 ++++++-
libgimp/gimp.c | 5 +++++
3 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/app/config/gimpxmlparser.c b/app/config/gimpxmlparser.c
index 5804865..7975490 100644
--- a/app/config/gimpxmlparser.c
+++ b/app/config/gimpxmlparser.c
@@ -122,7 +122,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 78465f9..944b94a 100644
--- a/app/plug-in/gimpplugin.c
+++ b/app/plug-in/gimpplugin.c
@@ -264,12 +264,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 a5deca8..eeb573a 100644
--- a/libgimp/gimp.c
+++ b/libgimp/gimp.c
@@ -435,8 +435,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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]