changeset 32592:d50bdda3dc81

propagate from branch 'im.pidgin.pidgin' (head e6d5f823c4caa7144f24e6c71090dcf9b87528b0) to branch 'im.pidgin.cpw.masca.webkit' (head b476d9d3a50b2c2c895471c6dd6231384749ff92)
author masca@cpw.pidgin.im
date Wed, 07 Sep 2011 05:44:17 +0000
parents 91d098444b91 (current diff) e1c801f3669d (diff)
children 7b1a94adc33f
files pidgin/gtkconv.c
diffstat 37 files changed, 33 insertions(+), 245 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog.API	Wed Sep 07 05:00:48 2011 +0000
+++ b/ChangeLog.API	Wed Sep 07 05:44:17 2011 +0000
@@ -107,10 +107,14 @@
 		* PidginConversation.sg
 		* purple_account_add_buddies_with_invite
 		* purple_account_add_buddy_with_invite
+		* purple_blist_update_buddy_icon
+		* purple_buddy_get_local_alias
 		* purple_buddy_icons_has_custom_icon
 		* purple_buddy_icons_find_custom_icon
 		* purple_buddy_icons_set_custom_icon
 		* purple_connection_error_reason
+		* purple_contact_set_alias
+		* purple_conv_chat_set_users
 		* purple_core_migrate
 		* purple_dnsquery_a_account
 		* purple_notify_searchresults_column_get_title
@@ -125,6 +129,7 @@
 		* purple_plugins_unregister_unload_notify_cb
 		* purple_presence_add_status
 		* purple_presence_add_list
+		* purple_proxy_connect_socks5
 		* purple_srv_cancel
 		* purple_srv_resolve_account
 		* purple_status_set_attr_boolean
@@ -144,6 +149,7 @@
 		* PurpleConnectionUiOps.report_disconnect_reason
 		* PurplePluginProtocolInfo.add_buddy_with_invite
 		* PurplePluginProtocolInfo.add_buddies_with_invite
+		* PurplePluginProtocolInfo.get_cb_away
 		* serv_got_attention
 		* serv_send_attention
 		* struct _GtkIMHtmlFontDetail
--- a/libpurple/blist.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/blist.c	Wed Sep 07 05:44:17 2011 +0000
@@ -956,12 +956,6 @@
 		ops->update(purplebuddylist, node);
 }
 
