X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcommon%2Faliasmanager.cpp;h=9fcc567f2c654bb145078b50d7ecc482bc3366fb;hb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;hp=51f4af731242fb0bdc3a2bd148131b261a867d77;hpb=694f9bfbf7f1af19108461c7e00d133e55082bce;p=quassel.git diff --git a/src/common/aliasmanager.cpp b/src/common/aliasmanager.cpp index 51f4af73..9fcc567f 100644 --- a/src/common/aliasmanager.cpp +++ b/src/common/aliasmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-09 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include @@ -102,6 +102,7 @@ AliasManager::AliasList AliasManager::defaults() << Alias("chanserv", "/msg chanserv $0") << Alias("hs", "/msg hostserv $0") << Alias("hostserv", "/msg hostserv $0") + << Alias("wii", "/whois $0 $0") << Alias("back", "/quote away"); #ifdef Q_OS_LINUX @@ -127,11 +128,14 @@ void AliasManager::processInput(const BufferInfo &info, const QString &msg_, Com QString msg = msg_; // leading slashes indicate there's a command to call unless there is another one in the first section (like a path /proc/cpuinfo) + // For those habitally tied to irssi, "/ " also makes the rest of the line a literal message int secondSlashPos = msg.indexOf('/', 1); int firstSpacePos = msg.indexOf(' '); - if (!msg.startsWith('/') || (secondSlashPos != -1 && (secondSlashPos < firstSpacePos || firstSpacePos == -1))) { + if (!msg.startsWith('/') || firstSpacePos == 1 || (secondSlashPos != -1 && (secondSlashPos < firstSpacePos || firstSpacePos == -1))) { if (msg.startsWith("//")) - msg.remove(0, 1); // //asdf is transformed to /asdf + msg.remove(0, 1); // "//asdf" is transformed to "/asdf" + else if (msg.startsWith("/ ")) + msg.remove(0, 2); // "/ /asdf" is transformed to "/asdf" msg.prepend("/SAY "); // make sure we only send proper commands to the core } else { @@ -185,6 +189,8 @@ void AliasManager::expand(const QString &alias, const BufferInfo &bufferInfo, co for (int j = params.count(); j > 0; j--) { IrcUser *ircUser = net->ircUser(params[j - 1]); command = command.replace(QString("$%1:hostname").arg(j), ircUser ? ircUser->host() : QString("*")); + command = command.replace(QString("$%1:ident").arg(j), ircUser ? ircUser->user() : QString("*")); + command = command.replace(QString("$%1:account").arg(j), ircUser ? ircUser->account() : QString("*")); command = command.replace(QString("$%1").arg(j), params[j - 1]); } command = command.replace("$0", msg); @@ -197,7 +203,7 @@ void AliasManager::expand(const QString &alias, const BufferInfo &bufferInfo, co while (!expandedCommands.isEmpty()) { QString command; - if (expandedCommands[0].trimmed().toLower().startsWith("/wait")) { + if (expandedCommands[0].trimmed().toLower().startsWith("/wait ")) { command = expandedCommands.join("; "); expandedCommands.clear(); }