/***************************************************************************
- * 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 *
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, "*");
}
}
void UserInputHandler::issueQuit(const QString &reason) {
- QString quitReason;
- if(reason.isEmpty())
- quitReason = network()->identityPtr()->quitReason();
- else
- quitReason = reason;
- emit putCmd("QUIT", serverEncode(quitReason));
+ emit putCmd("QUIT", serverEncode(reason));
}
void UserInputHandler::handleQuote(const BufferInfo &bufferInfo, const QString &msg) {
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);
+ }
}