summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-08-07 01:17:22 -0400
committerJune McEnroe <june@causal.agency>2018-08-07 01:17:22 -0400
commit36d37bbf677768f2c55e46f50127bb228c6cdd62 (patch)
treeb328cb61cada2fddb5d04150eb39cc3664a48921
parentMake safe filling the who buffer (diff)
downloadcatgirl-36d37bbf677768f2c55e46f50127bb228c6cdd62.tar.gz
catgirl-36d37bbf677768f2c55e46f50127bb228c6cdd62.zip
Handle PART and QUIT without messages
-rw-r--r--handle.c33
1 files changed, 22 insertions, 11 deletions
diff --git a/handle.c b/handle.c
index 7fba7f2..9350e7f 100644
--- a/handle.c
+++ b/handle.c
@@ -91,22 +91,33 @@ static void handlePart(char *prefix, char *params) {
 	char *nick = prift(&prefix);
 	char *user = prift(&prefix);
 	char *chan = shift(&params);
-	char *mesg = shift(&params);
-	uiFmt(
-		L"\3%d%s\3 leaves \3%d%s\3, \"%s\"",
-		color(user), nick, color(chan), chan, mesg
-	);
+	if (params) {
+		char *mesg = shift(&params);
+		uiFmt(
+			L"\3%d%s\3 leaves \3%d%s\3, \"%s\"",
+			color(user), nick, color(chan), chan, mesg
+		);
+	} else {
+		uiFmt(
+			L"\3%d%s\3 leaves \3%d%s\3",
+			color(user), nick, color(chan), chan
+		);
+	}
 }
 
 static void handleQuit(char *prefix, char *params) {
 	char *nick = prift(&prefix);
 	char *user = prift(&prefix);
-	char *mesg = shift(&params);
-	char *quot = (mesg[0] == '"') ? "" : "\"";
-	uiFmt(
-		L"\3%d%s\3 leaves, %s%s%s",
-		color(user), nick, quot, mesg, quot
-	);
+	if (params) {
+		char *mesg = shift(&params);
+		char *quot = (mesg[0] == '"') ? "" : "\"";
+		uiFmt(
+			L"\3%d%s\3 leaves, %s%s%s",
+			color(user), nick, quot, mesg, quot
+		);
+	} else {
+		uiFmt(L"\3%d%s\3 leaves", color(user), nick);
+	}
 }
 
 static void handleKick(char *prefix, char *params) {