changeset 19199:b39aa44b9769

merge of '55f3685b603ec55dbf23d659e71d47f554142a3e' and '70db886740a69295ddaca615e5c0fc01fe9dc27c'
author Luke Schierer <lschiere@pidgin.im>
date Sun, 12 Aug 2007 19:16:01 +0000
parents 874b727d8fa0 (diff) 5e297b409b3a (current diff)
children d470d42d2cb1 e5c775a3a44d
files libpurple/protocols/yahoo/yahoo.c
diffstat 17 files changed, 121 insertions(+), 43 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog.win32	Thu Jul 12 11:40:17 2007 +0000
+++ b/ChangeLog.win32	Sun Aug 12 19:16:01 2007 +0000
@@ -9,6 +9,9 @@
 	  Apple Bonjour for Windows from:
 	  http://www.apple.com/support/downloads/bonjourforwindows.html
 
+version 2.0.1 (5/24/2007):
+	* No changes
+
 version 2.0.0 (5/3/2007):
 	* URI Handler support added via `pidgin.exe --protocolhandler=`
 	* Running a second instance will popup the Buddy List, if possible.
--- a/Makefile.mingw	Thu Jul 12 11:40:17 2007 +0000
+++ b/Makefile.mingw	Sun Aug 12 19:16:01 2007 +0000
@@ -67,6 +67,7 @@
 	$(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE) install
 	$(MAKE) -C $(PIDGIN_TOP) -f $(MINGW_MAKEFILE) install
 	$(MAKE) -C $(PURPLE_PO_TOP) -f $(MINGW_MAKEFILE) install
+	$(MAKE) -C share -f $(MINGW_MAKEFILE) install
 
 create_release_install_dir: install
 	rm -rf $(PIDGIN_INSTALL_DIR).release
--- a/libpurple/account.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/account.c	Sun Aug 12 19:16:01 2007 +0000
@@ -1130,8 +1130,8 @@
 
 void *
 purple_account_request_authorization(PurpleAccount *account, const char *remote_user,
-			           const char *id, const char *alias, const char *message, gboolean on_list,
-				   GCallback auth_cb, GCallback deny_cb, void *user_data)
+				     const char *id, const char *alias, const char *message, gboolean on_list,
+				     PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data)
 {
 	PurpleAccountUiOps *ui_ops;
 	PurpleAccountRequestInfo *info;
@@ -1146,8 +1146,8 @@
 		info->type      = PURPLE_ACCOUNT_REQUEST_AUTHORIZATION;
 		info->account   = account;
 		info->ui_handle = ui_ops->request_authorize(account, remote_user, id, alias, message,
-									on_list, auth_cb, deny_cb, user_data);
-		
+							    on_list, auth_cb, deny_cb, user_data);
+
 		handles = g_list_append(handles, info);
 		return info->ui_handle;
 	}
