/***************************************************************************
- * 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 *
// if there is no message supplied we have to check if we are already away or not
if(msg.isEmpty()) {
- if(me && !me->isAway())
+ if(me && !me->isAway()) {
awayMsg = network()->identityPtr()->awayReason();
+ if(awayMsg.isEmpty()) {
+ awayMsg = tr("away");
+ }
+ }
}
if(me)
me->setAwayMessage(awayMsg);
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);
+ }
}