diff options
author | Eion Robb <eion@robbmob.com> | 2016-09-25 03:53:52 +1300 |
---|---|---|
committer | dx <dx@dxzone.com.ar> | 2016-09-24 11:53:52 -0300 |
commit | 524e931bb1a61dd7efa44faeb050e41bfc231610 (patch) | |
tree | 3b5bc4edd51823530f571115731274fcb5654e1b | |
parent | ad541494dc84e51b0f432dc2081653532b245939 (diff) |
purple: support setting chat room topics (#84)
-rw-r--r-- | protocols/purple/purple.c | 16 |
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; |