aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordequis <dx@dxzone.com.ar>2016-10-16 03:50:49 -0300
committerdequis <dx@dxzone.com.ar>2016-10-16 03:51:53 -0300
commit6e991a9464ce13fb742dcd50a37d5e00084b4233 (patch)
tree8ab635c766d37d6ae06d6caf415fc99be709b3b0
parenta08b2db9575b276d7e6008e794fa728518671ec4 (diff)
Turn purple_chatlist_free() into a imcb_chat_list_free()
I found myself copypasting this to jabber. Might as well make it part of the API.
-rw-r--r--protocols/bee.h1
-rw-r--r--protocols/bee_chat.c17
-rw-r--r--protocols/purple/purple.c19
3 files changed, 20 insertions, 17 deletions
diff --git a/protocols/bee.h b/protocols/bee.h
index 93027d59..56c34210 100644
--- a/protocols/bee.h
+++ b/protocols/bee.h
@@ -191,5 +191,6 @@ G_MODULE_EXPORT void imcb_chat_invite(struct im_connection *ic, const char *name
G_GNUC_DEPRECATED G_MODULE_EXPORT void bee_chat_list_finish(struct im_connection *ic);
G_MODULE_EXPORT void imcb_chat_list_finish(struct im_connection *ic);
+G_MODULE_EXPORT void imcb_chat_list_free(struct im_connection *ic);
#endif /* __BEE_H__ */
diff --git a/protocols/bee_chat.c b/protocols/bee_chat.c
index c5f2b262..31b37737 100644
--- a/protocols/bee_chat.c
+++ b/protocols/bee_chat.c
@@ -284,3 +284,20 @@ void bee_chat_list_finish(struct im_connection *ic)
imcb_log(ic, "Warning: using deprecated bee_chat_list_finish. This will be removed in the stable release.");
imcb_chat_list_finish(ic);
}
+
+void imcb_chat_list_free(struct im_connection *ic)
+{
+ bee_chat_info_t *ci;
+ GSList *l = ic->chatlist;
+
+ while (l) {
+ ci = l->data;
+ l = g_slist_delete_link(l, l);
+
+ g_free(ci->title);
+ g_free(ci->topic);
+ g_free(ci);
+ }
+
+ ic->chatlist = NULL;
+}
diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c
index bd84966e..71b495db 100644
--- a/protocols/purple/purple.c
+++ b/protocols/purple/purple.c
@@ -360,21 +360,6 @@ static void purple_login(account_t *acc)
}
}
-static void purple_chatlist_free(struct im_connection *ic)
-{
- bee_chat_info_t *ci;
- GSList *l = ic->chatlist;
-
- while (l) {
- ci = l->data;
- l = g_slist_delete_link(l, l);
-
- g_free(ci->title);
- g_free(ci->topic);
- g_free(ci);
- }
-}
-
static void purple_logout(struct im_connection *ic)
{
struct purple_data *pd = ic->proto_data;
@@ -390,7 +375,7 @@ static void purple_logout(struct im_connection *ic)
purple_account_set_enabled(pd->account, "BitlBee", FALSE);
purple_connections = g_slist_remove(purple_connections, ic);
purple_accounts_remove(pd->account);
- purple_chatlist_free(ic);
+ imcb_chat_list_free(ic);
g_hash_table_destroy(pd->input_requests);
g_free(pd);
}
@@ -1401,7 +1386,7 @@ static void prplcb_roomlist_in_progress(PurpleRoomlist *list, gboolean in_progre
}
ic = purple_ic_by_pa(list->account);
- purple_chatlist_free(ic);
+ imcb_chat_list_free(ic);
ic->chatlist = g_slist_reverse(rld->chats);
rld->chats = NULL;