summary refs log tree commit diff
path: root/handle.c
diff options
context:
space:
mode:
Diffstat (limited to 'handle.c')
-rw-r--r--handle.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/handle.c b/handle.c
index 8c36a73..684c2ee 100644
--- a/handle.c
+++ b/handle.c
@@ -298,7 +298,8 @@ names(struct Message *msg, struct Peer *peer)
 			else if (chpp->modes & CHANNEL_VOICE)
 				strlcat(buf, "+", sizeof(buf));
 			strlcat(buf, peer->channels[i]->peers[j].p->nick, sizeof(buf));
-			if (strlen(buf) >= MESSAGE_MAX - 4*PEER_NICK_MAX)
+			if (strlen(buf) >= MESSAGE_MAX - 4*PEER_NICK_MAX
+			 || j + 1 == peer->channels[i]->peers_c)
 			{
 				reply(peer, 353, peer->channels[i]->name, buf);
 				memset(buf, 0, sizeof(buf));
@@ -307,8 +308,6 @@ names(struct Message *msg, struct Peer *peer)
 				strlcat(buf, " ", sizeof(buf));
 			}
 		}
-		if (*buf)
-			reply(peer, 353, peer->channels[i]->name, buf);
 	}
 
 	reply(peer, 366, msg->params[0] ? msg->params[0] : "*");