X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Feventstringifier.cpp;h=688886e129d9067d999f02cd368388e18ffa4d95;hp=7276edfd0c7d2ad2bb371b0a9df5d3ada71a6523;hb=cd16b79d7152cdd84f9d6df2d37f43514f02b596;hpb=88b350153eb364853e75d237d3eed2dfaf839d59 diff --git a/src/core/eventstringifier.cpp b/src/core/eventstringifier.cpp index 7276edfd..688886e1 100644 --- a/src/core/eventstringifier.cpp +++ b/src/core/eventstringifier.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2010 by the Quassel Project * + * Copyright (C) 2005-2012 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -92,16 +92,24 @@ void EventStringifier::processIrcEventNumeric(IrcEventNumeric *e) { displayMsg(e, Message::Error, e->params().join(" "), e->prefix()); break; - // Server error messages, display them in red. First param will be appended. + // Server error messages, display them in red. Colon between first param and rest. case 401: { - QString target = e->params().takeFirst(); - displayMsg(e, Message::Error, e->params().join(" ") + " " + target, e->prefix(), target, Message::Redirected); + if(!checkParamCount(e, 1)) + return; + + QStringList params = e->params(); + QString target = params.takeFirst(); + displayMsg(e, Message::Error, target + ": " + params.join(" "), e->prefix(), target, Message::Redirected); break; } case 402: case 403: case 404: case 406: case 408: case 415: case 421: case 442: { - QString channelName = e->params().takeFirst(); - displayMsg(e, Message::Error, e->params().join(" ") + " " + channelName, e->prefix()); + if(!checkParamCount(e, 1)) + return; + + QStringList params = e->params(); + QString channelName = params.takeFirst(); + displayMsg(e, Message::Error, channelName + ": " + params.join(" "), e->prefix()); break; } @@ -110,8 +118,12 @@ void EventStringifier::processIrcEventNumeric(IrcEventNumeric *e) { case 467: case 471: case 473: case 474: case 475: case 476: case 477: case 478: case 482: case 436: // ERR_NICKCOLLISION { - QString p = e->params().takeFirst(); - displayMsg(e, Message::Error, p + ": " + e->params().join(" ")); + if(!checkParamCount(e, 1)) + return; + + QStringList params = e->params(); + QString p = params.takeFirst(); + displayMsg(e, Message::Error, p + ": " + params.join(" ")); break; } @@ -475,16 +487,25 @@ void EventStringifier::processIrcEvent369(IrcEvent *e) { /* ERR_ERRONEUSNICKNAME */ void EventStringifier::processIrcEvent432(IrcEvent *e) { + if(!checkParamCount(e, 1)) + return; + displayMsg(e, Message::Error, tr("Nick %1 contains illegal characters").arg(e->params()[0])); } /* ERR_NICKNAMEINUSE */ void EventStringifier::processIrcEvent433(IrcEvent *e) { + if(!checkParamCount(e, 1)) + return; + displayMsg(e, Message::Error, tr("Nick already in use: %1").arg(e->params()[0])); } /* ERR_UNAVAILRESOURCE */ void EventStringifier::processIrcEvent437(IrcEvent *e) { + if(!checkParamCount(e, 1)) + return; + displayMsg(e, Message::Error, tr("Nick/channel is temporarily unavailable: %1").arg(e->params()[0])); }