--- a/libpurple/account.h	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/account.h	Sun Aug 12 19:16:01 2007 +0000
@@ -242,7 +242,7 @@
  */
 void *purple_account_request_authorization(PurpleAccount *account, const char *remote_user,
 					const char *id, const char *alias, const char *message, gboolean on_list,
-					GCallback auth_cb, GCallback deny_cb, void *user_data);
+					PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data);
 
 /**
  * Close account requests registered for the given PurpleAccount
--- a/libpurple/plugins/perl/perl-handlers.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/plugins/perl/perl-handlers.c	Sun Aug 12 19:16:01 2007 +0000
@@ -22,6 +22,7 @@
 	gchar *hvname;
 	PurplePlugin *plugin;
 	PurplePerlScript *gps;
+	STRLEN na;
 	dSP;
 
 	plugin = action->plugin;
@@ -45,9 +46,16 @@
 	XPUSHs(purple_perl_bless_object(gps->plugin, "Purple::Plugin"));
 	PUTBACK;
 
-	call_sv(*callback, G_VOID | G_DISCARD);
+	call_sv(*callback, G_EVAL | G_VOID | G_DISCARD);
+
 	SPAGAIN;
 
+	if (SvTRUE(ERRSV)) {
+		purple_debug_error("perl",
+		                 "Perl plugin action function exited abnormally: %s\n",
+		                 SvPV(ERRSV, na));
+	}
+
 	PUTBACK;
 	FREETMPS;
 	LEAVE;
@@ -59,6 +67,7 @@
 	GList *l = NULL;
 	PurplePerlScript *gps;
 	int i = 0, count = 0;
+	STRLEN na;
 	dSP;
 
 	gps = (PurplePerlScript *)plugin->info->extra_info;
@@ -77,10 +86,16 @@
 		XPUSHs(&PL_sv_undef);
 	PUTBACK;
 
-	count = call_pv(gps->plugin_action_sub, G_ARRAY);
+	count = call_pv(gps->plugin_action_sub, G_EVAL | G_ARRAY);
 
 	SPAGAIN;
 
+	if (SvTRUE(ERRSV)) {
+		purple_debug_error("perl",
+		                 "Perl plugin actions lookup exited abnormally: %s\n",
+		                 SvPV(ERRSV, na));
+	}
+
 	if (count == 0)
 		croak("The plugin_actions sub didn't return anything.\n");
 
@@ -113,6 +128,7 @@
 	MAGIC *mg;
 	GtkWidget *ret;
 	PurplePerlScript *gps;
+	STRLEN na;
 	dSP;
 
 	gps = (PurplePerlScript *)plugin->info->extra_info;
@@ -120,13 +136,19 @@
 	ENTER;
 	SAVETMPS;
 
-	count = call_pv(gps->gtk_prefs_sub, G_SCALAR | G_NOARGS);
+	count = call_pv(gps->gtk_prefs_sub, G_EVAL | G_SCALAR | G_NOARGS);
 	if (count != 1)
 		croak("call_pv: Did not return the correct number of values.\n");
 
 	/* the frame was created in a perl sub and is returned */
 	SPAGAIN;
 
+	if (SvTRUE(ERRSV)) {
+		purple_debug_error("perl",
+		                 "Perl gtk plugin frame init exited abnormally: %s\n",
+		                 SvPV(ERRSV, na));
+	}
+
 	/* We have a Gtk2::Frame on top of the stack */
 	sv = POPs;
 
@@ -150,6 +172,7 @@
 	int count;
 	PurplePerlScript *gps;
 	PurplePluginPrefFrame *ret_frame;
+	STRLEN na;
 	dSP;
 
 	gps = (PurplePerlScript *)plugin->info->extra_info;
@@ -161,10 +184,16 @@
 	PUSHMARK(SP);
 	PUTBACK;
 
-	count = call_pv(gps->prefs_sub, G_SCALAR | G_NOARGS);
+	count = call_pv(gps->prefs_sub, G_EVAL | G_SCALAR | G_NOARGS);
 
 	SPAGAIN;
 
+	if (SvTRUE(ERRSV)) {
+		purple_debug_error("perl",
+		                 "Perl plugin prefs frame init exited abnormally: %s\n",
+		                 SvPV(ERRSV, na));
+	}
+
 	if (count != 1)
 		croak("call_pv: Did not return the correct number of values.\n");
 	/* the frame was created in a perl sub and is returned */
@@ -215,6 +244,7 @@
 {
 	PurplePerlTimeoutHandler *handler = (PurplePerlTimeoutHandler *)data;
 	gboolean ret = FALSE;
+	STRLEN na;
 
 	dSP;
 	ENTER;
@@ -225,6 +255,12 @@
 	call_sv(handler->callback, G_EVAL | G_SCALAR);
 	SPAGAIN;
 
+	if (SvTRUE(ERRSV)) {
+		purple_debug_error("perl",
+		                 "Perl timeout function exited abnormally: %s\n",
+		                 SvPV(ERRSV, na));
+	}
+
 	ret = POPi;
 
 	PUTBACK;
@@ -285,7 +321,7 @@
 		else
 			ret_val = purple_perl_data_from_sv(ret_value, POPs);
 	} else {
-		call_sv(handler->callback, G_SCALAR);
+		call_sv(handler->callback, G_EVAL | G_SCALAR);
 
 		SPAGAIN;
 	}
@@ -501,6 +537,7 @@
             gchar **args, gchar **error, void *data)
 {
 	int i = 0, count, ret_value = PURPLE_CMD_RET_OK;
+	STRLEN na;
 	SV *cmdSV, *tmpSV, *convSV;
 	PurplePerlCmdHandler *handler = (PurplePerlCmdHandler *)data;
 
@@ -532,11 +569,17 @@
 	}
 
 	PUTBACK;
