summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;