Commit 1209b439 authored by Vitaly Takmazov's avatar Vitaly Takmazov

libpurple: prefer serialized room name as room id

* should fix room join problems with multiple third-party purple plugins
parent 7799529a
......@@ -1947,9 +1947,15 @@ static void RoomlistProgress(PurpleRoomlist *list, gboolean in_progress)
GList *rooms;
std::list<std::string> m_topics;
PurplePlugin *plugin = purple_find_prpl_wrapped(purple_account_get_protocol_id_wrapped(list->account));
PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(plugin);
for (rooms = list->rooms; rooms != NULL; rooms = rooms->next) {
PurpleRoomlistRoom *room = (PurpleRoomlistRoom *)rooms->data;
np->m_rooms[np->m_accounts[list->account]].push_back(room->name);
if (room->type == PURPLE_ROOMLIST_ROOMTYPE_CATEGORY) continue;
std::string roomId = prpl_info && prpl_info->roomlist_room_serialize ?
prpl_info->roomlist_room_serialize(room)
: room->name;
np->m_rooms[np->m_accounts[list->account]].push_back(roomId);
if (topicId == -1) {
m_topics.push_back(room->name);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment