X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fuserinputhandler.cpp;h=722c3fc41bc3a62793670c0eccf76d3b977fc1ee;hp=4b4c079659112e4cfd33719181e4399084f147af;hb=453ccab6ade4a21c7aa3c331af893c91468250a4;hpb=0d2e5ff7439fe7bf9f24f1f55763881382ecb12a diff --git a/src/core/userinputhandler.cpp b/src/core/userinputhandler.cpp index 4b4c0796..722c3fc4 100644 --- a/src/core/userinputhandler.cpp +++ b/src/core/userinputhandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -104,7 +104,11 @@ void UserInputHandler::banOrUnban(const BufferInfo &bufferInfo, const QString &m return; } - if(generalizedHost.lastIndexOf(".") != -1 && generalizedHost.lastIndexOf(".", generalizedHost.lastIndexOf(".")-1) != -1) { + static QRegExp ipAddress("\\d+\\.\\d+\\.\\d+\\.\\d+"); + if(ipAddress.exactMatch(generalizedHost)) { + int lastDotPos = generalizedHost.lastIndexOf('.') + 1; + generalizedHost.replace(lastDotPos, generalizedHost.length() - lastDotPos, '*'); + } else if(generalizedHost.lastIndexOf(".") != -1 && generalizedHost.lastIndexOf(".", generalizedHost.lastIndexOf(".")-1) != -1) { int secondLastPeriodPosition = generalizedHost.lastIndexOf(".", generalizedHost.lastIndexOf(".")-1); generalizedHost.replace(0, secondLastPeriodPosition, "*"); } @@ -504,7 +508,14 @@ void UserInputHandler::timerEvent(QTimerEvent *event) { QObject::timerEvent(event); return; } - Command command = _delayedCommands.take(event->timerId()); + BufferInfo bufferInfo = _delayedCommands[event->timerId()].bufferInfo; + QString rawCommand = _delayedCommands[event->timerId()].command; + _delayedCommands.remove(event->timerId()); event->accept(); - handleUserInput(command.bufferInfo, command.command); + + // the stored command might be the result of an alias expansion, so we need to split it up again + QStringList commands = rawCommand.split(QRegExp("; ?")); + foreach(QString command, commands) { + handleUserInput(bufferInfo, command); + } }