about summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--handle.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/handle.c b/handle.c
index b68ae45..f407fa5 100644
--- a/handle.c
+++ b/handle.c
@@ -353,14 +353,15 @@ static void handleReplyNames(struct Message *msg) {
 	size_t len = 0;
 	while (msg->params[3]) {
 		char *name = strsep(&msg->params[3], " ");
-		char *nick = strsep(&name, "!");
+		char *prefixes = strsep(&name, "!");
+		char *nick = &prefixes[strspn(prefixes, network.prefixes)];
 		char *user = strsep(&name, "@");
 		enum Color color = (user ? hash(user) : Default);
 		completeAdd(id, nick, color);
 		if (!replies.names) continue;
 		int n = snprintf(
 			&buf[len], sizeof(buf) - len,
-			"%s\3%02d%s\3", (len ? ", " : ""), color, nick
+			"%s\3%02d%s\3", (len ? ", " : ""), color, prefixes
 		);
 		assert(n > 0 && len + n < sizeof(buf));
 		len += n;