Merge pull request #168 from esainane/irssi-msg-escape
authorDaniel Albers <daniel@lbe.rs>
Fri, 1 Apr 2016 00:32:19 +0000 (02:32 +0200)
committerDaniel Albers <daniel@lbe.rs>
Fri, 1 Apr 2016 00:32:19 +0000 (02:32 +0200)
Make "/ " use the rest of the message as a literal

1  2 
src/common/aliasmanager.cpp

@@@ -128,11 -128,14 +128,14 @@@ void AliasManager::processInput(const B
      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 {
@@@ -198,7 -201,7 +201,7 @@@ void AliasManager::expand(const QStrin
  
      while (!expandedCommands.isEmpty()) {
          QString command;
 -        if (expandedCommands[0].trimmed().toLower().startsWith("/wait")) {
 +        if (expandedCommands[0].trimmed().toLower().startsWith("/wait ")) {
              command = expandedCommands.join("; ");
              expandedCommands.clear();
          }