X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fuserinputhandler.cpp;h=7dec1dc263bddb7d527434ba8428a347b96c2d4b;hb=7a1eca89ead6eb300c593ace9f14c0eb2f9836b8;hp=b6a5c6975689204f7dd8e6568f89b858ca0a1ba6;hpb=f7eb3911860f30e6bccce3c77d03fc25e87d7f93;p=quassel.git diff --git a/src/core/userinputhandler.cpp b/src/core/userinputhandler.cpp index b6a5c697..7dec1dc2 100644 --- a/src/core/userinputhandler.cpp +++ b/src/core/userinputhandler.cpp @@ -37,7 +37,12 @@ void UserInputHandler::handleUserInput(const BufferInfo &bufferInfo, const QStri return; QString cmd; QString msg = msg_; - if(!msg.startsWith('/')) { + // leading slashes indicate there's a command to call unless there is anothere one in the first section (like a path /proc/cpuinfo) + int secondSlashPos = msg.indexOf('/', 1); + int firstSpacePos = msg.indexOf(' '); + if(!msg.startsWith('/') || (secondSlashPos != -1 && (secondSlashPos < firstSpacePos || firstSpacePos == -1))) { + if(msg.startsWith("//")) + msg.remove(0, 1); // //asdf is transformed to /asdf cmd = QString("SAY"); } else { cmd = msg.section(' ', 0, 0).remove(0, 1).toUpper(); @@ -360,6 +365,8 @@ void UserInputHandler::expand(const QString &alias, const BufferInfo &bufferInfo command = command.replace(QString("$%1").arg(j), params[j - 1]); } command = command.replace("$0", msg); + command = command.replace("$channelname", bufferInfo.bufferName()); + command = command.replace("$currentnick", network()->myNick()); handleUserInput(bufferInfo, command); } }