--- a/libhangouts.c Thu Sep 22 14:29:26 2016 +1200
+++ b/libhangouts.c Fri Sep 23 11:37:28 2016 +1200
@@ -666,12 +666,23 @@
void _purple_socket_init(void);
void _purple_socket_uninit(void);
+// See workaround for purple_chat_conversation_find_user() in purplecompat.h +hangouts_deleting_chat_buddy(PurpleConvChatBuddy *cb) + if (g_dataset_get_data(cb, "chat") != NULL) { libpurple2_plugin_load(PurplePlugin *plugin)
+ purple_signal_connect(purple_conversations_get_handle(), "deleting-chat-buddy", plugin, PURPLE_CALLBACK(hangouts_deleting_chat_buddy), NULL); return plugin_load(plugin, NULL);
--- a/purplecompat.h Thu Sep 22 14:29:26 2016 +1200
+++ b/purplecompat.h Fri Sep 23 11:37:28 2016 +1200
@@ -88,7 +88,6 @@
#define PURPLE_IS_IM_CONVERSATION(conv) (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
#define PURPLE_IS_CHAT_CONVERSATION(conv) (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
#define purple_chat_conversation_add_user purple_conv_chat_add_user
-#define purple_chat_conversation_find_user purple_conv_chat_cb_find
#define purple_chat_conversation_has_left purple_conv_chat_has_left
#define purple_chat_conversation_remove_user purple_conv_chat_remove_user
@@ -126,8 +125,20 @@
#define PURPLE_CHAT_USER_VOICE PURPLE_CBFLAGS_VOICE
#define PURPLE_CHAT_USER_TYPING PURPLE_CBFLAGS_TYPING
#define PurpleChatUser PurpleConvChatBuddy
-#define purple_chat_user_get_flags(cb) ((cb) == NULL ? PURPLE_CBFLAGS_NONE : (cb)->flags)
-#define purple_chat_user_set_flags(cb, f) ((cb)->flags = (f))
+static inline PurpleChatUser * +purple_chat_conversation_find_user(PurpleChatConversation *chat, const char *name) + PurpleChatUser *cb = purple_conv_chat_cb_find(chat, name); + g_dataset_set_data(cb, "chat", chat); +#define purple_chat_user_get_flags(cb) purple_conv_chat_user_get_flags(g_dataset_get_data((cb), "chat"), (cb)->name) +#define purple_chat_user_set_flags(cb, f) purple_conv_chat_user_set_flags(g_dataset_get_data((cb), "chat"), (cb)->name, (f)) #define purple_chat_user_set_alias(cb, a) ((cb)->alias = (a))
#define PurpleIMTypingState PurpleTypingState