summary refs log tree commit diff
path: root/input.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-07-02 18:57:57 -0400
committerJune McEnroe <june@causal.agency>2019-07-02 18:57:57 -0400
commitfdbc6f2fda4e3d26989b540505a6b8a755c28c23 (patch)
tree2e95feee2d64b9a9a36b60ba44ba38d0c21be071 /input.c
parentAdd -k option for joining with keys (diff)
downloadcatgirl-fdbc6f2fda4e3d26989b540505a6b8a755c28c23.tar.gz
catgirl-fdbc6f2fda4e3d26989b540505a6b8a755c28c23.zip
Split /raw and /quote
/quote is common in other IRC clients.
Diffstat (limited to '')
-rw-r--r--input.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/input.c b/input.c
index 024941d..77c57cc 100644
--- a/input.c
+++ b/input.c
@@ -83,6 +83,11 @@ static void inputQuit(struct Tag tag, char *params) {
 	ircQuit(params ? params : "Goodbye");
 }
 
+static void inputQuote(struct Tag tag, char *params) {
+	(void)tag;
+	if (params) ircFmt("%s\r\n", params);
+}
+
 static void inputTopic(struct Tag tag, char *params) {
 	if (params) {
 		ircFmt("TOPIC %s :%s\r\n", tag.name, params);
@@ -143,14 +148,12 @@ static void inputOpen(struct Tag tag, char *params) {
 
 static void inputRaw(struct Tag tag, char *params) {
 	(void)tag;
-	if (!self.raw || !params) {
-		self.raw ^= true;
-		uiFmt(
-			TagRaw, UIWarm, "%s window is %s",
-			TagRaw.name, (self.raw ? "enabled" : "disabled")
-		);
-	}
-	if (params) ircFmt("%s\r\n", params);
+	(void)params;
+	self.raw ^= true;
+	uiFmt(
+		TagRaw, UIWarm, "\3%d%s\3 %s raw mode!",
+		colorGen(self.user), self.nick, (self.raw ? "engages" : "disengages")
+	);
 }
 
 static void inputURL(struct Tag tag, char *params) {
@@ -195,6 +198,7 @@ static const struct {
 	{ "/part", inputPart },
 	{ "/query", inputQuery },
 	{ "/quit", inputQuit },
+	{ "/quote", inputQuote },
 	{ "/raw", inputRaw },
 	{ "/topic", inputTopic },
 	{ "/url", inputURL },