about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-02-08 03:25:50 -0500
committerJune McEnroe <june@causal.agency>2020-02-08 03:25:50 -0500
commitb98c7d68630a7af37f61a52a555e1aaed1c2e7af (patch)
treeb4a83b6119259fde23b7683190ab71872debfac3
parentAdd /names (diff)
downloadcatgirl-b98c7d68630a7af37f61a52a555e1aaed1c2e7af.tar.gz
catgirl-b98c7d68630a7af37f61a52a555e1aaed1c2e7af.zip
Add /topic
-rw-r--r--catgirl.12
-rw-r--r--command.c10
2 files changed, 12 insertions, 0 deletions
diff --git a/catgirl.1 b/catgirl.1
index ccf981b..5394d33 100644
--- a/catgirl.1
+++ b/catgirl.1
@@ -144,6 +144,8 @@ Start a private conversation.
 Quit IRC.
 .It Ic /quote Ar command
 Send a raw IRC command.
+.It Ic /topic Op Ar topic
+Show or set the topic of the channel.
 .El
 .
 .Ss UI Commands
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 },
 };