aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/purple/purple.c
diff options
context:
space:
mode:
authorEion Robb <eion@robbmob.com>2016-09-25 03:53:52 +1300
committerdx <dx@dxzone.com.ar>2016-09-24 11:53:52 -0300
commit524e931bb1a61dd7efa44faeb050e41bfc231610 (patch)
tree3b5bc4edd51823530f571115731274fcb5654e1b /protocols/purple/purple.c
parentad541494dc84e51b0f432dc2081653532b245939 (diff)
purple: support setting chat room topics (#84)
Diffstat (limited to 'protocols/purple/purple.c')
-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;