about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-12-05 15:04:34 -0500
committerJune McEnroe <june@causal.agency>2018-12-05 15:04:34 -0500
commit9d7e0726c2ed205db450c70af26d4ea760f6476e (patch)
treef721fc7d3025ef41a88ed11fe734d165eb8c17c0
parentSend input errors to the current tag (diff)
downloadcatgirl-9d7e0726c2ed205db450c70af26d4ea760f6476e.tar.gz
catgirl-9d7e0726c2ed205db450c70af26d4ea760f6476e.zip
Add /raw command
-rw-r--r--catgirl.17
-rw-r--r--input.c13
2 files changed, 20 insertions, 0 deletions
diff --git a/catgirl.1 b/catgirl.1
index 5cb9ae8..62f373e 100644
--- a/catgirl.1
+++ b/catgirl.1
@@ -171,6 +171,13 @@ The default
 is
 .Dq Goodbye .
 .
+.It Ic /raw Op Ar command
+Toggle the
+.Ql -raw-
+view
+and send the raw IRC
+.Ar command .
+.
 .It Ic /topic Op Ar topic
 Show the topic of the current channel
 or set it to
diff --git a/input.c b/input.c
index 4814841..2cd0ca6 100644
--- a/input.c
+++ b/input.c
@@ -49,6 +49,18 @@ param(struct Tag tag, const char *command, char **params, const char *name) {
 
 typedef void (*Handler)(struct Tag tag, char *params);
 
+static void inputRaw(struct Tag tag, char *params) {
+	(void)tag;
+	if (!params || !self.raw) {
+		self.raw ^= true;
+		uiFmt(
+			TagRaw, UIWarm, "Raw view is %s",
+			self.raw ? "enabled" : "disabled"
+		);
+	}
+	if (params) ircFmt("%s\r\n", params);
+}
+
 static void inputMe(struct Tag tag, char *params) {
 	privmsg(tag, true, params ? params : "");
 }
@@ -168,6 +180,7 @@ static const struct {
 	{ "/part", inputPart },
 	{ "/query", inputQuery },
 	{ "/quit", inputQuit },
+	{ "/raw", inputRaw },
 	{ "/topic", inputTopic },
 	{ "/url", inputURL },
 	{ "/view", inputView },