aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--protocols/purple/purple.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c
index 63f6cb8f..6c8ddf0d 100644
--- a/protocols/purple/purple.c
+++ b/protocols/purple/purple.c
@@ -683,6 +683,21 @@ void purple_chat_invite(struct groupchat *gc, char *who, char *message)
who);
}
+void purple_chat_set_topic(struct groupchat *gc, char *topic)
+{
+ PurpleConversation *pc = gc->data;
+ PurpleConvChat *pcc = PURPLE_CONV_CHAT(pc);
+ struct purple_data *pd = gc->ic->proto_data;
+ PurplePlugin *prpl = purple_plugins_find_with_id(pd->account->protocol_id);
+ PurplePluginProtocolInfo *pi = prpl->info->extra_info;
+
+ if (pi->set_chat_topic) {
+ pi->set_chat_topic(purple_account_get_connection(pd->account),
+ purple_conv_chat_get_id(pcc),
+ topic);
+ }
+}
+
void purple_chat_kick(struct groupchat *gc, char *who, const char *message)
{
PurpleConversation *pc = gc->data;
@@ -1651,6 +1666,7 @@ void purple_initmodule()
funcs.chat_msg = purple_chat_msg;
funcs.chat_with = purple_chat_with;
funcs.chat_invite = purple_chat_invite;
+ funcs.chat_topic = purple_chat_set_topic;
funcs.chat_kick = purple_chat_kick;
funcs.chat_leave = purple_chat_leave;
funcs.chat_join = purple_chat_join;