-void
-purple_blist_update_buddy_icon(PurpleBuddy *buddy)
-{
-	purple_blist_update_node_icon((PurpleBlistNode *)buddy);
-}
-
 /*
  * TODO: Maybe remove the call to this from server.c and call it
  * from oscar.c and toc.c instead?
@@ -1743,11 +1737,6 @@
 	return (PurpleGroup *)(((PurpleBlistNode *)contact)->parent);
 }
 
-void purple_contact_set_alias(PurpleContact *contact, const char *alias)
-{
-	purple_blist_alias_contact(contact,alias);
-}
-
 const char *purple_contact_get_alias(PurpleContact* contact)
 {
 	g_return_val_if_fail(contact != NULL, NULL);
@@ -2375,26 +2364,6 @@
 	return NULL;
 }
 
-const char *purple_buddy_get_local_alias(PurpleBuddy *buddy)
-{
-	PurpleContact *c;
-
-	g_return_val_if_fail(buddy != NULL, NULL);
-
-	/* Search for an alias for the buddy. In order of precedence: */
-	/* The buddy alias */
-	if (buddy->alias != NULL)
-		return buddy->alias;
-
-	/* The contact alias */
-	c = purple_buddy_get_contact(buddy);
-	if ((c != NULL) && (c->alias != NULL))
-		return c->alias;
-
-	/* The buddy's user name (i.e. no alias) */
-	return buddy->name;
-}
-
 const char *purple_chat_get_name(PurpleChat *chat)
 {
 	char *ret = NULL;
--- a/libpurple/blist.h	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/blist.h	Wed Sep 07 05:44:17 2011 +0000
@@ -454,21 +454,9 @@
  * Updates a node's custom icon.
  *
  * @param node  The PurpleBlistNode whose custom icon has changed.
- *
- * @since 2.5.0
  */
 void purple_blist_update_node_icon(PurpleBlistNode *node);
 
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_BLIST_C_)
-/**
- * Updates a buddy's icon.
- *
- * @param buddy  The buddy whose buddy icon has changed
- * @deprecated Use purple_blist_update_node_icon() instead.
- */
-void purple_blist_update_buddy_icon(PurpleBuddy *buddy);
-#endif
-
 /**
  * Renames a buddy in the buddy list.
  *
@@ -774,18 +762,6 @@
  */
 PurpleBuddy *purple_contact_get_priority_buddy(PurpleContact *contact);
 
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_BLIST_C_)
-/**
- * Sets the alias for a contact.
- *
- * @param contact  The contact
- * @param alias    The alias to set, or NULL to unset
- *
- * @deprecated Use purple_blist_alias_contact() instead.
- */
-void purple_contact_set_alias(PurpleContact *contact, const char *alias);
-#endif
-
 /**
  * Gets the alias for a contact.
  *
@@ -876,19 +852,6 @@
  */
 const char *purple_buddy_get_contact_alias(PurpleBuddy *buddy);
 
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_BLIST_C_)
-/**
- * Returns the correct alias for this user, ignoring server aliases.  Used
- * when a user-recognizable name is required.  In order: buddy's alias; buddy's
- * contact alias; buddy's user name.
- *
- * @param buddy  The buddy whose alias will be returned.
- * @return       The appropriate name or alias.
- * @deprecated   Try purple_buddy_get_alias(), if server aliases are okay.
- */
-const char *purple_buddy_get_local_alias(PurpleBuddy *buddy);
-#endif
-
 /**
  * Returns the correct name to display for a buddy. In order of precedence:
  * the buddy's alias; the buddy's server alias; the buddy's contact alias;
--- a/libpurple/conversation.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/conversation.c	Wed Sep 07 05:44:17 2011 +0000
@@ -1379,16 +1379,6 @@
 }
 
 GList *
-purple_conv_chat_set_users(PurpleConvChat *chat, GList *users)
-{
-	g_return_val_if_fail(chat != NULL, NULL);
-
-	chat->in_room = users;
-
-	return users;
-}
-
-GList *
 purple_conv_chat_get_users(const PurpleConvChat *chat)
 {
 	g_return_val_if_fail(chat != NULL, NULL);
--- a/libpurple/conversation.h	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/conversation.h	Wed Sep 07 05:44:17 2011 +0000
@@ -1080,22 +1080,6 @@
 PurpleConversation *purple_conv_chat_get_conversation(const PurpleConvChat *chat);
 
 /**
- * Sets the list of users in the chat room.
- *
- * @note Calling this function will not update the display of the users.
- *       Please use purple_conv_chat_add_user(), purple_conv_chat_add_users(),
- *       purple_conv_chat_remove_user(), and purple_conv_chat_remove_users() instead.
- *
- * @param chat  The chat.
- * @param users The list of users.
- *
- * @return The list passed.
- *
- * @deprecated This function will be removed in 3.0.0.  You shouldn't be using it anyway.
- */
-GList *purple_conv_chat_set_users(PurpleConvChat *chat, GList *users);
-
-/**
  * Returns a list of users in the chat room.  The members of the list
  * are PurpleConvChatBuddy objects.
  *
--- a/libpurple/dbus-analyze-functions.py	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/dbus-analyze-functions.py	Wed Sep 07 05:44:17 2011 +0000
@@ -31,6 +31,11 @@
     "purple_account_unregister",
     "purple_connection_new_unregister",
 
+    # Similar to the above, again
+    "purple_menu_action_new",
+    "purple_menu_action_set_callback",
+    "purple_menu_action_get_callback",
+
     # These functions are excluded because they involve setting arbitrary
     # data via pointers for protocols and UIs.  This just won't work.
     "purple_blist_get_ui_data",
--- a/libpurple/plugins/perl/common/BuddyList.xs	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/plugins/perl/common/BuddyList.xs	Wed Sep 07 05:44:17 2011 +0000
@@ -82,11 +82,6 @@
 purple_contact_get_priority_buddy(contact)
 	Purple::BuddyList::Contact contact
 
-void
-purple_contact_set_alias(contact, alias)
-	Purple::BuddyList::Contact contact
-	const char * alias
-
 const char *
 purple_contact_get_alias(contact)
 	Purple::BuddyList::Contact contact
@@ -200,10 +195,6 @@
 	Purple::Status old_status
 
 void
-purple_blist_update_buddy_icon(buddy)
-	Purple::BuddyList::Buddy buddy
-
-void
 purple_blist_rename_buddy(buddy, name)
 	Purple::BuddyList::Buddy buddy
 	const char * name
@@ -430,9 +421,5 @@
 	Purple::BuddyList::Buddy buddy
 
 const char *
-purple_buddy_get_local_alias(buddy)
-	Purple::BuddyList::Buddy buddy
-
-const char *
 purple_buddy_get_alias(buddy)
 	Purple::BuddyList::Buddy buddy
--- a/libpurple/plugins/perl/common/Conversation.xs	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/plugins/perl/common/Conversation.xs	Wed Sep 07 05:44:17 2011 +0000
@@ -338,24 +338,6 @@
 	Purple::Conversation::Chat chat
 
 void
-purple_conv_chat_set_users(chat, users)
-	Purple::Conversation::Chat chat
-	SV * users
-PREINIT:
-	GList *l, *t_GL;
-	int i, t_len;
-PPCODE:
-	t_GL = NULL;
-	t_len = av_len((AV *)SvRV(users));
-
-	for (i = 0; i <= t_len; i++)
-		t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(users), i, 0)));
-
-	for (l = purple_conv_chat_set_users(chat, t_GL); l != NULL; l = l->next) {
-		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::ListEntry")));
-	}
-
-void
 purple_conv_chat_get_users(chat)
 	Purple::Conversation::Chat chat
 PREINIT:
--- a/libpurple/protocols/bonjour/bonjour.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/bonjour/bonjour.c	Wed Sep 07 05:44:17 2011 +0000
@@ -525,7 +525,6 @@
 	NULL,                                                    /* keepalive */
 	NULL,                                                    /* register_user */
 	NULL,                                                    /* get_cb_info */
-	NULL,                                                    /* get_cb_away */
 	NULL,                                                    /* alias_buddy */
 	bonjour_group_buddy,                                     /* group_buddy */
 	bonjour_rename_group,                                    /* rename_group */
--- a/libpurple/protocols/bonjour/mdns_win32.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/bonjour/mdns_win32.c	Wed Sep 07 05:44:17 2011 +0000
@@ -177,7 +177,7 @@
 	args->resolver_query = NULL;
 
 	if ((pb = purple_find_buddy(args->account, args->res_data->name))) {
-		if (pb->proto_data != args->bb) {
+		if (purple_buddy_get_protocol_data(pb) != args->bb) {
 			purple_debug_error("bonjour", "Found purple buddy for %s not matching bonjour buddy record.",
 				args->res_data->name);
 			goto cleanup;
@@ -348,7 +348,7 @@
 
 				/* Is there an existing buddy? */
 				if ((pb = purple_find_buddy(account, serviceName)))
-					bb = pb->proto_data;
+					bb = purple_buddy_get_protocol_data(pb);
 				/* Is there a pending buddy? */
 				else {
 					while (tmp) {
@@ -368,7 +368,7 @@
 					if (pb == NULL)
 						pending_buddies = g_slist_prepend(pending_buddies, bb);
 					else
-						pb->proto_data = bb;
+						purple_buddy_set_protocol_data(pb, bb);
 				}
 
 				rd = g_new0(Win32SvcResolverData, 1);
@@ -408,7 +408,7 @@
 			GSList *l;
 			/* There may be multiple presences, we should only get rid of this one */
 			Win32SvcResolverData *rd_search;
-			BonjourBuddy *bb = pb->proto_data;
+			BonjourBuddy *bb = purple_buddy_get_protocol_data(pb);
 			Win32BuddyImplData *idata;
 
 			g_return_if_fail(bb != NULL);
--- a/libpurple/protocols/gg/gg.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/gg/gg.c	Wed Sep 07 05:44:17 2011 +0000
@@ -2696,7 +2696,6 @@
 	ggp_keepalive,			/* keepalive */
 	ggp_register_user,		/* register_user */
 	NULL,				/* get_cb_info */
-	NULL,				/* get_cb_away */
 	NULL,				/* alias_buddy */
 	NULL,				/* group_buddy */
 	NULL,				/* rename_group */
--- a/libpurple/protocols/irc/irc.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/irc/irc.c	Wed Sep 07 05:44:17 2011 +0000
@@ -959,7 +959,6 @@
 	irc_keepalive,		/* keepalive */
 	NULL,					/* register_user */
 	NULL,					/* get_cb_info */
-	NULL,					/* get_cb_away */
 	NULL,					/* alias_buddy */
 	NULL,					/* group_buddy */
 	NULL,					/* rename_group */
--- a/libpurple/protocols/jabber/libxmpp.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/jabber/libxmpp.c	Wed Sep 07 05:44:17 2011 +0000
@@ -98,7 +98,6 @@
 	jabber_keepalive,				/* keepalive */
 	jabber_register_account,		/* register_user */
 	NULL,							/* get_cb_info */
-	NULL,							/* get_cb_away */
 	jabber_roster_alias_change,		/* alias_buddy */
 	jabber_roster_group_change,		/* group_buddy */
 	jabber_roster_group_rename,		/* rename_group */
--- a/libpurple/protocols/msn/msn.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/msn/msn.c	Wed Sep 07 05:44:17 2011 +0000
@@ -2971,7 +2971,6 @@
 	msn_keepalive,                      /* keepalive */
 	NULL,                               /* register_user */
 	NULL,                               /* get_cb_info */
-	NULL,                               /* get_cb_away */
 	msn_alias_buddy,                    /* alias_buddy */
 	msn_group_buddy,                    /* group_buddy */
 	msn_rename_group,                   /* rename_group */
--- a/libpurple/protocols/mxit/formcmds.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/mxit/formcmds.c	Wed Sep 07 05:44:17 2011 +0000
@@ -86,7 +86,6 @@
 static void mxit_cb_ii_returned(PurpleUtilFetchUrlData* url_data, gpointer user_data, const gchar* url_text, gsize len, const gchar* error_message)
 {
 	struct ii_url_request*	iireq		= (struct ii_url_request*) user_data;
-	char*					ii_data;
 	int*					intptr		= NULL;
 	int						id;
 
@@ -106,12 +105,8 @@
 		goto done;
 	}
 
-	/* make a copy of the data */
-	ii_data = g_malloc(len);
-	memcpy(ii_data, (const char*) url_text, len);
-
-	/* we now have the inline image, store it in the imagestore */
-	id = purple_imgstore_add_with_id(ii_data, len, NULL);
+	/* we now have the inline image, store a copy in the imagestore */
+	id = purple_imgstore_add_with_id(g_memdup(url_text, len), len, NULL);
 
 	/* map the inline image id to purple image id */
 	intptr = g_malloc(sizeof(int));
--- a/libpurple/protocols/mxit/mxit.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/mxit/mxit.c	Wed Sep 07 05:44:17 2011 +0000
@@ -716,7 +716,6 @@
 	mxit_keepalive,			/* keepalive */
 	mxit_register,			/* register_user */
 	NULL,					/* get_cb_info */
-	NULL,					/* get_cb_away */
 	mxit_buddy_alias,		/* alias_buddy				[roster.c] */
 	mxit_buddy_group,		/* group_buddy				[roster.c] */
 	mxit_rename_group,		/* rename_group				[roster.c] */
--- a/libpurple/protocols/mxit/protocol.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/mxit/protocol.c	Wed Sep 07 05:44:17 2011 +0000
@@ -2136,13 +2136,13 @@
 					contact = get_mxit_invite_contact( session, chunk.mxitid );
 					if ( contact ) {
 						/* this is an invite (add image to the internal image store) */
-						contact->imgid = purple_imgstore_add_with_id( chunk.data, chunk.length, NULL );
+						contact->imgid = purple_imgstore_add_with_id( g_memdup( chunk.data, chunk.length ), chunk.length, NULL );
 						/* show the profile */
 						mxit_show_profile( session, chunk.mxitid, contact->profile );
 					}
 					else {
 						/* this is a contact's avatar, so update it */
-						purple_buddy_icons_set_for_user( session->acc, chunk.mxitid, g_memdup( chunk.data, chunk.length), chunk.length, chunk.avatarid );
+						purple_buddy_icons_set_for_user( session->acc, chunk.mxitid, g_memdup( chunk.data, chunk.length ), chunk.length, chunk.avatarid );
 					}
 				}
 			}
--- a/libpurple/protocols/myspace/myspace.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/myspace/myspace.c	Wed Sep 07 05:44:17 2011 +0000
@@ -3052,7 +3052,6 @@
 	NULL,              /* keepalive */
 	NULL,              /* register_user */
 	NULL,              /* get_cb_info */
-	NULL,              /* get_cb_away */
 	NULL,              /* alias_buddy */
 	NULL,              /* group_buddy */
 	NULL,              /* rename_group */
--- a/libpurple/protocols/myspace/user.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/myspace/user.c	Wed Sep 07 05:44:17 2011 +0000
@@ -412,7 +412,7 @@
  *
  * @param session
  * @param msg The user information reply, with any amount of information.
- * @param user The structure to save to, or NULL to save in PurpleBuddy->proto_data.
+ * @param user The structure to save to, or NULL to save in PurpleBuddy's protocol_data.
  *
  * Variable information is saved to the passed MsimUser structure. Permanent
  * information (UserID) is stored in the blist node of the buddy list (and
--- a/libpurple/protocols/novell/novell.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/novell/novell.c	Wed Sep 07 05:44:17 2011 +0000
@@ -3515,7 +3515,6 @@
 	novell_keepalive,			/* keepalive */
 	NULL,						/* register_user */
 	NULL,						/* get_cb_info */
-	NULL,						/* get_cb_away */
 	novell_alias_buddy,			/* alias_buddy */
 	novell_group_buddy,			/* group_buddy */
 	novell_rename_group,		/* rename_group */
--- a/libpurple/protocols/null/nullprpl.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/null/nullprpl.c	Wed Sep 07 05:44:17 2011 +0000
@@ -1101,7 +1101,6 @@
   NULL,                                /* keepalive */
   nullprpl_register_user,              /* register_user */
   nullprpl_get_cb_info,                /* get_cb_info */
-  NULL,                                /* get_cb_away */
   nullprpl_alias_buddy,                /* alias_buddy */
   nullprpl_group_buddy,                /* group_buddy */
   nullprpl_rename_group,               /* rename_group */
--- a/libpurple/protocols/oscar/libaim.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/oscar/libaim.c	Wed Sep 07 05:44:17 2011 +0000
@@ -70,7 +70,6 @@
 	oscar_keepalive,		/* keepalive */
 	NULL,					/* register_user */
 	NULL,					/* get_cb_info */
-	NULL,					/* get_cb_away */
 	oscar_alias_buddy,		/* alias_buddy */
 	oscar_move_buddy,		/* group_buddy */
 	oscar_rename_group,		/* rename_group */
--- a/libpurple/protocols/oscar/libicq.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/oscar/libicq.c	Wed Sep 07 05:44:17 2011 +0000
@@ -79,7 +79,6 @@
 	oscar_keepalive,		/* keepalive */
 	NULL,					/* register_user */
 	NULL,					/* get_cb_info */
-	NULL,					/* get_cb_away */
 	oscar_alias_buddy,		/* alias_buddy */
 	oscar_move_buddy,		/* group_buddy */
 	oscar_rename_group,		/* rename_group */
--- a/libpurple/protocols/sametime/sametime.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/sametime/sametime.c	Wed Sep 07 05:44:17 2011 +0000
@@ -5195,7 +5195,6 @@
   .keepalive                 = mw_prpl_keepalive,
   .register_user             = NULL,
   .get_cb_info               = NULL,
-  .get_cb_away               = NULL,
   .alias_buddy               = mw_prpl_alias_buddy,
   .group_buddy               = mw_prpl_group_buddy,
   .rename_group              = mw_prpl_rename_group,
--- a/libpurple/protocols/silc/silc.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/silc/silc.c	Wed Sep 07 05:44:17 2011 +0000
@@ -2093,7 +2093,6 @@
 	silcpurple_keepalive,			/* keepalive */
 	NULL,					/* register_user */
 	NULL,					/* get_cb_info */
-	NULL,					/* get_cb_away */
 	NULL,					/* alias_buddy */
 	NULL,					/* group_buddy */
 	NULL,					/* rename_group */
--- a/libpurple/protocols/simple/simple.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/simple/simple.c	Wed Sep 07 05:44:17 2011 +0000
@@ -2087,7 +2087,6 @@
 	simple_keep_alive,		/* keepalive */
 	NULL,					/* register_user */
 	NULL,					/* get_cb_info */
-	NULL,					/* get_cb_away */
 	NULL,					/* alias_buddy */
 	NULL,					/* group_buddy */
 	NULL,					/* rename_group */
--- a/libpurple/protocols/yahoo/libyahoo.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/yahoo/libyahoo.c	Wed Sep 07 05:44:17 2011 +0000
@@ -235,7 +235,6 @@
 	yahoo_keepalive,
 	NULL, /* register_user */
 	NULL, /* get_cb_info */
-	NULL, /* get_cb_away */
 	yahoo_update_alias, /* alias_buddy */
 	yahoo_change_buddys_group,
 	yahoo_rename_group,
--- a/libpurple/protocols/yahoo/libyahoojp.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/yahoo/libyahoojp.c	Wed Sep 07 05:44:17 2011 +0000
@@ -131,7 +131,6 @@
 	yahoo_keepalive,
 	NULL, /* register_user */
 	NULL, /* get_cb_info */
-	NULL, /* get_cb_away */
 	yahoo_update_alias, /* alias_buddy */
 	yahoo_change_buddys_group,
 	yahoo_rename_group,
--- a/libpurple/protocols/zephyr/zephyr.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/protocols/zephyr/zephyr.c	Wed Sep 07 05:44:17 2011 +0000
@@ -2894,7 +2894,6 @@
 	NULL,					/* keepalive -- Not necessary*/
 	NULL,					/* register_user -- Not supported*/
 	NULL,					/* XXX get_cb_info */
-	NULL,					/* get_cb_away */
 	NULL,					/* alias_buddy */
 	NULL,					/* group_buddy */
 	NULL,					/* rename_group */
--- a/libpurple/proxy.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/proxy.c	Wed Sep 07 05:44:17 2011 +0000
@@ -2408,17 +2408,6 @@
 	return connect_data;
 }
 
-PurpleProxyConnectData *
-purple_proxy_connect_socks5(void *handle, PurpleProxyInfo *gpi,
-						  const char *host, int port,
-						  PurpleProxyConnectFunction connect_cb,
-						  gpointer data)
-{
-	return purple_proxy_connect_socks5_account(NULL, handle, gpi,
-						  host, port, connect_cb, data);
-}
-
-
 /* This is called when we connect to the SOCKS5 proxy server (through any
  * relevant account proxy)
  */
--- a/libpurple/proxy.h	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/proxy.h	Wed Sep 07 05:44:17 2011 +0000
@@ -307,35 +307,6 @@
 			const char *host, int port,
 			PurpleProxyConnectFunction connect_cb, gpointer data);
 
-#if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PROXY_C_)
-/**
- * Makes a connection through a SOCKS5 proxy.
- *
- * @param handle     A handle that should be associated with this
- *                   connection attempt.  The handle can be used
- *                   to cancel the connection attempt using the
- *                   purple_proxy_connect_cancel_with_handle()
- *                   function.
- * @param gpi        The PurpleProxyInfo specifying the proxy settings
- * @param host       The destination host.
- * @param port       The destination port.
- * @param connect_cb The function to call when the connection is
- *                   established.  If the connection failed then
- *                   fd will be -1 and error message will be set
- *                   to something descriptive (hopefully).
- * @param data       User-defined data.
- *
- * @return NULL if there was an error, or a reference to an
- *         opaque data structure that can be used to cancel
- *         the pending connection, if needed.
- * @deprecated Use purple_proxy_connect_socks5_account instead
- */
-PurpleProxyConnectData *purple_proxy_connect_socks5(void *handle,
-			PurpleProxyInfo *gpi,
-			const char *host, int port,
-			PurpleProxyConnectFunction connect_cb, gpointer data);
-#endif
-
 /**
  * Cancel an in-progress connection attempt.  This should be called
  * by the PRPL if the user disables an account while it is still
--- a/libpurple/prpl.h	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/prpl.h	Wed Sep 07 05:44:17 2011 +0000
@@ -448,11 +448,6 @@
 	 * @deprecated Use #PurplePluginProtocolInfo.get_info instead.
 	 */
 	void (*get_cb_info)(PurpleConnection *, int, const char *who);
-	/**
-	 * @deprecated Use #PurplePluginProtocolInfo.get_cb_real_name and
-	 *             #PurplePluginProtocolInfo.status_text instead.
-	 */
-	void (*get_cb_away)(PurpleConnection *, int, const char *who);
 
 	/** save/store buddy's alias on server list/roster */
 	void (*alias_buddy)(PurpleConnection *, const char *who,
--- a/libpurple/util.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/util.c	Wed Sep 07 05:44:17 2011 +0000
@@ -113,8 +113,7 @@
 	return act->label;
 }
 
-PurpleCallback *
-purple_menu_action_get_callback(const PurpleMenuAction *act)
+PurpleCallback purple_menu_action_get_callback(const PurpleMenuAction *act)
 {
 	g_return_val_if_fail(act != NULL, NULL);
 
--- a/libpurple/util.h	Wed Sep 07 05:00:48 2011 +0000
+++ b/libpurple/util.h	Wed Sep 07 05:44:17 2011 +0000
@@ -103,7 +103,7 @@
  *
  * @return The callback function.
  */
-PurpleCallback *purple_menu_action_get_callback(const PurpleMenuAction *act);
+PurpleCallback purple_menu_action_get_callback(const PurpleMenuAction *act);
 
 /**
  * Returns the data stored in the PurpleMenuAction.
--- a/pidgin/Makefile.mingw	Wed Sep 07 05:00:48 2011 +0000
+++ b/pidgin/Makefile.mingw	Wed Sep 07 05:44:17 2011 +0000
@@ -95,8 +95,6 @@
 			minidialog.c \
 			pidginstock.c \
 			pidgintooltip.c \
-			win32/MinimizeToTray.c \
-			win32/gtkdocklet-win32.c \
 			win32/gtkwin32dep.c \
 			win32/untar.c \
 			win32/wspell.c
--- a/pidgin/gtkconv.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/pidgin/gtkconv.c	Wed Sep 07 05:44:17 2011 +0000
@@ -1550,32 +1550,6 @@
 }
 
 static void
-menu_chat_get_away_cb(GtkWidget *w, PidginConversation *gtkconv)
-{
-	PurpleConversation *conv = gtkconv->active_conv;
-	PurplePluginProtocolInfo *prpl_info = NULL;
-	PurpleConnection *gc;
-	char *who;
-
-	gc  = purple_conversation_get_gc(conv);
-	who = g_object_get_data(G_OBJECT(w), "user_data");
-
-	if (gc != NULL) {
-		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl);
-
-		/*
-		 * May want to expand this to work similarly to menu_info_cb?
-		 */
-
-		if (prpl_info->get_cb_away != NULL)
-		{
-			prpl_info->get_cb_away(gc,
-				purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who);
-		}
-	}
-}
-
-static void
 menu_chat_add_remove_cb(GtkWidget *w, PidginConversation *gtkconv)
 {
 	PurpleConversation *conv = gtkconv->active_conv;
@@ -1698,16 +1672,6 @@
 			g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free);
 	}
 
