summary refs log tree commit diff
path: root/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'command.c')
-rw-r--r--command.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/command.c b/command.c
index a6434bf..eaabc9c 100644
--- a/command.c
+++ b/command.c
@@ -101,6 +101,15 @@ static void commandNick(size_t id, char *params) {
 	ircFormat("NICK :%s\r\n", params);
 }
 
+static void commandTopic(size_t id, char *params) {
+	if (params) {
+		ircFormat("TOPIC %s :%s\r\n", idNames[id], params);
+	} else {
+		ircFormat("TOPIC %s\r\n", idNames[id]);
+		replies.topic++;
+	}
+}
+
 static void commandNames(size_t id, char *params) {
 	(void)params;
 	ircFormat("NAMES :%s\r\n", idNames[id]);
@@ -150,6 +159,7 @@ static const struct Handler {
 	{ "/query", commandQuery },
 	{ "/quit", commandQuit },
 	{ "/quote", commandQuote },
+	{ "/topic", commandTopic },
 	{ "/window", commandWindow },
 };