-	count = call_sv(handler->callback, G_EVAL|G_SCALAR);
+	count = call_sv(handler->callback, G_EVAL | G_SCALAR);
 
 	if (count != 1)
 		croak("call_sv: Did not return the correct number of values.\n");
 
+	if (SvTRUE(ERRSV)) {
+		purple_debug_error("perl",
+		                 "Perl plugin command function exited abnormally: %s\n",
+		                 SvPV(ERRSV, na));
+	}
+
 	SPAGAIN;
 
 	ret_value = POPi;
--- a/libpurple/protocols/jabber/auth.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/protocols/jabber/auth.c	Sun Aug 12 19:16:01 2007 +0000
@@ -682,11 +682,11 @@
 
 	gchar *a1, *convnode=NULL, *convpasswd = NULL, *ha1, *ha2, *kd, *x, *z;
 
-	if((convnode = g_convert(jid->node, strlen(jid->node), "iso-8859-1", "utf-8",
+	if((convnode = g_convert(jid->node, -1, "iso-8859-1", "utf-8",
 					NULL, NULL, NULL)) == NULL) {
 		convnode = g_strdup(jid->node);
 	}
-	if(passwd && ((convpasswd = g_convert(passwd, strlen(passwd), "iso-8859-1",
+	if(passwd && ((convpasswd = g_convert(passwd, -1, "iso-8859-1",
 						"utf-8", NULL, NULL, NULL)) == NULL)) {
 		convpasswd = g_strdup(passwd);
 	}
--- a/libpurple/protocols/jabber/presence.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/protocols/jabber/presence.c	Sun Aug 12 19:16:01 2007 +0000
@@ -193,16 +193,18 @@
 	char *who;
 };
 
-static void authorize_add_cb(struct _jabber_add_permit *jap)
+static void authorize_add_cb(gpointer data)
 {
+	struct _jabber_add_permit *jap = data;
 	jabber_presence_subscription_set(jap->gc->proto_data, jap->who,
 			"subscribed");
 	g_free(jap->who);
 	g_free(jap);
 }
 
-static void deny_add_cb(struct _jabber_add_permit *jap)
+static void deny_add_cb(gpointer data)
 {
+	struct _jabber_add_permit *jap = data;
 	jabber_presence_subscription_set(jap->gc->proto_data, jap->who,
 			"unsubscribed");
 
@@ -305,7 +307,7 @@
 		jap->js = js;
 
 		purple_account_request_authorization(purple_connection_get_account(js->gc), from, NULL, NULL, NULL, onlist,
-				G_CALLBACK(authorize_add_cb), G_CALLBACK(deny_add_cb), jap);
+				authorize_add_cb, deny_add_cb, jap);
 		jabber_id_free(jid);
 		return;
 	} else if(type && !strcmp(type, "subscribed")) {
--- a/libpurple/protocols/msn/userlist.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/protocols/msn/userlist.c	Sun Aug 12 19:16:01 2007 +0000
@@ -38,8 +38,9 @@
  * Callbacks
  **************************************************************************/
 static void
-msn_accept_add_cb(MsnPermitAdd *pa)
+msn_accept_add_cb(gpointer data)
 {
+	MsnPermitAdd *pa = data;
 	MsnSession *session = pa->gc->proto_data;
 	MsnUserList *userlist = session->userlist;
 
@@ -51,8 +52,9 @@
 }
 
 static void
-msn_cancel_add_cb(MsnPermitAdd *pa)
+msn_cancel_add_cb(gpointer data)
 {
+	MsnPermitAdd *pa = data;
 	MsnSession *session = pa->gc->proto_data;
 	MsnUserList *userlist = session->userlist;
 
@@ -75,7 +77,7 @@
 	
 	purple_account_request_authorization(purple_connection_get_account(gc), passport, NULL, friendly, NULL,
 					   purple_find_buddy(purple_connection_get_account(gc), passport) != NULL,
-					   G_CALLBACK(msn_accept_add_cb), G_CALLBACK(msn_cancel_add_cb), pa);
+					   msn_accept_add_cb, msn_cancel_add_cb, pa);
 }
 
 /**************************************************************************
--- a/libpurple/protocols/oscar/oscar.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/protocols/oscar/oscar.c	Sun Aug 12 19:16:01 2007 +0000
@@ -482,7 +482,7 @@
 
 	/* Attempt to send as ASCII */
 	if (oscar_charset_check(from) == AIM_CHARSET_ASCII) {
-		*msg = g_convert(from, strlen(from), "ASCII", "UTF-8", NULL, &msglen, NULL);
+		*msg = g_convert(from, -1, "ASCII", "UTF-8", NULL, &msglen, NULL);
 		*charset = AIM_CHARSET_ASCII;
 		*charsubset = 0x0000;
 		*msglen_int = msglen;
@@ -504,7 +504,7 @@
 		b = purple_find_buddy(account, destsn);
 		if ((b != NULL) && (PURPLE_BUDDY_IS_ONLINE(b)))
 		{
-			*msg = g_convert(from, strlen(from), "UCS-2BE", "UTF-8", NULL, &msglen, NULL);
+			*msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, NULL);
 			if (*msg != NULL)
 			{
 				*charset = AIM_CHARSET_UNICODE;
@@ -527,7 +527,7 @@
 	 * XXX - We need a way to only attempt to convert if we KNOW "from"
 	 * can be converted to "charsetstr"
 	 */
-	*msg = g_convert(from, strlen(from), charsetstr, "UTF-8", NULL, &msglen, NULL);
+	*msg = g_convert(from, -1, charsetstr, "UTF-8", NULL, &msglen, NULL);
 	if (*msg != NULL) {
 		*charset = AIM_CHARSET_CUSTOM;
 		*charsubset = 0x0000;
@@ -538,7 +538,7 @@
 	/*
 	 * Nothing else worked, so send as UCS-2BE.
 	 */
-	*msg = g_convert(from, strlen(from), "UCS-2BE", "UTF-8", NULL, &msglen, &err);
+	*msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, &err);
 	if (*msg != NULL) {
 		*charset = AIM_CHARSET_UNICODE;
 		*charsubset = 0x0000;
@@ -2261,8 +2261,9 @@
 
 /* When other people ask you for authorization */
 static void
-purple_auth_grant(struct name_data *data)
+purple_auth_grant(gpointer cbdata)
 {
+	struct name_data *data = cbdata;
 	PurpleConnection *gc = data->gc;
 	OscarData *od = gc->proto_data;
 
@@ -2282,8 +2283,9 @@
 }
 
 static void
-purple_auth_dontgrant_msgprompt(struct name_data *data)
+purple_auth_dontgrant_msgprompt(gpointer cbdata)
 {
+	struct name_data *data = cbdata;
 	purple_request_input(data->gc, NULL, _("Authorization Denied Message:"),
 					   NULL, _("No reason given."), TRUE, FALSE, NULL,
 					   _("_OK"), G_CALLBACK(purple_auth_dontgrant),
@@ -2404,8 +2406,8 @@
 
 				purple_account_request_authorization(account, sn, NULL, NULL,
 						reason, purple_find_buddy(account, sn) != NULL,
-						G_CALLBACK(purple_auth_grant),
-						G_CALLBACK(purple_auth_dontgrant_msgprompt), data);
+						purple_auth_grant,
+						purple_auth_dontgrant_msgprompt, data);
 				g_free(reason);
 			}
 		} break;
@@ -4346,10 +4348,10 @@
 
 	charset = oscar_charset_check(str);
 	if (charset == AIM_CHARSET_UNICODE) {
-		encoded = g_convert(str, strlen(str), "UCS-2BE", "UTF-8", NULL, ret_len, NULL);
+		encoded = g_convert(str, -1, "UCS-2BE", "UTF-8", NULL, ret_len, NULL);
 		*encoding = "unicode-2-0";
 	} else if (charset == AIM_CHARSET_CUSTOM) {
-		encoded = g_convert(str, strlen(str), "ISO-8859-1", "UTF-8", NULL, ret_len, NULL);
+		encoded = g_convert(str, -1, "ISO-8859-1", "UTF-8", NULL, ret_len, NULL);
 		*encoding = "iso-8859-1";
 	} else {
 		encoded = g_strdup(str);
@@ -5170,8 +5172,8 @@
 
 	purple_account_request_authorization(account, sn, NULL,
 			(buddy ? purple_buddy_get_alias_only(buddy) : NULL),
-			reason, buddy != NULL, G_CALLBACK(purple_auth_grant),
-			G_CALLBACK(purple_auth_dontgrant_msgprompt), data);
+			reason, buddy != NULL, purple_auth_grant,
+			purple_auth_dontgrant_msgprompt, data);
 	g_free(reason);
 
 	return 1;
--- a/libpurple/protocols/yahoo/util.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/protocols/yahoo/util.c	Sun Aug 12 19:16:01 2007 +0000
@@ -61,7 +61,7 @@
 	else
 		to_codeset = purple_account_get_string(purple_connection_get_account(gc), "local_charset",  "ISO-8859-1");
 
-	ret = g_convert_with_fallback(str, strlen(str), to_codeset, "UTF-8", "?", NULL, NULL, NULL);
+	ret = g_convert_with_fallback(str, -1, to_codeset, "UTF-8", "?", NULL, NULL, NULL);
 	if (ret)
 		return ret;
 	else
@@ -92,7 +92,7 @@
 	else
 		from_codeset = purple_account_get_string(purple_connection_get_account(gc), "local_charset",  "ISO-8859-1");
 
-	ret = g_convert_with_fallback(str, strlen(str), "UTF-8", from_codeset, NULL, NULL, NULL, NULL);
+	ret = g_convert_with_fallback(str, -1, "UTF-8", from_codeset, NULL, NULL, NULL, NULL);
 
 	if (ret)
 		return ret;
--- a/libpurple/protocols/yahoo/yahoo.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/protocols/yahoo/yahoo.c	Sun Aug 12 19:16:01 2007 +0000
@@ -953,7 +953,8 @@
 };
 
 static void
-yahoo_buddy_add_authorize_cb(struct yahoo_add_request *add_req) {
+yahoo_buddy_add_authorize_cb(gpointer data) {
+	struct yahoo_add_request *add_req = data;
 	g_free(add_req->id);
 	g_free(add_req->who);
 	g_free(add_req->msg);
@@ -997,7 +998,8 @@
 }
 
 static void
-yahoo_buddy_add_deny_reason_cb(struct yahoo_add_request *add_req) {
+yahoo_buddy_add_deny_reason_cb(gpointer data) {
+	struct yahoo_add_request *add_req = data;
 	purple_request_input(add_req->gc, NULL, _("Authorization denied message:"),
 			NULL, _("No reason given."), TRUE, FALSE, NULL,
 			_("OK"), G_CALLBACK(yahoo_buddy_add_deny_cb),
@@ -1042,8 +1044,8 @@
 		 */
 		 purple_account_request_authorization(purple_connection_get_account(gc), add_req->who, add_req->id,
                                                     NULL, add_req->msg, purple_find_buddy(purple_connection_get_account(gc),add_req->who) != NULL,
-						    G_CALLBACK(yahoo_buddy_add_authorize_cb),
-						    G_CALLBACK(yahoo_buddy_add_deny_reason_cb),
+						    yahoo_buddy_add_authorize_cb,
+						    yahoo_buddy_add_deny_reason_cb,
                                                     add_req);
 	} else {
 		g_free(add_req->id);
--- a/libpurple/win32/global.mak	Thu Jul 12 11:40:17 2007 +0000
+++ b/libpurple/win32/global.mak	Sun Aug 12 19:16:01 2007 +0000
@@ -40,7 +40,6 @@
 PIDGIN_IDLETRACK_TOP := $(PIDGIN_TOP)/win32/IdleTracker
 PIDGIN_PIXMAPS_TOP := $(PIDGIN_TOP)/pixmaps
 PIDGIN_PLUGINS_TOP := $(PIDGIN_TOP)/plugins
-PIDGIN_SOUNDS_TOP := $(PIDGIN_TOP)/sounds
 PURPLE_PO_TOP := $(PIDGIN_TREE_TOP)/po
 PURPLE_PROTOS_TOP := $(PURPLE_TOP)/protocols
 
--- a/pidgin/Makefile.mingw	Thu Jul 12 11:40:17 2007 +0000
+++ b/pidgin/Makefile.mingw	Sun Aug 12 19:16:01 2007 +0000
@@ -146,7 +146,6 @@
 install: install_shallow all
 	$(MAKE) -C $(PIDGIN_PLUGINS_TOP) -f $(MINGW_MAKEFILE) install
 	$(MAKE) -C $(PIDGIN_PIXMAPS_TOP) -f $(MINGW_MAKEFILE) install
-	$(MAKE) -C $(PIDGIN_SOUNDS_TOP) -f $(MINGW_MAKEFILE) install
 	$(MAKE) -C $(PIDGIN_IDLETRACK_TOP) -f $(MINGW_MAKEFILE) install
 
 win32/pidgin_dll_rc.rc: win32/pidgin_dll_rc.rc.in $(PIDGIN_TREE_TOP)/VERSION
--- a/pidgin/gtkimhtml.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/pidgin/gtkimhtml.c	Sun Aug 12 19:16:01 2007 +0000
@@ -1037,7 +1037,7 @@
 {
 	char *tmp;
 
-	if (text == NULL)
+	if (text == NULL || !(*text))
 		return;
 
 	tmp = g_markup_escape_text(text, -1);
@@ -1053,7 +1053,7 @@
 	if (!gtk_text_view_get_editable(GTK_TEXT_VIEW(imhtml)))
 		return;
 
-	if (imhtml->wbfo || selection_data->length < 0) {
+	if (imhtml->wbfo || selection_data->length <= 0) {
 		gtk_clipboard_request_text(clipboard, paste_plaintext_received_cb, imhtml);
 		return;
 	} else {
--- a/pidgin/plugins/win32/transparency/win2ktrans.c	Thu Jul 12 11:40:17 2007 +0000
+++ b/pidgin/plugins/win32/transparency/win2ktrans.c	Sun Aug 12 19:16:01 2007 +0000
@@ -274,9 +274,11 @@
 		gtk_window_get_size(GTK_WINDOW(win), &width, &height);
 		gtk_box_pack_start(GTK_BOX(vbox),
 			slider_box, FALSE, FALSE, 0);
+#if 0 /*Now that we save window sizes, don't resize it or else it causes windows to grow*/
 		/* Make window taller so we don't slowly collapse its message area */
 		gtk_window_resize(GTK_WINDOW(win), width,
 			(height + slidereq.height));
+#endif
 		/* Add window to list, to track that it has a slider */
 		slidwin = g_new0(slider_win, 1);
 		slidwin->win = win;
@@ -292,6 +294,7 @@
 			slider_win *slidwin = (slider_win*) tmp->data;
 			if (slidwin != NULL &&
 					GTK_IS_WINDOW(slidwin->win)) {
+#if 0
 				GtkRequisition slidereq;
 				gint width, height;
 				/* Figure out how tall the slider was */
@@ -300,12 +303,13 @@
 				gtk_window_get_size(
 					GTK_WINDOW(slidwin->win),
 					&width, &height);
-
+#endif
 				gtk_widget_destroy(slidwin->slider);
-
+#if 0
 				gtk_window_resize(
 					GTK_WINDOW(slidwin->win),
 					width, (height - slidereq.height));
+#endif
 			}
 			g_free(slidwin);
 			tmp = tmp->next;
--- a/share/Makefile.am	Thu Jul 12 11:40:17 2007 +0000
+++ b/share/Makefile.am	Sun Aug 12 19:16:01 2007 +0000
@@ -1,2 +1,4 @@
 
 SUBDIRS = sounds
+
+EXTRA_DIST = Makefile.mingw
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/Makefile.mingw	Sun Aug 12 19:16:01 2007 +0000
@@ -0,0 +1,19 @@
+#
+# Makefile.mingw
+#
+# Description: Makefile for win32 (mingw) version
+#
+
+PIDGIN_TREE_TOP := ..
+include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak
+
+include ./Makefile.am
+
+.PHONY: install clean
+
+install:
+	if test '$(SUBDIRS)'; then \
+	  list='$(SUBDIRS)'; for subdir in $$list; do \
+	    $(MAKE) -C $$subdir -f $(MINGW_MAKEFILE) install || exit 1 ;\
+	  done; \
+	fi;