-	if (prpl_info && prpl_info->get_cb_away) {
-		button = pidgin_new_item_from_stock(menu, _("Get Away Message"), PIDGIN_STOCK_AWAY,
-					G_CALLBACK(menu_chat_get_away_cb), PIDGIN_CONVERSATION(conv), 0, 0, NULL);
-
-		if (gc == NULL)
-			gtk_widget_set_sensitive(button, FALSE);
-		else
-			g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free);
-	}
-
 	if (!is_me && prpl_info && !(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) {
 		if ((buddy = purple_find_buddy(conv->account, who)) != NULL)
 			button = pidgin_new_item_from_stock(menu, _("Remove"), GTK_STOCK_REMOVE,
--- a/pidgin/gtkdocklet.c	Wed Sep 07 05:00:48 2011 +0000
+++ b/pidgin/gtkdocklet.c	Wed Sep 07 05:44:17 2011 +0000
@@ -715,6 +715,7 @@
 {
 	static GtkWidget *menu = NULL;
 	GtkWidget *menuitem;
+	GtkMenuPositionFunc pos_func = gtk_status_icon_position_menu;
 
 	if (menu) {
 		gtk_widget_destroy(menu);
@@ -790,10 +791,11 @@
 #ifdef _WIN32
 	g_signal_connect(menu, "leave-notify-event", G_CALLBACK(docklet_menu_leave_enter), NULL);
 	g_signal_connect(menu, "enter-notify-event", G_CALLBACK(docklet_menu_leave_enter), NULL);
+	pos_func = NULL;
 #endif
 	gtk_widget_show_all(menu);
 	gtk_menu_popup(GTK_MENU(menu), NULL, NULL,
-		       gtk_status_icon_position_menu,
+		       pos_func,
 		       docklet, 0, gtk_get_current_event_time());
 }
 
@@ -856,6 +858,7 @@
 	return FALSE;
 }
 
+#ifndef _WIN32
 static gboolean
 docklet_gtk_embed_timeout_cb(gpointer data)
 {
@@ -888,6 +891,7 @@
 	return TRUE;
 #endif
 }
+#endif
 
 #if GTK_CHECK_VERSION(2,12,0)
 static gboolean
@@ -1003,6 +1007,7 @@
 	 */
 	if (!recreate) {
 		pidgin_docklet_embedded();
+#ifndef _WIN32
 #if GTK_CHECK_VERSION(2,12,0)
 		if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/docklet/gtk/embedded")) {
 			embed_timeout = purple_timeout_add_seconds(LONG_EMBED_TIMEOUT, docklet_gtk_embed_timeout_cb, NULL);
@@ -1012,6 +1017,7 @@
 #else
 		embed_timeout = purple_timeout_add_seconds(SHORT_EMBED_TIMEOUT, docklet_gtk_embed_timeout_cb, NULL);
 #endif
+#endif
 	}
 
 	purple_debug_info("docklet", "GTK+ created\n");
@@ -1036,6 +1042,7 @@
 	void *accounts_handle = purple_accounts_get_handle();
 	void *status_handle = purple_savedstatuses_get_handle();
 	void *docklet_handle = pidgin_docklet_get_handle();
+	gchar *tmp;
 
 	purple_prefs_add_none(PIDGIN_PREFS_ROOT "/docklet");
 	purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/docklet/blink", FALSE);
@@ -1051,8 +1058,9 @@
 		purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/docklet/gtk/embedded", FALSE);
 	}
 
-	gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(),
-		DATADIR G_DIR_SEPARATOR_S "pixmaps" G_DIR_SEPARATOR_S "pidgin" G_DIR_SEPARATOR_S "tray");
+	tmp = g_build_path(G_DIR_SEPARATOR_S, DATADIR, "pixmaps", "pidgin", "tray", NULL);
+	gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), tmp);
+	g_free(tmp);
 
 	if (!strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/docklet/show"), "always"))
 		docklet_gtk_status_create(FALSE);