X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcclient%2Fcommand_reply.c;h=8b2f0c35273793f87cb2f0e0451fe0931b9ce8b1;hp=5ed0a3b1fe9935d3003ecd6ece3c66927e179ce0;hb=bb1973faaa81ead23b3d5e05b45cddd8a47d51f7;hpb=a998ac107c2bb107764c1c495bd9028e03bfcc37 diff --git a/lib/silcclient/command_reply.c b/lib/silcclient/command_reply.c index 5ed0a3b1..8b2f0c35 100644 --- a/lib/silcclient/command_reply.c +++ b/lib/silcclient/command_reply.c @@ -1092,10 +1092,10 @@ SILC_CLIENT_CMD_REPLY_FUNC(names) channel->clients[k].client->nickname = silc_calloc(strlen(nickname) + 8, sizeof(*channel->clients[k]. client->nickname)); + snprintf(t, sizeof(t), "[%d]", c++); + strncat(channel->clients[k].client->nickname, t, strlen(t)); strncat(channel->clients[k].client->nickname, nickname, strlen(nickname)); - snprintf(t, sizeof(t), " [%d]", c++); - strncat(channel->clients[k].client->nickname, t, strlen(t)); } } @@ -1105,10 +1105,19 @@ SILC_CLIENT_CMD_REPLY_FUNC(names) name_list = NULL; len1 = 0; for (k = 0; k < channel->clients_count; k++) { - char *n = channel->clients[k].client->nickname; + char *m, *n = channel->clients[k].client->nickname; len2 = strlen(n); len1 += len2; - name_list = silc_realloc(name_list, sizeof(*name_list) * (len1 + 1)); + + name_list = silc_realloc(name_list, sizeof(*name_list) * (len1 + 3)); + + m = silc_client_chumode_char(channel->clients[k].mode); + if (m) { + memcpy(name_list + (len1 - len2), m, strlen(m)); + len1 += strlen(m); + silc_free(m); + } + memcpy(name_list + (len1 - len2), n, len2); name_list[len1] = 0;