changeset 22959:2555e069cd8c

Add the ability on win32 to choose at runtime whether we use the GIOChannel implementation from glib or the one in libpurple. I'm not sure if anyone else will use this, but I've used it for testing and here it is.
author Daniel Atallah <daniel.atallah@gmail.com>
date Thu, 15 May 2008 19:53:05 +0000
parents f1dfc0d70d19
children 52edd9681dd9
files pidgin/Makefile.mingw pidgin/gtkeventloop.c
diffstat 2 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/pidgin/Makefile.mingw	Thu May 15 15:22:04 2008 +0000
+++ b/pidgin/Makefile.mingw	Thu May 15 19:53:05 2008 +0000
@@ -20,8 +20,6 @@
 
 LDFLAGS := $(WINAPP)
 
-#CFLAGS += -DWINPIDGIN_USE_GLIB_IO_CHANNEL=1
-
 ##
 ## INCLUDE PATHS
 ##
--- a/pidgin/gtkeventloop.c	Thu May 15 15:22:04 2008 +0000
+++ b/pidgin/gtkeventloop.c	Thu May 15 19:53:05 2008 +0000
@@ -87,6 +87,12 @@
 	PidginIOClosure *closure = g_new0(PidginIOClosure, 1);
 	GIOChannel *channel;
 	GIOCondition cond = 0;
+#ifdef _WIN32
+	static int use_glib_io_channel = -1;
+
+	if (use_glib_io_channel == -1)
+		use_glib_io_channel = (g_getenv("PIDGIN_GLIB_IO_CHANNEL") != NULL) ? 1 : 0;
+#endif
 
 	closure->function = function;
 	closure->data = data;
@@ -97,10 +103,12 @@
 		cond |= PIDGIN_WRITE_COND;
 
 #ifdef _WIN32
-	channel = wpurple_g_io_channel_win32_new_socket(fd);
-#else
+	if (use_glib_io_channel == 0)
+		channel = wpurple_g_io_channel_win32_new_socket(fd);
+	else
+#endif
 	channel = g_io_channel_unix_new(fd);
-#endif
+
 	closure->result = g_io_add_watch_full(channel, G_PRIORITY_DEFAULT, cond,
 					      pidgin_io_invoke, closure, pidgin_io_destroy);