about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--handle.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/handle.c b/handle.c
index 35c1e5f..ae3dbfa 100644
--- a/handle.c
+++ b/handle.c
@@ -103,7 +103,7 @@ static void handlePing(char *prefix, char *params) {
 	ircFmt("PONG %s\r\n", params);
 }
 
-static void handleReplyErroneousNickname(char *prefix, char *params) {
+static void handleErrorErroneousNickname(char *prefix, char *params) {
 	char *mesg;
 	shift(prefix, NULL, NULL, NULL, params, 3, 0, NULL, NULL, &mesg);
 	uiFmt(TagStatus, UIHot, "You can't use that name here: \"%s\"", mesg);
@@ -140,7 +140,7 @@ static void handleReplyWhoisUser(char *prefix, char *params) {
 	whoisColor = formatColor(user);
 	uiFmt(
 		TagStatus, UIWarm,
-		"\3%d%s\3 is %s@%s \"%s\"",
+		"\3%d%s\3 is %s@%s, \"%s\"",
 		whoisColor, nick, user, host, real
 	);
 }
@@ -182,6 +182,12 @@ static void handleReplyWhoisChannels(char *prefix, char *params) {
 	uiFmt(TagStatus, UIWarm, "\3%d%s\3 is in %s", whoisColor, nick, chans);
 }
 
+static void handleErrorNoSuchNick(char *prefix, char *params) {
+	char *nick, *mesg;
+	shift(prefix, NULL, NULL, NULL, params, 3, 0, NULL, &nick, &mesg);
+	uiFmt(TagStatus, UIWarm, "%s, \"%s\"", mesg, nick);
+}
+
 static void handleJoin(char *prefix, char *params) {
 	char *nick, *user, *chan;
 	shift(prefix, &nick, &user, NULL, params, 1, 0, &chan);
@@ -464,8 +470,9 @@ static const struct {
 	{ "366", handleReplyEndOfNames },
 	{ "372", handleReplyMOTD },
 	{ "375", handleReplyMOTD },
-	{ "432", handleReplyErroneousNickname },
-	{ "433", handleReplyErroneousNickname },
+	{ "401", handleErrorNoSuchNick },
+	{ "432", handleErrorErroneousNickname },
+	{ "433", handleErrorErroneousNickname },
 	{ "JOIN", handleJoin },
 	{ "KICK", handleKick },
 	{ "NICK", handleNick },