From 32dee9bed2840534e41764a6ba759d425837b8a2 Mon Sep 17 00:00:00 2001 From: Sebastian Goth Date: Wed, 20 Jan 2010 18:49:40 +0100 Subject: [PATCH] Don't create zombie users --- src/core/ircserverhandler.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index 30f5e2ad..97e00587 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -1077,17 +1077,20 @@ void IrcServerHandler::handleNetsplitJoin(const QString &channel, const QStringL } QList ircUsers; QStringList newModes = modes; + QStringList newUsers = users; foreach(QString user, users) { - IrcUser *iu = network()->updateNickFromMask(user); + IrcUser *iu = network()->ircUser(nickFromMask(user)); if(iu) ircUsers.append(iu); - else { - newModes.removeAt(users.indexOf(user)); + else { // the user already quit + int idx = users.indexOf(user); + newUsers.removeAt(idx); + newModes.removeAt(idx); } } - QString msg = users.join("#:#").append("#:#").append(quitMessage); + QString msg = newUsers.join("#:#").append("#:#").append(quitMessage); emit displayMsg(Message::NetsplitJoin, BufferInfo::ChannelBuffer, channel, msg); ircChannel->joinIrcUsers(ircUsers, newModes); } -- 2.20.1