aboutsummaryrefslogtreecommitdiffstats
path: root/irc_commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'irc_commands.c')
-rw-r--r--irc_commands.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/irc_commands.c b/irc_commands.c
index 266d9732..287a126f 100644
--- a/irc_commands.c
+++ b/irc_commands.c
@@ -420,10 +420,21 @@ static void irc_cmd_watch( irc_t *irc, char **cmd )
static void irc_cmd_topic( irc_t *irc, char **cmd )
{
- if( cmd[2] )
- irc_reply( irc, 482, "%s :Cannot change topic", cmd[1] );
+ char *channel = cmd[1];
+ char *topic = cmd[2];
+
+ if( topic )
+ {
+ /* Send the topic */
+ struct groupchat *c = irc_chat_by_channel( irc, channel );
+ if( c && c->ic && c->ic->acc->prpl->chat_topic )
+ c->ic->acc->prpl->chat_topic( c, topic );
+ }
else
- irc_topic( irc, cmd[1] );
+ {
+ /* Get the topic */
+ irc_topic( irc, channel );
+ }
}
static void irc_cmd_away( irc_t *irc, char **cmd )