From a21488ead62944c75e6b8353b05073a92f19fe11 Mon Sep 17 00:00:00 2001 From: Arnaud Cornet Date: Thu, 15 Nov 2007 23:29:10 +0100 Subject: [PATCH] nick collision recover fix. --- src/irc.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/irc.c b/src/irc.c index 7cc36ee..27708ea 100644 --- a/src/irc.c +++ b/src/irc.c @@ -376,11 +376,16 @@ int irc_dispatch_server(bip_t *bip, struct link_server *server, size_t nicklen = strlen(server->nick); char *newnick = malloc(nicklen + 2); strcpy(newnick, server->nick); - if (strlen(server->nick) < 9) + if (strlen(server->nick) < 9) { strcat(newnick, "`"); - else if (newnick[8] != '`') { - newnick[8] = '`'; - newnick[9] = 0; + } else if (newnick[7] != '`') { + if (newnick[8] != '`') { + newnick[8] = '`'; + newnick[9] = 0; + } else { + newnick[7] = '`'; + newnick[9] = 0; + } } else { newnick[8] = rand() * ('z' - 'a') / RAND_MAX + 'a';