summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--handle.c37
1 files changed, 30 insertions, 7 deletions
diff --git a/handle.c b/handle.c
index 4bfeb9f..61e3d50 100644
--- a/handle.c
+++ b/handle.c
@@ -86,10 +86,30 @@ static const time_t *tagTime(const struct Message *msg) {
 
 typedef void Handler(struct Message *msg);
 
+static void handleErrorGeneric(struct Message *msg) {
+	require(msg, false, 2);
+	if (msg->params[2]) {
+		size_t len = strlen(msg->params[2]);
+		if (msg->params[2][len - 1] == '.') msg->params[2][len - 1] = '\0';
+		uiFormat(
+			Network, Warm, tagTime(msg),
+			"%s: %s", msg->params[2], msg->params[1]
+		);
+	} else {
+		uiFormat(
+			Network, Warm, tagTime(msg),
+			"%s", msg->params[1]
+		);
+	}
+}
+
 static void handleErrorNicknameInUse(struct Message *msg) {
 	require(msg, false, 2);
-	if (strcmp(self.nick, "*")) return;
-	ircFormat("NICK :%s_\r\n", msg->params[1]);
+	if (!strcmp(self.nick, "*")) {
+		ircFormat("NICK :%s_\r\n", msg->params[1]);
+	} else {
+		handleErrorGeneric(msg);
+	}
 }
 
 static void handleErrorErroneousNickname(struct Message *msg) {
@@ -97,10 +117,7 @@ static void handleErrorErroneousNickname(struct Message *msg) {
 	if (!strcmp(self.nick, "*")) {
 		errx(EX_CONFIG, "%s: %s", msg->params[1], msg->params[2]);
 	} else {
-		uiFormat(
-			Network, Warm, tagTime(msg),
-			"%s: %s", msg->params[2], msg->params[1]
-		);
+		handleErrorGeneric(msg);
 	}
 }
 
@@ -785,5 +802,11 @@ void handle(struct Message msg) {
 	const struct Handler *handler = bsearch(
 		msg.cmd, Handlers, ARRAY_LEN(Handlers), sizeof(*handler), compar
 	);
-	if (handler) handler->fn(&msg);
+	if (handler) {
+		handler->fn(&msg);
+		return;
+	}
+	if (strcmp(msg.cmd, "400") >= 0 && strcmp(msg.cmd, "599") <= 0) {
+		handleErrorGeneric(&msg);
+	}
 }
td>2021-01-17Update scooper to 1.1June McEnroe 2021-01-17Update catgirl to 1.5 (BONUS WEBISODE)June McEnroe 2021-01-15Update litterbox to 1.7June McEnroe 2021-01-15Update pounce to 2.2June McEnroe 2021-01-15Update catgirl to 1.4June McEnroe 2020-12-28Replace cgit-patched with cgit-causal-agencyJune McEnroe 2020-12-18Add notemap portJune McEnroe 2020-12-15Update libretls to 3.3.1June McEnroe 2020-12-15Update catsit to 1.1June McEnroe 2020-12-15Update pounce to 2.1p1June McEnroe 2020-12-15Add imbox portJune McEnroe 2020-11-24Update pounce to 2.1June McEnroe 2020-11-24Update libretls to 3.3.0June McEnroe 2020-11-17Update catgirl to 1.3June McEnroe 2020-11-17Update libretls to 3.2.2June McEnroe 2020-09-29Update libretls to 3.2.1June McEnroe 2020-09-10Update catgirl to 1.2June McEnroe 2020-09-09Add pounce-palaver portJune McEnroe 2020-09-09Update pounce to 2.0June McEnroe 2020-09-09Update litterbox to 1.6June McEnroe 2020-08-23Add scooper portJune McEnroe 2020-08-23Add catsit portJune McEnroe 2020-08-13Update pounce to 1.4p2June McEnroe 2020-08-11Update pounce to 1.4p1June McEnroe 2020-08-10Add litterbox portJune McEnroe 2020-08-10Add missing USES=pkgconfig to pounceJune McEnroe